dina 2.3.0.0 → 3.1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ea5252ef054c209ba20f6838bb83a9ca4bd0316e4e6a6cf3f80b6376ebb584e
4
- data.tar.gz: 1ee32a455976e479d30cc56fbdf87f570769cff606556ed18ade6d6bc896e277
3
+ metadata.gz: 5b5df9be26541369dc33ef722b3e1c3683bc1fc981585f15a5915dfe65d7621b
4
+ data.tar.gz: 292638ee427d55bfecd10af5a67f60cbba64ebabc3594438b803a54ab295261d
5
5
  SHA512:
6
- metadata.gz: 98623d3b0ef78e402bca5a56848ca5b4174e441e164ab68ba2148c76b2b09d8e1358b705f87d7bc9b9a7a6c1c97bc9353aef9f70027dc80fa9269e0b7fa68837
7
- data.tar.gz: f21cd32cbcaad5ffca5ec8ae82cb63be9f6deba75eceddf2be5081b4c7132b0d7e5cb85ed74f4cc218121f86bc4d5137f9c98a1cdd30042831ec2d5da29faa1b
6
+ metadata.gz: 9b3dcde98ba46f4abd3ffb66750c9c7d90856da5b5f81d4d766bcac4e8028aa6287d4599ae0e3df9d3d7fa4c8edf647748cde129294476de46b96bb84f91c0fb
7
+ data.tar.gz: cd6f4bd3867f55ca17c7b8eed0d9024896d26ce3656e5c7b3a2d16f60fa635455469b1a7346756603bd524e7695230f3dc66a28755edfd03322f3dfb3eb3ab54
@@ -8,7 +8,7 @@ module Dina
8
8
  property :createdBy, type: :string
9
9
  property :createdOn, type: :time
10
10
 
11
- belongs_to :person, shallow_path: true, class_name: "Person"
11
+ belongs_to :person, class_name: "Person", shallow_path: true
12
12
 
13
13
  validates_presence_of :namespace, message: "namespace is required"
14
14
  validates_presence_of :value, message: "value is required"
@@ -8,8 +8,8 @@ module Dina
8
8
  property :createdBy, type: :string
9
9
  property :createdOn, type: :time
10
10
 
11
- validates :english_name, presence: true, on: :create
12
- validates :french_name, presence: true, on: :create
11
+ validates :englishName, presence: true, on: :create
12
+ validates :frenchName, presence: true, on: :create
13
13
 
14
14
  def self.endpoint_path
15
15
  "agent-api/"
@@ -19,21 +19,21 @@ module Dina
19
19
  "organization"
20
20
  end
21
21
 
22
- def english_name=(name)
22
+ def englishName=(name)
23
23
  names.delete_if{|o| o[:languageCode] == "EN"}
24
24
  names << { languageCode: "EN", name: name }
25
25
  end
26
26
 
27
- def english_name
27
+ def englishName
28
28
  names.select{|o| o[:languageCode] == "EN"}.first[:name]
29
29
  end
30
30
 
31
- def french_name=(name)
31
+ def frenchName=(name)
32
32
  names.delete_if{|o| o[:languageCode] == "FR"}
33
33
  names << { languageCode: "FR", name: name }
34
34
  end
35
35
 
36
- def french_name
36
+ def frenchName
37
37
  names.select{|o| o[:languageCode] == "FR"}.first[:name]
38
38
  end
39
39
 
@@ -4,10 +4,10 @@ module Dina
4
4
  class Attachment < BaseModel
5
5
  property :id, type: :string, default: SecureRandom.uuid_v7
6
6
 
7
- belongs_to :material_sample, shallow_path: true, class_name: "MaterialSample"
8
- belongs_to :collecting_event, shallow_path: true, class_name: "CollectingEvent"
9
- belongs_to :project, shallow_path: true, class_name: "Project"
10
- belongs_to :transaction, shallow_path: true, class_name: "Transaction"
7
+ belongs_to :materialSample, class_name: "MaterialSample", shallow_path: true
8
+ belongs_to :collectingEvent, class_name: "CollectingEvent", shallow_path: true
9
+ belongs_to :project, class_name: "Project", shallow_path: true
10
+ belongs_to :transaction, class_name: "Transaction", shallow_path: true
11
11
 
12
12
  def self.endpoint_path
13
13
  "collection-api/"
@@ -4,9 +4,15 @@ module Dina
4
4
 
5
5
  self.raise_on_blank_find_param = true
6
6
  self.add_defaults_to_changes = true
7
- self.json_key_format = :camelized_key
8
7
  self.paginator = JsonApiClient::Paginating::NestedParamPaginator
9
8
 
9
+ resolve_custom_type "collection-method", "Dina::CollectionMethod"
10
+ resolve_custom_type "collecting-event", "Dina::CollectingEvent"
11
+ resolve_custom_type "preparation-type", "Dina::PreparationType"
12
+ resolve_custom_type "preparation-method", "Dina::PreparationMethod"
13
+ resolve_custom_type "material-sample", "Dina::MaterialSample"
14
+ resolve_custom_type "storage-unit", "Dina::StorageUnit"
15
+
10
16
  before_create :on_before_create
11
17
  before_save :on_before_save
12
18
 
@@ -43,11 +43,11 @@ module Dina
43
43
  property :createdBy, type: :string
44
44
  property :createdOn, type: :time
45
45
 
46
+ has_one :protocol, class_name: "Protocol"
47
+ has_one :collectionMethod, class_name: "CollectionMethod"
46
48
  has_many :collectors, class_name: "Person"
47
49
  has_many :attachment, class_name: "Attachment"
48
50
 
49
- has_one :collection_method, class_name: "CollectionMethod"
50
-
51
51
  validates_presence_of :group, message: "group is required"
52
52
 
53
53
  before_save :on_before_save
@@ -15,8 +15,8 @@ module Dina
15
15
  property :createdBy, type: :string
16
16
  property :createdOn, type: :time
17
17
 
18
- belongs_to :institution, shallow_path: true, class_name: "Institution"
19
- has_one :parent_collection, class_name: "Collection"
18
+ belongs_to :institution, class_name: "Institution", shallow_path: true
19
+ has_one :parentCollection, class_name: "Collection"
20
20
 
21
21
  validates_presence_of :group, message: "group is required"
22
22
 
@@ -9,8 +9,6 @@ module Dina
9
9
  property :createdBy, type: :string
10
10
  property :createdOn, type: :time
11
11
 
12
- belongs_to :collecting_event, class: "CollectingEvent", shallow_path: true
13
-
14
12
  validates_presence_of :group, message: "group is required"
15
13
 
16
14
  def self.endpoint_path
@@ -25,6 +25,7 @@ module Dina
25
25
  property :stateChangedOn, type: :date
26
26
  property :stateChangeRemarks, type: :string
27
27
  property :materialSampleRemarks, type: :string
28
+ property :sourceSet, type: :string
28
29
  property :extensionValues, type: :hash
29
30
  property :restrictionFieldsExtension, type: :hash
30
31
  property :restrictionRemarks, type: :string
@@ -40,14 +41,14 @@ module Dina
40
41
  property :targetOrganismPrimaryScientificName, type: :string
41
42
  property :allowDuplicateName, type: :boolean
42
43
 
44
+ has_one :collectingEvent, class_name: "CollectingEvent"
43
45
  has_one :collection, class_name: "Collection"
44
- has_one :collecting_event, class_name: "CollectingEvent"
45
- has_one :preparation_type, class_name: "PreparationType"
46
- has_one :preparation_method, class_name: "PreparationMethod"
47
- has_one :parent_material_sample, class_name: "MaterialSample"
48
- has_one :preparation_protocol, class_name: "Protocol"
49
- has_one :storage_unit, class_name: "StorageUnit"
50
- has_many :prepared_by, class_name: "Person"
46
+ has_one :preparationType, class_name: "PreparationType"
47
+ has_one :preparationMethod, class_name: "PreparationMethod"
48
+ has_one :parentMaterialSample, class_name: "MaterialSample"
49
+ has_one :preparationProtocol, class_name: "Protocol"
50
+ has_one :storageUnitUsage, class_name: "StorageUnitUsage"
51
+ has_many :preparedBy, class_name: "Person"
51
52
  has_many :attachment, class_name: "Attachment"
52
53
  has_many :projects, class_name: "Project"
53
54
  has_many :assemblages, class_name: "Assemblage"
@@ -13,7 +13,7 @@ module Dina
13
13
  property :derivativeType, type: :string
14
14
  property :publiclyReleasable, type: :boolean, default: true
15
15
 
16
- has_one :ac_derived_from, class_name: "ObjectStore"
16
+ has_one :acDerivedFrom, class_name: "ObjectStore"
17
17
 
18
18
  validates_presence_of :bucket, message: "bucket is required"
19
19
  validates_presence_of :dcFormat, message: "dcFormat is required"
@@ -33,7 +33,7 @@ module Dina
33
33
 
34
34
  def on_before_save
35
35
  if self.as_json_api["relationships"].nil? || !self.as_json_api["relationships"].has_key?("acDerivedFrom")
36
- raise ObjectInvalid, "#{self.class} is invalid. ac_derived_from relationship is required"
36
+ raise ObjectInvalid, "#{self.class} is invalid. acDerivedFrom relationship is required"
37
37
  end
38
38
  super
39
39
  end
@@ -4,14 +4,14 @@ require_rel 'file_connection'
4
4
  module Dina
5
5
 
6
6
  class File < BaseModel
7
+ self.connection_class = FileConnection
8
+
7
9
  property :id, type: :string, default: SecureRandom.uuid_v7
8
10
  property :group, type: :string
9
11
  property :filePath, type: :string
10
12
  property :fileName, type: :string
11
13
  property :dcFormat, type: :string
12
- property :is_derivative, type: :boolean
13
-
14
- self.connection_class = FileConnection
14
+ property :isDerivative, type: :boolean
15
15
 
16
16
  validates_presence_of :group, message: "group is required"
17
17
  validates_presence_of :filePath, message: "filePath is required"
@@ -10,6 +10,7 @@ module Dina
10
10
 
11
11
  @faraday = Faraday.new(site, connection_options) do |builder|
12
12
  builder.request :multipart
13
+ builder.response :json
13
14
  builder.adapter(*adapter_options)
14
15
  end
15
16
  yield(self) if block_given?
@@ -17,7 +18,7 @@ module Dina
17
18
 
18
19
  def run(request_method, path, params: nil, headers: {}, body: nil)
19
20
  path = path + "/#{body[:data]["attributes"]["group"].downcase}"
20
- if body[:data]["attributes"].key?("is_derivative")
21
+ if body[:data]["attributes"].key?("isDerivative")
21
22
  path = path + "/derivative"
22
23
  end
23
24
  file_path = body[:data]["attributes"]["filePath"]
@@ -33,7 +34,7 @@ module Dina
33
34
  response = @faraday.run_request(request_method, path, body, headers) do |request|
34
35
  request.params.update(params) if params
35
36
  end
36
- attributes = JSON.parse(response.body.dup)
37
+ attributes = response.body.dup
37
38
  response.body["meta"] = {}
38
39
  response.body["errors"] = []
39
40
  response.body["data"] = {
@@ -29,8 +29,8 @@ module Dina
29
29
  property :orientation, type: :integer
30
30
  property :resourceExternalURL, type: :string
31
31
 
32
- has_one :ac_metadata_creator, class_name: "Person"
33
- has_one :dc_creator, class_name: "Person"
32
+ has_one :acMetadataCreator, class_name: "Person"
33
+ has_one :dcCreator, class_name: "Person"
34
34
  has_many :derivatives, class_name: "Derivative"
35
35
 
36
36
  validates_presence_of :group, message: "group is required"
@@ -30,7 +30,7 @@ module Dina
30
30
  property :createdBy, type: :string
31
31
  property :createdOn, type: :time
32
32
 
33
- has_one :region
33
+ has_one :region, class_name: "Region"
34
34
 
35
35
  validates_presence_of :group, message: "group is required"
36
36
  validates_presence_of :name, message: "name is required"
@@ -5,13 +5,14 @@ module Dina
5
5
  property :id, type: :string, default: SecureRandom.uuid_v7
6
6
  property :group, type: :string
7
7
  property :name, type: :string
8
+ property :isGeneric, type: :boolean
8
9
  property :barcode, type: :string
9
10
  property :storageUnitChildren, type: :array
10
11
  property :hierarchy, type: :string
11
12
  property :createdBy, type: :string
12
13
  property :createdOn, type: :time
13
14
 
14
- has_one :storage_unit_type
15
+ has_one :storage_unit_type, class_name: "StorageUnitType"
15
16
  has_one :parent_storage_unit, class_name: "StorageUnit"
16
17
 
17
18
  validates_presence_of :group, message: "group is required"
@@ -0,0 +1,27 @@
1
+ require_rel '../base_model'
2
+
3
+ module Dina
4
+ class StorageUnitUsage < BaseModel
5
+ property :id, type: :string, default: SecureRandom.uuid_v7
6
+ property :usageType, type: :string
7
+ property :wellRow, type: :string
8
+ property :wellColumn, type: :string
9
+ property :cellNumber, type: :string
10
+ property :storageUnitName, type: :string
11
+ property :createdBy, type: :string
12
+ property :createdOn, type: :time
13
+
14
+ has_one :storage_unit, class_name: "StorageUnit"
15
+ has_one :storage_unit_type, class_name: "StorageUnitType"
16
+
17
+ validates_presence_of :usageType, message: "usageType is required"
18
+
19
+ def self.endpoint_path
20
+ "collection-api/"
21
+ end
22
+
23
+ def self.table_name
24
+ "storage-unit-usage"
25
+ end
26
+ end
27
+ end
@@ -3,7 +3,6 @@ require_rel 'search_connection'
3
3
 
4
4
  module Dina
5
5
  class Search < BaseModel
6
-
7
6
  self.connection_class = SearchConnection
8
7
 
9
8
  custom_endpoint :execute, on: :collection, request_method: :post
@@ -5,7 +5,6 @@ require_rel 'search_connection'
5
5
 
6
6
  module Dina
7
7
  class SearchAutoComplete < BaseModel
8
-
9
8
  self.connection_class = SearchConnection
10
9
 
11
10
  custom_endpoint :execute, on: :collection, request_method: :get
@@ -13,6 +13,7 @@ module Dina
13
13
 
14
14
  @faraday = Faraday.new(site, connection_options) do |builder|
15
15
  builder.request :json
16
+ builder.response :json
16
17
  builder.adapter(*adapter_options)
17
18
  end
18
19
  yield(self) if block_given?
@@ -47,7 +48,7 @@ module Dina
47
48
  request.body = payload
48
49
  end
49
50
 
50
- attributes = JSON.parse(response.body.dup)
51
+ attributes = response.body.dup
51
52
  meta = {}
52
53
  if attributes.has_key?("hits")
53
54
  #TODO: does not work with SearchAutoComplete because response is different from Search
@@ -65,7 +66,6 @@ module Dina
65
66
 
66
67
  def use(middleware, *args, &block)
67
68
  return if faraday.builder.locked?
68
- faraday.builder.insert_before(Middleware::ParseJson, middleware, *args, &block)
69
69
  end
70
70
 
71
71
  end
@@ -3,7 +3,6 @@ require_rel 'search_connection'
3
3
 
4
4
  module Dina
5
5
  class SearchCount < BaseModel
6
-
7
6
  self.connection_class = SearchConnection
8
7
 
9
8
  custom_endpoint :execute, on: :collection, request_method: :post
@@ -3,7 +3,6 @@ require_rel 'search_connection'
3
3
 
4
4
  module Dina
5
5
  class SearchMapping < BaseModel
6
-
7
6
  self.connection_class = SearchConnection
8
7
 
9
8
  custom_endpoint :execute, on: :collection, request_method: :get
data/lib/dina/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module Dina
2
2
  class Version
3
3
 
4
- MAJOR = 2
5
- MINOR = 3
4
+ MAJOR = 3
5
+ MINOR = 1
6
6
  PATCH = 0
7
7
  BUILD = 0
8
8
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dina
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0.0
4
+ version: 3.1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David P. Shorthouse
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-05-27 00:00:00.000000000 Z
12
+ date: 2024-07-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json_api_client
@@ -198,6 +198,7 @@ files:
198
198
  - lib/dina/models/sequence/thermocycler_profile.rb
199
199
  - lib/dina/models/storage/storage_unit.rb
200
200
  - lib/dina/models/storage/storage_unit_type.rb
201
+ - lib/dina/models/storage/storage_unit_usage.rb
201
202
  - lib/dina/models/transaction/transaction.rb
202
203
  - lib/dina/models/user.rb
203
204
  - lib/dina/rest_client_request_patch.rb