class Apia::DSLs::Endpoint
Public Instance Methods
action(&block)
click to toggle source
# File lib/apia/dsls/endpoint.rb, line 35 def action(&block) @definition.action = block end
argument(*args, **kwargs, &block)
click to toggle source
# File lib/apia/dsls/endpoint.rb, line 31 def argument(*args, **kwargs, &block) @definition.argument_set.argument(*args, **kwargs, &block) end
authenticator(klass = nil, &block)
click to toggle source
# File lib/apia/dsls/endpoint.rb, line 13 def authenticator(klass = nil, &block) if block_given? id = "#{@definition.id}/#{Helpers.camelize(klass) || 'Authenticator'}" klass = Apia::Authenticator.create(id, &block) end @definition.authenticator = klass end
field(name, *args, type: nil, **options, &block)
click to toggle source
Calls superclass method
Apia::DSLs::Concerns::HasFields#field
# File lib/apia/dsls/endpoint.rb, line 43 def field(name, *args, type: nil, **options, &block) if pagination_options = options.delete(:paginate) unless @definition.paginated_field.nil? raise Apia::RuntimeError, 'Cannot define more than one paginated field per endpoint' end pagination_options = {} if pagination_options == true @definition.paginated_field = name argument :page, type: Scalars::Integer, default: 1 do validation(:greater_than_zero) { |o| o.positive? } end argument :per_page, type: Scalars::Integer, default: 30 do validation(:greater_than_zero) { |o| o.positive? } validation(:less_than_or_equal_to_100) { |o| o <= (pagination_options[:maximum_per_page]&.to_i || 200) } end field :pagination, type: PaginationObject end super(name, *args, type: type, **options, &block) end
http_status(status)
click to toggle source
# File lib/apia/dsls/endpoint.rb, line 39 def http_status(status) @definition.http_status = status end
potential_error(klass, &block)
click to toggle source
# File lib/apia/dsls/endpoint.rb, line 22 def potential_error(klass, &block) if block_given? && klass.is_a?(String) id = "#{@definition.id}/#{Helpers.camelize(klass)}" klass = Apia::Error.create(id, &block) end @definition.potential_errors << klass end
scope(name)
click to toggle source
# File lib/apia/dsls/endpoint.rb, line 71 def scope(name) return if @definition.scopes.include?(name.to_s) @definition.scopes << name.to_s end
scopes(*names)
click to toggle source
# File lib/apia/dsls/endpoint.rb, line 67 def scopes(*names) names.each { |name| scope(name) } end