Class: FrilansFinansAPI::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/frilans_finans_api/client/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_uri: nil, client_id: nil, client_secret: nil) ⇒ Client



9
10
11
12
13
14
15
# 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

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



7
8
9
# File 'lib/frilans_finans_api/client/client.rb', line 7

def request
  @request
end

Instance Method Details

#create_company(attributes: {}) ⇒ Object



55
56
57
# 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: {}) ⇒ Object



59
60
61
# 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: {}) ⇒ Object



63
64
65
# 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: {}) ⇒ Object



51
52
53
# 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) ⇒ Object



17
18
19
# 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:) ⇒ Object



39
40
41
# File 'lib/frilans_finans_api/client/client.rb', line 39

def invoice(id:)
  request.get(uri: "/invoices/#{id}")
end

#profession(id:) ⇒ Object



47
48
49
# File 'lib/frilans_finans_api/client/client.rb', line 47

def profession(id:)
  request.get(uri: "/professions/#{id}")
end

#professions(page: 1) ⇒ Object



21
22
23
# 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) ⇒ Object



25
26
27
# 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) ⇒ Object



34
35
36
37
# 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: {}) ⇒ Object



67
68
69
# 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: {}) ⇒ Object



71
72
73
# 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:) ⇒ Object



43
44
45
# File 'lib/frilans_finans_api/client/client.rb', line 43

def user(id:)
  request.get(uri: "/users/#{id}")
end

#users(page: 1, email: nil) ⇒ Object



29
30
31
32
# 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