Module: Creditario::API::Update

Included in:
Creditario::Applications, Crowdfunding::Investors, Customers
Defined in:
lib/creditario/api/update.rb

Overview

Creditario::API::Update

Modulo encargado de actualizar recursos existentes en la API de creditar.io

Instance Method Summary collapse

Instance Method Details

#update(id, params = {}, include_param = nil) ⇒ Object

Realizar una llamada PATCH al path del Repositorio que esta haciendo uso de este modulo.

Si todo sale bien devuelve una instancia del Recurso especĂ­fico que el Repositorio maneja. De lo contrario, regresa un Hash con los errores arrojados por el servidor de creditar.io

Nota: Si desea hacer uso de multipart/form-data es necesario pasar un parametro enctype con valor true para habilitarlo, por ejemplo:

result = Creditario::Crowdfunding::Investors.update("97d58a6c-e943-46bf-b8ec-2db7b397bc17", full_name: "Steve Rogers", encypte: true)


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/creditario/api/update.rb', line 22

def update(id, params = {}, include_param = nil)
  enctype = params.delete(:enctype) || false
  path = "#{self.resource_path}/#{id}"
  path = include_param.nil? ? path : path + "?include=#{include_param}"
  request_method = enctype ? :multipart_patch : :patch
  response = API.request(request_method, path, params)

  attributes = response.dig("data").first
  links = response.dig("links")

  self.resource_class.new(attributes, links)
rescue Creditario::Exceptions::UnprocessableEntityError,
       Creditario::Exceptions::ResourceNotFoundError,
       Creditario::Exceptions::ForbiddenError => exception
  exception.server_response
end