Sha256: 0d5c8cab75d17b220f5da290b1fedabd80db2932aabbec151fcef446b46cfdd4

Contents?: true

Size: 1.25 KB

Versions: 31

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

module V1
  module Endpoints
    class Users
      include Praxis::EndpointDefinition

      media_type MediaTypes::User
      version '1'

      description 'Endpoints that allow the listing and manipulation of users'

      action :index do
        description 'List users'
        routing { get '' }
        params do
          attribute :fields, Praxis::Types::FieldSelector.for(MediaTypes::User),
                    description: 'Fields with which to render the result.'
          attribute :filters, Praxis::Types::FilteringParams.for(MediaTypes::User) do
            filter 'uuid', using: ['=', '!=']
            filter 'first_name', using: ['=', '!='], fuzzy: true
            filter 'last_name', using: ['=', '!='], fuzzy: true
            filter 'email', using: ['=', '!=']
          end
          attribute :pagination, Praxis::Types::PaginationParams.for(MediaTypes::User) do
            by_fields :uuid, :first_name, :last_name
          end
          attribute :order, Praxis::Extensions::Pagination::OrderingParams.for(MediaTypes::User) do
            by_fields :uuid, :last_name, :first_name
          end          
        end
        response :ok, media_type: Praxis::Collection.of(MediaTypes::User)
      end
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
praxis-2.0.0 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.40 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.39 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.38 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.37 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.36 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.35 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.34 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.33 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.32 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.31 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.30 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.29 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.28 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.27 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.26 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.25 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.24 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.23 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb
praxis-2.0.pre.22 tasks/thor/templates/generator/example_app/design/v1/endpoints/users.rb