Module: ActionFigure::Formatters::JsonApi

Includes:
ActionFigure::Formatter
Defined in:
lib/action_figure/formatters/json_api.rb,
lib/action_figure/formatters/json_api/resource.rb

Overview

Implements JSON:API response helpers for use in action classes.

Defined Under Namespace

Classes: Resource

Constant Summary

Constants included from ActionFigure::Formatter

ActionFigure::Formatter::REQUIRED_METHODS

Instance Method Summary collapse

Methods included from ActionFigure::Formatter

#NoContent

Instance Method Details

#Accepted(resource: nil, meta: nil) ⇒ Object



23
24
25
26
27
# File 'lib/action_figure/formatters/json_api.rb', line 23

def Accepted(resource: nil, meta: nil)
  body = resource.nil? ? {} : { data: Resource.serialize(resource) }
  body[:meta] = meta if meta
  { json: body, status: :accepted }
end

#Conflict(errors:) ⇒ Object



41
42
43
# File 'lib/action_figure/formatters/json_api.rb', line 41

def Conflict(errors:)
  { json: { errors: convert_errors(errors, "409") }, status: :conflict }
end

#Created(resource:, meta: nil) ⇒ Object



17
18
19
20
21
# File 'lib/action_figure/formatters/json_api.rb', line 17

def Created(resource:, meta: nil)
  body = { data: Resource.serialize(resource) }
  body[:meta] = meta if meta
  { json: body, status: :created }
end

#Forbidden(errors:) ⇒ Object



37
38
39
# File 'lib/action_figure/formatters/json_api.rb', line 37

def Forbidden(errors:)
  { json: { errors: convert_errors(errors, "403") }, status: :forbidden }
end

#NotFound(errors:) ⇒ Object



33
34
35
# File 'lib/action_figure/formatters/json_api.rb', line 33

def NotFound(errors:)
  { json: { errors: convert_errors(errors, "404") }, status: :not_found }
end

#Ok(resource:, meta: nil) ⇒ Object



11
12
13
14
15
# File 'lib/action_figure/formatters/json_api.rb', line 11

def Ok(resource:, meta: nil)
  body = { data: Resource.serialize(resource) }
  body[:meta] = meta if meta
  { json: body, status: :ok }
end

#PaymentRequired(errors:) ⇒ Object



45
46
47
# File 'lib/action_figure/formatters/json_api.rb', line 45

def PaymentRequired(errors:)
  { json: { errors: convert_errors(errors, "402") }, status: :payment_required }
end

#UnprocessableContent(errors:) ⇒ Object



29
30
31
# File 'lib/action_figure/formatters/json_api.rb', line 29

def UnprocessableContent(errors:)
  { json: { errors: convert_errors(errors, "422") }, status: :unprocessable_content }
end