dina 0.5.5.0 → 0.5.7.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: 2219751eeaf3e31b3b3206c5ca7b87a9e724662c3ed64c0781f8c35668b365cf
4
- data.tar.gz: c951a685a472e4486a8847d1a2bf415e4ff39c540e80b9b4e50da72d073e69c4
3
+ metadata.gz: 4999fc970acb56ad2c4dcacb27124741d65c91b9dc00f13267b6da0f756ee3a9
4
+ data.tar.gz: 461e2ca77f1b4f4e7a675e42fc5f81008e967222211fb7ea4b0aa8435f869700
5
5
  SHA512:
6
- metadata.gz: 7fe97ac48169a94af0b4b4d8dc5fe380b9b7aca9ac9abf656b915c428df20949f5b2bd034b681b9e23ac2e44d10635a7c64a5c947348a0f7f9f0bd6d79f5f882
7
- data.tar.gz: 131b8bab4675a4bffec2aa7f22a2b52ef495914ad6f4203cf73866736c16ddceba2142a26e8135f3d5ad161d8618f2a151087ab73658d24799b1043fa2c399b2
6
+ metadata.gz: 2b3573481c0cfffd4fca4f32f8ff521ad357e7eb63598fc3d6ce77441d3a154c1b69bb382ef8473a0ce5525c8268042e4fd936bd203bc7970c720da320aba1b6
7
+ data.tar.gz: eabb87d0e292a17a4cd1769757c5de8e0862e3fc23aaeb81dcb1d3d5613f211e5937d42eddef28098872e195d8814431de9b33771e972ac6e5ab0a58e42ab84b
@@ -39,6 +39,10 @@ module Dina
39
39
  @endpoint_url = options[:endpoint_url]
40
40
  Keycloak.auth_server_url = options[:authorization_url]
41
41
  Keycloak.realm = options[:realm]
42
+
43
+ if ::File.zero?(@token_store_file)
44
+ create_empty_token
45
+ end
42
46
  end
43
47
 
44
48
  # Gets, sets, and renews a Bearer access token as required
@@ -46,10 +50,6 @@ module Dina
46
50
  #
47
51
  # @return [String] the Bearer token
48
52
  def self.header
49
- if ::File.zero?(@token_store_file)
50
- create_empty_token
51
- end
52
-
53
53
  if access_token.nil? || refresh_token.nil?
54
54
  set_token
55
55
  end
@@ -17,7 +17,7 @@ module Dina
17
17
  has_many :identifiers, class_name: "Identifier"
18
18
 
19
19
  validates_presence_of :familyNames, message: "familyNames is required"
20
- validates_presence_of :displayName
20
+ validates_presence_of :displayName, message: "displayName is required"
21
21
 
22
22
  def self.endpoint_path
23
23
  "agent-api/"
@@ -23,6 +23,10 @@ module Dina
23
23
  self.where("group.groupName": group).page(page).per(per)
24
24
  end
25
25
 
26
+ def self.properties
27
+ self.schema.instance_values["properties"]
28
+ end
29
+
26
30
  def initialize(params = {})
27
31
  symbolized_params = params.transform_keys(&:to_sym)
28
32
  params["id"] = SecureRandom.uuid if !symbolized_params[:id]
@@ -33,7 +33,7 @@ module Dina
33
33
  # @param email [String] a name
34
34
  # @return object [Object] a Collection object
35
35
  def self.find_by_name(name)
36
- where(name: name).all.first
36
+ where(name: name).all
37
37
  end
38
38
 
39
39
  # Finds a Collection object by code
@@ -41,7 +41,7 @@ module Dina
41
41
  # @param code [String] a code
42
42
  # @return object [Object] a Collection object
43
43
  def self.find_by_code(code)
44
- where(code: code).all.first
44
+ where(code: code).all
45
45
  end
46
46
 
47
47
  end
@@ -16,6 +16,7 @@ module Dina
16
16
  belongs_to :ac_derived_from, shallow_path: true, class_name: "ObjectStore"
17
17
 
18
18
  validates_presence_of :group, message: "group is required"
19
+ validates_presence_of :bucket, message: "bucket is required"
19
20
 
20
21
  def self.endpoint_path
21
22
  "objectstore-api/"
@@ -28,8 +29,8 @@ module Dina
28
29
  private
29
30
 
30
31
  def on_before_save
31
- if self.bucket.nil?
32
- self.bucket = self.group
32
+ if self.group && self.bucket.nil?
33
+ self.bucket = self.group.downcase
33
34
  end
34
35
  super
35
36
  end
@@ -1,14 +1,23 @@
1
1
  module Dina
2
- class File
2
+ class File < BaseModel
3
3
  attr_accessor :file_path, :group, :is_derivative, :id
4
4
 
5
+ def self.verify_ssl
6
+ begin
7
+ connection_options[:ssl][:verify]
8
+ rescue
9
+ true
10
+ end
11
+ end
12
+
5
13
  def self.find(group:, id:)
6
14
  obj = self.new
7
15
  obj.group = group
8
16
  RestClient::Request.execute(
9
17
  method: :get,
10
18
  headers: { authorization: Dina::Authentication.header },
11
- url: obj.url + "/#{id}"
19
+ url: obj.url + "/#{id}",
20
+ verify_ssl: verify_ssl
12
21
  )
13
22
  end
14
23
 
@@ -44,7 +53,8 @@ module Dina
44
53
  payload: {
45
54
  multipart: true,
46
55
  file: file
47
- }
56
+ },
57
+ verify_ssl: self.class.verify_ssl
48
58
  )
49
59
  json = JSON.parse(response, symbolize_names: true)
50
60
  self.id = json[:uuid]
@@ -34,6 +34,7 @@ module Dina
34
34
  has_many :derivatives, class_name: "Derivative"
35
35
 
36
36
  validates_presence_of :group, message: "group is required"
37
+ validates_presence_of :bucket, message: "bucket is required"
37
38
  validates_presence_of :dcFormat, message: "dcFormat is required"
38
39
  validates_presence_of :dcType, message: "dcType is required"
39
40
  validates_presence_of :xmpRightsUsageTerms, message: "xmpRightsUsageTerms is required"
@@ -63,6 +64,9 @@ module Dina
63
64
  private
64
65
 
65
66
  def on_before_save
67
+ if self.group && self.bucket.nil?
68
+ self.bucket = self.group.downcase
69
+ end
66
70
  if !self.dcType.nil? && !self.class.accepted_types.include?(self.dcType)
67
71
  raise PropertyValueInvalid, "#{self.class} is invalid. Accepted value for dcType is one of #{self.class.accepted_types.join(", ")}"
68
72
  end
data/lib/dina/version.rb CHANGED
@@ -3,7 +3,7 @@ module Dina
3
3
 
4
4
  MAJOR = 0
5
5
  MINOR = 5
6
- PATCH = 5
6
+ PATCH = 7
7
7
  BUILD = 0
8
8
 
9
9
  def self.version
data/lib/dina.rb CHANGED
@@ -14,4 +14,7 @@ module Dina
14
14
  JsonApiClient::Schema.register multilingual_title: Dina::MultilingualTitleCaster
15
15
  JsonApiClient::Schema.register multilingual_description: Dina::MultilingualDescriptionCaster
16
16
 
17
+ def self.classes
18
+ Dina::BaseModel.subclasses
19
+ end
17
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dina
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5.0
4
+ version: 0.5.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David P. Shorthouse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-13 00:00:00.000000000 Z
11
+ date: 2022-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json_api_client