class FrilansFinansAPI::Client

Attributes

request[R]

Public Class Methods

new(base_uri: nil, client_id: nil, client_secret: nil) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 9
def initialize(base_uri: nil, client_id: nil, client_secret: nil)
  @request = Request.new(
    base_uri: base_uri,
    client_id: client_id,
    client_secret: client_secret
  )
end

Public Instance Methods

create_company(attributes: {}) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 55
def create_company(attributes: {})
  request.post(uri: '/companies', body: build_attributes(attributes))
end
create_employment_certificate(attributes: {}) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 59
def create_employment_certificate(attributes: {})
  request.post(uri: '/employment-certificate', body: build_attributes(attributes))
end
create_invoice(attributes: {}) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 63
def create_invoice(attributes: {})
  request.post(uri: '/invoices', body: build_attributes(attributes))
end
create_user(attributes: {}) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 51
def create_user(attributes: {})
  request.post(uri: '/users', body: build_attributes(attributes))
end
currencies(page: 1) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 17
def currencies(page: 1)
  request.get(uri: '/currencies', query: build_query(page: page))
end
invoice(id:) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 39
def invoice(id:)
  request.get(uri: "/invoices/#{id}")
end
profession(id:) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 47
def profession(id:)
  request.get(uri: "/professions/#{id}")
end
professions(page: 1) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 21
def professions(page: 1)
  request.get(uri: '/professions', query: build_query(page: page))
end
salaries(invoice_id:, page: 1) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 25
def salaries(invoice_id:, page: 1)
  request.get(uri: "/invoices/#{invoice_id}/salaries", query: build_query(page: page))
end
taxes(page: 1, only_standard: false) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 34
def taxes(page: 1, only_standard: false)
  filter = only_standard ? { standard: 1 } : {}
  request.get(uri: '/taxes', query: build_query(page: page, filter: filter))
end
update_invoice(id:, attributes: {}) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 67
def update_invoice(id:, attributes: {})
  request.patch(uri: "/invoices/#{id}", body: build_attributes(attributes))
end
update_user(id:, attributes: {}) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 71
def update_user(id:, attributes: {})
  request.patch(uri: "/users/#{id}", body: build_attributes(attributes))
end
user(id:) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 43
def user(id:)
  request.get(uri: "/users/#{id}")
end
users(page: 1, email: nil) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 29
def users(page: 1, email: nil)
  filter = email ? { email: email } : {}
  request.get(uri: '/users', query: build_query(page: page, filter: filter))
end

Private Instance Methods

build_attributes(attributes) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 77
def build_attributes(attributes)
  { data: { attributes: attributes } }
end
build_query(page:, filter: {}) click to toggle source
# File lib/frilans_finans_api/client/client.rb, line 81
def build_query(page:, filter: {})
  {
    page: { number: page },
    filter: filter
  }
end