class OpenAPIRest::QueryResponse
Rest Query Response
Attributes
errors[R]
query_builder[R]
Public Class Methods
new(query_builder)
click to toggle source
# File lib/openapi_rest/query_response.rb, line 14 def initialize(query_builder) @query_builder = query_builder @errors = [] end
Public Instance Methods
create_resource()
click to toggle source
# File lib/openapi_rest/query_response.rb, line 19 def create_resource @operation = :post api_params = OpenAPIRest::ApiParameters.new(api_model: @query_builder.api_model, params: @query_builder.params, openapi_path: @query_builder.openapi_path) unless api_params.valid? @errors = api_params.validation_errors return end create_params = api_params.allowed_params.merge!(@query_builder.query) @model = @query_builder.raw_model.new(create_params) return if @model.valid? && @model.save build_errors end
delete_resource()
click to toggle source
# File lib/openapi_rest/query_response.rb, line 57 def delete_resource @operation = :delete @model = @query_builder.raw_model return if !@model.nil? && @model.destroy build_errors end
errors?()
click to toggle source
# File lib/openapi_rest/query_response.rb, line 77 def errors? !@errors.empty? end
results()
click to toggle source
# File lib/openapi_rest/query_response.rb, line 73 def results @model ||= @query_builder.raw_model end
results?()
click to toggle source
# File lib/openapi_rest/query_response.rb, line 65 def results? if single? !results.nil? else results.count > 0 end end
update_resource()
click to toggle source
# File lib/openapi_rest/query_response.rb, line 38 def update_resource @operation = :patch api_params = OpenAPIRest::ApiParameters.new(api_model: @query_builder.api_model, params: @query_builder.params, openapi_path: @query_builder.openapi_path) unless api_params.valid? @errors = api_params.validation_errors return end @model = @query_builder.raw_model return if !@model.nil? && @model.update(api_params.allowed_params) build_errors end
Private Instance Methods
build_errors()
click to toggle source
# File lib/openapi_rest/query_response.rb, line 83 def build_errors return if @model.nil? @errors = @model.errors.keys.map { |k| { k => @model.errors[k].first } } end