Module: Moneybird::Traits::Save
- Included in:
- Service::Contact, Service::Estimate, Service::Identity, Service::LedgerAccount, Service::Product, Service::RecurringSalesInvoice, Service::SalesInvoice
- Defined in:
- lib/moneybird/traits/save.rb
Constant Summary collapse
- CREATE_SUCCESS_CODE =
201- UPDATE_SUCCESS_CODE =
200
Instance Method Summary collapse
- #create(attributes) ⇒ Object
- #resource_path(resource) ⇒ Object
- #save(resource) ⇒ Object
- #update(attributes) ⇒ Object
Instance Method Details
#create(attributes) ⇒ Object
32 33 34 35 36 |
# File 'lib/moneybird/traits/save.rb', line 32 def create(attributes) resource = build(attributes) save(resource) resource end |
#resource_path(resource) ⇒ Object
7 8 9 |
# File 'lib/moneybird/traits/save.rb', line 7 def resource_path(resource) [path, resource.path].join('') end |
#save(resource) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/moneybird/traits/save.rb', line 11 def save(resource) if resource.persisted? client.patch(resource_path(resource), resource.to_json) if client._last_response.code.to_i == UPDATE_SUCCESS_CODE resource.attributes = JSON.parse(client._last_response.body) else resource.errors = client._last_response.body return false end else client.post(resource_path(resource), resource.to_json) if client._last_response.code.to_i == CREATE_SUCCESS_CODE resource.attributes = JSON.parse(client._last_response.body) else resource.errors = client._last_response.body return false end end true end |
#update(attributes) ⇒ Object
38 39 40 41 42 |
# File 'lib/moneybird/traits/save.rb', line 38 def update(attributes) resource = build(attributes) save(resource) resource end |