module Myfinance module Resources # # A wrapper to Myfinance deposit accounts API # # [API] # Documentation: https://app.myfinance.com.br/docs/api/deposit_accounts # class DepositAccount < Base # # List all deposit accounts of entity with optional filters for refinement # # [API] # Method: GET /entities/:entity_id/deposit_accounts # # Documentation: https://app.myfinance.com.br/docs/api/deposit_accounts#get_index # def find_all(entity_id, params = {}) search_endpoint = build_search_endpoint(entity_id, params) http.get(search_endpoint) do |response| respond_with_collection(response) end end # # List a deposit account of entity # # [API] # Method: GET /entities/:entity_id/deposit_accounts/:id # # Documentation: https://app.myfinance.com.br/docs/api/deposit_accounts#get_show # def find(entity_id, id) http.get("/entities/#{entity_id}/deposit_accounts/#{id}", body: {}) do |response| respond_with_object(response, "deposit_account") end end # # Creates a deposit account of entity # # [API] # Method: POST /entities/:entity_id/deposit_accounts # # Documentation: https://app.myfinance.com.br/docs/api/deposit_accounts#post_create # def create(entity_id, params = {}) http.post("/entities/#{entity_id}/deposit_accounts", body: { deposit_account: params }) do |response| respond_with_object(response, "deposit_account") end end # # Updates a deposit account of entity # # [API] # Method: PUT /entities/:entity_id/deposit_accounts/:id # # Documentation: https://app.myfinance.com.br/docs/api/deposit_accounts#put_update # def update(entity_id, id, params = {}) http.put("/entities/#{entity_id}/deposit_accounts/#{id}", body: { deposit_account: params }) do |response| respond_with_object(response, "deposit_account") end end # # Destroy a deposit account of entity # # [API] # Method: DELETE /entities/:entity_id/deposit_accounts/:id # # Documentation: https://app.myfinance.com.br/docs/api/deposit_accounts#delete_destroy # def destroy(entity_id, id) http.delete("/entities/#{entity_id}/deposit_accounts/#{id}", body: {}) do |response| respond_with_object(response, "deposit_account") end end private def build_search_endpoint(entity_id, params) query_string = query(params).join("&") deposit_endpoint = endpoint(entity_id) URI.encode("#{deposit_endpoint}?#{query_string}") end def endpoint(entity_id) "/entities/#{entity_id}/deposit_accounts" end end end end