Class: Dina::BaseModel

Inherits:
JsonApiClient::Resource
  • Object
show all
Includes:
JsonApiClient::Helpers::Callbacks
Defined in:
lib/dina/models/base_model.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ BaseModel

Returns a new instance of BaseModel.



38
39
40
41
42
43
# File 'lib/dina/models/base_model.rb', line 38

def initialize(params = {})
  symbolized_params = params.transform_keys(&:to_sym)
  params["id"] = SecureRandom.uuid if !symbolized_params[:id]
  super
  extend_model_methods
end

Class Method Details

.custom_headersObject

injects keybloak bearer token with all json_api_client calls



24
25
26
# File 'lib/dina/models/base_model.rb', line 24

def self.custom_headers
  { content_type: "application/vnd.api+json", authorization: Dina.header }
end

.endpoint_pathObject

Required by json_api_client Set by all child classes



14
15
# File 'lib/dina/models/base_model.rb', line 14

def self.endpoint_path
end

.find_by_group(group, page: 1, per: 50) ⇒ Object

helper method for all child classes to retrieve records by group



29
30
31
# File 'lib/dina/models/base_model.rb', line 29

def self.find_by_group(group, page: 1, per: 50)
  self.where("group.groupName": group).page(page).per(per)
end

.propertiesObject

helper method to retrieve all properties for a class



34
35
36
# File 'lib/dina/models/base_model.rb', line 34

def self.properties
  self.schema.instance_values["properties"]
end

.siteObject

Required by json_api_client

Raises:



18
19
20
21
# File 'lib/dina/models/base_model.rb', line 18

def self.site
  raise ConfigItemMissing, "Missing endpoint_url from config. Perhaps Dina.config has not yet been called." unless Dina.config.endpoint_url
  Dina.config.endpoint_url + "/" + endpoint_path
end