class Blacksheep::ActionResult
Attributes
render_http_status[RW]
data[R]
status[R]
Public Class Methods
error(title: 'Error', message:, status: :internal_server_error, pointer: 'unspecified')
click to toggle source
# File lib/blacksheep/action_result.rb, line 26 def error(title: 'Error', message:, status: :internal_server_error, pointer: 'unspecified') json = { errors: [ pointer: { source: pointer }, title: title, detail: message, ] } status = :internal_server_error new(json, status) end
new(data, status)
click to toggle source
# File lib/blacksheep/action_result.rb, line 8 def initialize(data, status) @data = data @status = status end
success(message)
click to toggle source
# File lib/blacksheep/action_result.rb, line 16 def success(message) json = { _meta: { message: message } } new(json, :ok) end
Public Instance Methods
render_http_status()
click to toggle source
# File lib/blacksheep/action_result.rb, line 58 def render_http_status self.class.render_http_status end
render_json(json_wrap: 'data', render_http_status: self.render_http_status, to: nil)
click to toggle source
# File lib/blacksheep/action_result.rb, line 62 def render_json(json_wrap: 'data', render_http_status: self.render_http_status, to: nil) if to.nil? return { json: wrap_json(json_wrap) } end if to.respond_to?(:render) if render_http_status to.render json: wrap_json(json_wrap), status: status else to.render json: wrap_json(json_wrap) end else raise ArgumentError, "render target #{to.class} does not respond to #render" end end
set_data(value)
click to toggle source
# File lib/blacksheep/action_result.rb, line 42 def set_data(value) @data = value self end
set_status(value)
click to toggle source
# File lib/blacksheep/action_result.rb, line 48 def set_status(value) @status = value self end
success?()
click to toggle source
# File lib/blacksheep/action_result.rb, line 54 def success? @status == :ok end
Private Instance Methods
wrap_json(json_wrap)
click to toggle source
# File lib/blacksheep/action_result.rb, line 82 def wrap_json(json_wrap) json_wrap.present? && success? ? { json_wrap => @data } : @data end