module RailsApiResponse::ControllerHelpers::Responses

Public Instance Methods

respond_create_success(message: "", data: {}) click to toggle source
# File lib/rails_api_response/controller_helpers/responses.rb, line 19
def respond_create_success(message: "", data: {})
  render json: ResponseTemplate.create_success(message_metadata(message), data)
end
respond_error(message: '', instance: nil, data: {}) click to toggle source
# File lib/rails_api_response/controller_helpers/responses.rb, line 10
def respond_error(message: '', instance: nil, data: {})
  metadata = instance.present? ? error_instance_metadata(instance) : message_metadata(message)
  render json: ResponseTemplate.error(metadata, data)
end
respond_error_credential(message:, data: {}) click to toggle source
# File lib/rails_api_response/controller_helpers/responses.rb, line 23
def respond_error_credential(message:, data: {})
  render json: ResponseTemplate.error_credential(message_metadata(message), data)
end
respond_error_not_found(message:, data: {}) click to toggle source
# File lib/rails_api_response/controller_helpers/responses.rb, line 27
def respond_error_not_found(message:, data: {})
  render json: ResponseTemplate.error_not_found(message_metadata(message), data)
end
respond_exception_error(exception:, data: {}) click to toggle source
# File lib/rails_api_response/controller_helpers/responses.rb, line 15
def respond_exception_error(exception:, data: {})
  render json: ResponseTemplate.error(error_exception_metadata(exception), data)
end
respond_json(code: 200, message: '', data: {}) click to toggle source
# File lib/rails_api_response/controller_helpers/responses.rb, line 31
def respond_json(code: 200, message: '', data: {})
  render json: ResponseTemplate.template(code, message_metadata(message), data)
end
respond_success(message: '', data: {}) click to toggle source

Response methods

# File lib/rails_api_response/controller_helpers/responses.rb, line 6
def respond_success(message: '', data: {})
  render json: ResponseTemplate.success(message_metadata(message), data)
end

Private Instance Methods

error_exception_metadata(exception) click to toggle source

Convert exception to metadata

# File lib/rails_api_response/controller_helpers/responses.rb, line 54
def error_exception_metadata(exception)
  {
      message: exception.message,
      error_details: exception.backtrace
  }
end
error_instance_metadata(instance) click to toggle source

Convert instance to error metadata

# File lib/rails_api_response/controller_helpers/responses.rb, line 38
def error_instance_metadata(instance)
  errors = []
  instance.errors.to_hash.each do |k,v|
    errors << {
        field: k.to_s,
        description: v
    }
  end
  {
      message: instance.errors.full_messages.join(", "),
      messages: instance.errors.full_messages,
      errors: errors
  }
end
message_metadata(message) click to toggle source

Convert message text to error metadata

# File lib/rails_api_response/controller_helpers/responses.rb, line 62
def message_metadata(message)
  { message: message }
end