Class: Economic::Repo

Inherits:
Object
  • Object
show all
Defined in:
lib/economic/repo.rb

Constant Summary collapse

ROOT =
"https://restapi.e-conomic.com".freeze
DEFAULT_QUERY_PARAMS =
{skippages: 0, pagesize: 1000}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(credentials: Economic::Credentials.fetch!) ⇒ Repo

Returns a new instance of Repo.



6
7
8
9
# File 'lib/economic/repo.rb', line 6

def initialize(credentials: Economic::Credentials.fetch!)
  @credentials = credentials
  raise Economic::MissingCredentialsError if credentials.missing?
end

Instance Attribute Details

#credentialsObject (readonly)

Returns the value of attribute credentials.



11
12
13
# File 'lib/economic/repo.rb', line 11

def credentials
  @credentials
end

Instance Method Details

#all(filter: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/economic/repo.rb', line 13

def all(filter: nil)
  response = make_request(method: :get, query: {filter:})

  entries = response.collection
  while response.pagination.next_page?
    uri = build_uri(response.pagination.next_page)
    response = make_request(uri:, method: :get)
    entries += response.collection
  end

  entries
end

#create(model) ⇒ Object



30
31
32
# File 'lib/economic/repo.rb', line 30

def create(model)
  make_request(method: :post, data: model).entity
end

#destroy(id_or_model) ⇒ Object



38
39
40
# File 'lib/economic/repo.rb', line 38

def destroy(id_or_model)
  make_request(id_or_model:, method: :delete)
end

#find(id_or_model) ⇒ Object



26
27
28
# File 'lib/economic/repo.rb', line 26

def find(id_or_model)
  make_request(id_or_model:, method: :get).entity
end

#update(model) ⇒ Object



34
35
36
# File 'lib/economic/repo.rb', line 34

def update(model)
  make_request(id_or_model: model, method: :put, data: model).entity
end