Module: Resteze::ApiResource

Extended by:
ActiveSupport::Concern
Includes:
Request
Defined in:
lib/resteze/api_resource.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#initialize(id = nil, values: {}) ⇒ Object



6
7
8
9
10
# File 'lib/resteze/api_resource.rb', line 6

def initialize(id = nil, values: {})
  super(values)
  id, @retrieve_params = util.normalize_id(id)
  self.id = id if self.class.property?(:id)
end

#refreshObject



33
34
35
36
37
38
39
40
41
42
# File 'lib/resteze/api_resource.rb', line 33

def refresh
  resp = request(
    retrieve_method,
    resource_path,
    params: retrieve_params,
    headers: retrieve_headers
  )

  initialize_from(resp.data)
end

#resource_pathObject



12
13
14
15
16
17
18
19
# File 'lib/resteze/api_resource.rb', line 12

def resource_path
  unless id.present?
    raise api_module::InvalidRequestError.new("Could not determine which PATH to request: #{self.class} instance has " \
                                              "invalid ID: #{id.inspect}", "id")
  end

  self.class.resource_path(id)
end

#retrieve_headersObject



29
30
31
# File 'lib/resteze/api_resource.rb', line 29

def retrieve_headers
  {}
end

#retrieve_methodObject



21
22
23
# File 'lib/resteze/api_resource.rb', line 21

def retrieve_method
  :get
end

#retrieve_paramsObject



25
26
27
# File 'lib/resteze/api_resource.rb', line 25

def retrieve_params
  @retrieve_params || {}
end