Class: Dina::BaseModel
- Inherits:
-
JsonApiClient::Resource
- Object
- JsonApiClient::Resource
- Dina::BaseModel
- Includes:
- JsonApiClient::Helpers::Callbacks
- Defined in:
- lib/dina/models/base_model.rb
Direct Known Subclasses
AcquisitionEvent, Assemblage, Attachment, BaseSearch, CollectingEvent, CollectingMethod, Collection, CollectionSequenceGenerator, Derivative, File, Identifier, IndexSet, Institution, ManagedAttribute, MaterialSample, MolecularSample, NgsWorkflow, ObjectStore, ObjectStoreManagedAttribute, ObjectSubtype, Organism, Organization, PcrBatch, PcrPrimer, Person, PreparationMethod, PreparationType, Product, Project, Protocol, Region, StorageUnit, StorageUnitType, ThermocyclerProfile, Transaction, User
Class Method Summary collapse
-
.custom_headers ⇒ Object
injects keybloak bearer token with all json_api_client calls.
-
.endpoint_path ⇒ Object
Required by json_api_client Set by all child classes.
-
.find_by_group(group, page: 1, per: 50) ⇒ Object
helper method for all child classes to retrieve records by group.
-
.properties ⇒ Object
helper method to retrieve all properties for a class.
-
.site ⇒ Object
Required by json_api_client.
Instance Method Summary collapse
-
#initialize(params = {}) ⇒ BaseModel
constructor
A new instance of BaseModel.
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_headers ⇒ Object
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_path ⇒ Object
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 |
.properties ⇒ Object
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 |
.site ⇒ Object
Required by json_api_client
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 |