class HecksAdapters::ResourceServer::Methods::Create

Create a resource

Attributes

application_adapter[R]
body[R]
command_result[R]
module_name[R]
result[R]

Public Class Methods

new(application_adapter:) click to toggle source
# File lib/methods/create.rb, line 9
def initialize(application_adapter:)
  @application_adapter = application_adapter
end

Public Instance Methods

call(body:, module_name:) click to toggle source
# File lib/methods/create.rb, line 13
def call(body:, module_name:)
  @body        = body.read
  @module_name = module_name.to_sym
  run_command
  build_json
  self
end
status() click to toggle source
# File lib/methods/create.rb, line 21
def status
  return 500 if command_result.errors.count.positive?
  200
end

Private Instance Methods

build_json() click to toggle source
# File lib/methods/create.rb, line 30
def build_json
  @result = JSON.generate(command_result.to_h)
end
params() click to toggle source
# File lib/methods/create.rb, line 42
def params
  JSON.parse(body, symbolize_names: true)
end
run_command() click to toggle source
# File lib/methods/create.rb, line 34
def run_command
  @command_result = application_adapter.call(
    module_name: module_name,
    command_name: :create,
    args:        params
  )
end