global_registry_models 0.10.2 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +1 -1
  4. data/global_registry_models.gemspec +2 -2
  5. data/lib/global_registry_models.rb +8 -1
  6. data/lib/global_registry_models/api_operations/add_enum_value.rb +14 -0
  7. data/lib/global_registry_models/api_operations/finders.rb +1 -1
  8. data/lib/global_registry_models/api_operations/persistence.rb +1 -0
  9. data/lib/global_registry_models/api_operations/search.rb +2 -2
  10. data/lib/global_registry_models/common_base.rb +13 -1
  11. data/lib/global_registry_models/entity/base.rb +31 -2
  12. data/lib/global_registry_models/entity/enum_value.rb +1 -2
  13. data/lib/global_registry_models/entity/global_mcc.rb +1 -1
  14. data/lib/global_registry_models/entity/indigitous_event_classic.rb +21 -0
  15. data/lib/global_registry_models/entity/indigitous_event_hash.rb +20 -0
  16. data/lib/global_registry_models/entity/indigitous_event_session.rb +20 -0
  17. data/lib/global_registry_models/entity/indigitous_event_session_attendee.rb +22 -0
  18. data/lib/global_registry_models/entity/ministry.rb +1 -0
  19. data/lib/global_registry_models/entity/person.rb +28 -0
  20. data/lib/global_registry_models/entity/relationship.rb +15 -0
  21. data/lib/global_registry_models/entity_type/base.rb +0 -5
  22. data/lib/global_registry_models/measurement_type/base.rb +0 -4
  23. data/lib/global_registry_models/relationship_type/base.rb +0 -4
  24. data/lib/global_registry_models/subscription/base.rb +0 -4
  25. data/lib/global_registry_models/system/base.rb +0 -5
  26. data/lib/global_registry_models/system/system.rb +5 -1
  27. data/lib/global_registry_models/version.rb +1 -1
  28. metadata +10 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62c513fb67fd93803c7f128e7a943abb8fe4c8a0
4
- data.tar.gz: 0e1fcd32f6917b803d7e7752a8d6df65b1ff6e5c
3
+ metadata.gz: 4dc67d0666fbdc964e5f262c01ba3f1199523018
4
+ data.tar.gz: 1c5e793ce80db4c64d5ff260e7a0d578cd3fb56e
5
5
  SHA512:
6
- metadata.gz: bc788e459690aa77d93e3e01c54230cb6ade62eebf57dc63adceeb2a0423c7566f323013af221d91cec4e097431d17c2999ca17161cc15a1fae8873a4a221111
7
- data.tar.gz: d57019e5e8dbe3f2ccd18db54e9d3ae73475454702b65ace73dc8835231da63c4afeaa7a56490656d7bd1a02c831beb273256dbd6ddc37f98f84c3fe5ba7c526
6
+ metadata.gz: 318f53e62f0d21afdff5cc958389c263f133a0bf0c88b53815c4b429435a0ecbfcb28ba12e8f49ef8097dc7925e0c75467315b8e4400aaeaec095a8c7f38f324
7
+ data.tar.gz: 905f6ba3642d6fa5bf34b886c93f4e29dea6709ea3c3b8206fa40871cc4a2859b7d868a50515ea5ab60d62e14755edf2b6aa10251714d18a7290b7c68abb0e67
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /tmp/
10
10
  /global_registry_models-*.gem
11
11
  .DS-Store
12
+ .idea
data/README.md CHANGED
@@ -26,7 +26,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
26
26
 
27
27
  ## Contributing
28
28
 
29
- Bug reports and pull requests are welcome on GitHub at https://github.com/sheldond/global_registry_models.
29
+ Bug reports and pull requests are welcome on GitHub at https://github.com/CruGlobal/global_registry_models
30
30
 
31
31
  ## License
32
32
 
@@ -6,12 +6,12 @@ require 'global_registry_models/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'global_registry_models'
8
8
  spec.version = GlobalRegistryModels::VERSION
9
- spec.authors = ['Sheldon Dueck','Daniel Fugere']
9
+ spec.authors = ['Sheldon Dueck', 'Daniel Fugere']
10
10
  spec.email = ['sheldon.dueck@gmail.com']
11
11
 
12
12
  spec.summary = %q{Data models for the Global Registry.}
13
13
  spec.description = %q{Provides data models for interacting with the Global Registry. Built ontop of the client gem global_registry.}
14
- spec.homepage = 'https://github.com/sheldond/global_registry_models'
14
+ spec.homepage = 'https://github.com/CruGlobal/global_registry_models'
15
15
  spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -1,5 +1,6 @@
1
1
  require 'active_support/all'
2
2
 
3
+ require 'global_registry/base'
3
4
  require 'global_registry/subscription'
4
5
  require 'global_registry/system_methods'
5
6
 
@@ -16,7 +17,7 @@ require 'global_registry_models/api_operations/finders'
16
17
  require 'global_registry_models/api_operations/search'
17
18
  require 'global_registry_models/api_operations/delete'
18
19
  require 'global_registry_models/api_operations/reset_access_token'
19
-
20
+ require 'global_registry_models/api_operations/add_enum_value'
20
21
 
21
22
  require 'global_registry_models/common_base'
22
23
 
@@ -28,6 +29,12 @@ require 'global_registry_models/entity/iso_country'
28
29
  require 'global_registry_models/entity/ministry'
29
30
  require 'global_registry_models/entity/ministry_brand'
30
31
  require 'global_registry_models/entity/target_area'
32
+ require 'global_registry_models/entity/person'
33
+ require 'global_registry_models/entity/indigitous_event_classic'
34
+ require 'global_registry_models/entity/indigitous_event_hash'
35
+ require 'global_registry_models/entity/indigitous_event_session'
36
+ require 'global_registry_models/entity/indigitous_event_session_attendee'
37
+ require 'global_registry_models/entity/relationship'
31
38
 
32
39
  require 'global_registry_models/entity_type/base'
33
40
  require 'global_registry_models/entity_type/entity_type'
@@ -0,0 +1,14 @@
1
+ module GlobalRegistryModels
2
+ module APIOperations
3
+ module AddEnumValue
4
+ extend ActiveSupport::Concern
5
+
6
+ module ClassMethods
7
+ def add_enum_value(entity_type_name, enum_value)
8
+ hash = { 'entity' => { '_enum_values' => { entity_type_name => enum_value } } }
9
+ GlobalRegistry::Entity.post(hash)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -9,7 +9,7 @@ module GlobalRegistryModels
9
9
 
10
10
  module ClassMethods
11
11
 
12
- def all!(filters: nil, start_page: 1, per_page: nil, order: nil, fields: nil, ruleset: nil, max_attempts: 1)
12
+ def all!(filters: nil, start_page: 1, per_page: nil, order: nil, fields: '*', ruleset: nil, max_attempts: 1)
13
13
  GlobalRegistryModels::Collection.new(meta: {}, list: []).tap do |collection|
14
14
  page_num = start_page
15
15
  loop do
@@ -8,6 +8,7 @@ module GlobalRegistryModels
8
8
  def prepare_parameters(object, attributes)
9
9
  attribute_keys = attributes.keys.collect(&:to_sym) & writeable_attributes
10
10
  prepared_attributes = object.attributes.with_indifferent_access.slice(*attribute_keys)
11
+ prepared_attributes = specific_attributes_preparations(object, prepared_attributes)
11
12
  prepared_attributes
12
13
  end
13
14
 
@@ -4,8 +4,8 @@ module GlobalRegistryModels
4
4
  extend ActiveSupport::Concern
5
5
 
6
6
  module ClassMethods
7
-
8
- def search(filters: nil, page: nil, per_page: nil, order: nil, fields: nil, ruleset: nil)
7
+
8
+ def search(filters: nil, page: nil, per_page: nil, order: nil, fields: default_field, ruleset: nil)
9
9
 
10
10
  params = params_by_offset_and_limit(page, per_page) if requires_pagination?(page, per_page)
11
11
 
@@ -39,11 +39,23 @@ module GlobalRegistryModels
39
39
  attribute_names - [:id]
40
40
  end
41
41
 
42
+ def self.default_field
43
+ nil
44
+ end
45
+
46
+ def self.has_meta
47
+ true
48
+ end
49
+
42
50
  private
43
51
 
44
52
  def underscore_name
45
53
  self.name = self.name.downcase.tr(' ','_') if self.name
46
- end
54
+ end
55
+
56
+ def self.specific_attributes_preparations(object, attributes)
57
+ attributes
58
+ end
47
59
 
48
60
  end
49
61
 
@@ -7,6 +7,14 @@ module GlobalRegistryModels
7
7
  attribute :client_integration_id, String
8
8
  validates_presence_of :client_integration_id
9
9
 
10
+ def initialize(params = {})
11
+ super(params)
12
+ @relationships = []
13
+ params.each do |key,value|
14
+ create_relationship(key,value) if key.to_s.include? ':relationship'
15
+ end
16
+ end
17
+
10
18
  def self.search_params
11
19
  {
12
20
  entity_type: name
@@ -26,8 +34,29 @@ module GlobalRegistryModels
26
34
  to_s.gsub(/.*::/, '').underscore
27
35
  end
28
36
 
29
- def self.has_meta
30
- true
37
+ def self.default_field
38
+ '*'
39
+ end
40
+
41
+ def relationships
42
+ @relationships
43
+ end
44
+
45
+ def self.specific_attributes_preparations(object, attributes)
46
+ object.relationships.each do |relationship|
47
+ attributes["#{relationship.relationship_type}:relationship"] = {
48
+ relationship.entity_type => relationship.related_entity_id,
49
+ 'client_integration_id' => relationship.client_integration_id
50
+ }
51
+ end
52
+ attributes
53
+ end
54
+
55
+ private
56
+
57
+ def create_relationship(key,value_hash)
58
+ @relationships << Relationship.new(relationship_type: key.to_s.split(':').first, entity_type: value_hash.keys.first,
59
+ related_entity_id: value_hash.values.first, client_integration_id: value_hash['client_integration_id'])
31
60
  end
32
61
  end
33
62
  end
@@ -1,7 +1,7 @@
1
1
  module GlobalRegistryModels
2
2
  module Entity
3
3
  class EnumValueBase < Base
4
-
4
+ include GlobalRegistryModels::APIOperations::AddEnumValue
5
5
  attribute :enum_value, String
6
6
 
7
7
  def initialize(enum_value)
@@ -15,7 +15,6 @@ module GlobalRegistryModels
15
15
  def to_s
16
16
  enum_value
17
17
  end
18
-
19
18
  end
20
19
  end
21
20
  end
@@ -4,7 +4,7 @@ module GlobalRegistryModels
4
4
  attribute :mcc_code, String
5
5
  attribute :name, String
6
6
  attribute :partner_md_total, Integer
7
-
7
+
8
8
  def self.identifying_attributes
9
9
  [:name, :mcc_code]
10
10
  end
@@ -0,0 +1,21 @@
1
+ module GlobalRegistryModels
2
+ module Entity
3
+ class IndigitousEventClassic < Base
4
+ attribute :city, String
5
+ attribute :date, String
6
+ attribute :full_attendees, Integer
7
+ attribute :day_pass_attendees, Integer
8
+ attribute :nations, Integer
9
+ attribute :organizations, Integer
10
+ attribute :projects, Integer
11
+
12
+ def self.identifying_attributes
13
+ [:city, :date, :full_attendees]
14
+ end
15
+
16
+ def to_s
17
+ "#{city} #{date}"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ module GlobalRegistryModels
2
+ module Entity
3
+ class IndigitousEventHash < Base
4
+ attribute :date, Date
5
+ attribute :city, String
6
+ attribute :country, String
7
+ attribute :days, Integer
8
+ attribute :local_lead, String
9
+ attribute :number_attended, Integer
10
+
11
+ def self.identifying_attributes
12
+ [:city, :date, :number_attended]
13
+ end
14
+
15
+ def to_s
16
+ "#{city} #{date.to_s}"
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module GlobalRegistryModels
2
+ module Entity
3
+ class IndigitousEventSession < Base
4
+ attribute :date, Date
5
+ attribute :title, String
6
+ attribute :webinar_id, String
7
+ attribute :language, String
8
+ attribute :registered, Integer
9
+ attribute :attended, Integer
10
+
11
+ def self.identifying_attributes
12
+ [:title, :date, :attended]
13
+ end
14
+
15
+ def to_s
16
+ title
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,22 @@
1
+ module GlobalRegistryModels
2
+ module Entity
3
+ class IndigitousEventSessionAttendee < Base
4
+ attribute :attended, Boolean
5
+ attribute :interest_rating, Integer
6
+ attribute :last_name, String
7
+ attribute :first_name, String
8
+ attribute :email_address, String
9
+ attribute :registration_date, Date
10
+ attribute :time_in_session, String
11
+ attribute :indigitous_event_session, Hash
12
+
13
+ def self.identifying_attributes
14
+ [:attended, :first_name, :last_name]
15
+ end
16
+
17
+ def to_s
18
+ "#{first_name} #{last_name}"
19
+ end
20
+ end
21
+ end
22
+ end
@@ -48,6 +48,7 @@ module GlobalRegistryModels
48
48
  attribute :url_twitter, String
49
49
  attribute :url_instagram, String
50
50
  attribute :zip, String
51
+ attribute :is_slm_secure, Boolean
51
52
 
52
53
  def self.identifying_attributes
53
54
  [:name, :country, :city, :min_code]
@@ -0,0 +1,28 @@
1
+ module GlobalRegistryModels
2
+ module Entity
3
+ class Person < Base
4
+ attribute :first_name, String
5
+ attribute :last_name, String
6
+ attribute :gsw_access, Boolean
7
+ attribute :key_guid, String
8
+
9
+ def initialize(params)
10
+ super
11
+ self.key_guid = params['authentication'] && params['authentication']['key_guid'] unless self.key_guid
12
+ end
13
+
14
+ def to_s
15
+ [first_name, last_name].compact.join(' ')
16
+ end
17
+
18
+ private
19
+
20
+ def self.specific_attributes_preparations(object, attributes)
21
+ attributes = super(object, attributes)
22
+ attributes['authentication'] = {'key_guid' => attributes['key_guid']} if attributes['key_guid']
23
+ attributes.delete('key_guid')
24
+ attributes
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,15 @@
1
+ module GlobalRegistryModels
2
+ module Entity
3
+ class Relationship < Base
4
+ attribute :relationship_type, String
5
+ attribute :entity_type, String
6
+ attribute :related_entity_id, String
7
+ attribute :relationship_entity_id, String
8
+
9
+ def self.identifying_attributes
10
+ [:name, :description, :is_editable, :field_type, :data_visibility, :parent_id]
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -17,11 +17,6 @@ module GlobalRegistryModels
17
17
  'entity_type' => attributes
18
18
  }
19
19
  end
20
-
21
- def self.has_meta
22
- true
23
- end
24
-
25
20
  end
26
21
  end
27
22
  end
@@ -18,10 +18,6 @@ module GlobalRegistryModels
18
18
  { 'measurement_type' => attributes }
19
19
  end
20
20
 
21
- def self.has_meta
22
- true
23
- end
24
-
25
21
  end
26
22
  end
27
23
  end
@@ -19,10 +19,6 @@ module GlobalRegistryModels
19
19
  { 'relationship_type' => attributes }
20
20
  end
21
21
 
22
- def self.has_meta
23
- true
24
- end
25
-
26
22
  end
27
23
  end
28
24
  end
@@ -16,10 +16,6 @@ module GlobalRegistryModels
16
16
  }
17
17
  end
18
18
 
19
- def self.has_meta
20
- true
21
- end
22
-
23
19
  end
24
20
  end
25
21
  end
@@ -16,11 +16,6 @@ module GlobalRegistryModels
16
16
  'system' => attributes
17
17
  }
18
18
  end
19
-
20
- def self.has_meta
21
- false
22
- end
23
-
24
19
  end
25
20
  end
26
21
  end
@@ -14,7 +14,7 @@ module GlobalRegistryModels
14
14
  validates_presence_of :name
15
15
 
16
16
  def self.identifying_attributes
17
- [:id, :name, :contact_name, :contact_email, :permalink, :trusted_ips]
17
+ [:id, :name, :contact_name, :contact_email, :permalink]
18
18
  end
19
19
 
20
20
  def self.identifying_root_attributes
@@ -25,6 +25,10 @@ module GlobalRegistryModels
25
25
  find 'deadbeef-dead-beef-dead-beefdeadbeef'
26
26
  end
27
27
 
28
+ def self.has_meta
29
+ false
30
+ end
31
+
28
32
  end
29
33
  end
30
34
  end
@@ -1,3 +1,3 @@
1
1
  module GlobalRegistryModels
2
- VERSION = '0.10.2'
2
+ VERSION = '0.11.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: global_registry_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sheldon Dueck
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-02-18 00:00:00.000000000 Z
12
+ date: 2016-03-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -147,6 +147,7 @@ files:
147
147
  - lib/global_registry/system_methods.rb
148
148
  - lib/global_registry_models.rb
149
149
  - lib/global_registry_models/.DS_Store
150
+ - lib/global_registry_models/api_operations/add_enum_value.rb
150
151
  - lib/global_registry_models/api_operations/delete.rb
151
152
  - lib/global_registry_models/api_operations/finders.rb
152
153
  - lib/global_registry_models/api_operations/persistence.rb
@@ -159,9 +160,15 @@ files:
159
160
  - lib/global_registry_models/entity/base.rb
160
161
  - lib/global_registry_models/entity/enum_value.rb
161
162
  - lib/global_registry_models/entity/global_mcc.rb
163
+ - lib/global_registry_models/entity/indigitous_event_classic.rb
164
+ - lib/global_registry_models/entity/indigitous_event_hash.rb
165
+ - lib/global_registry_models/entity/indigitous_event_session.rb
166
+ - lib/global_registry_models/entity/indigitous_event_session_attendee.rb
162
167
  - lib/global_registry_models/entity/iso_country.rb
163
168
  - lib/global_registry_models/entity/ministry.rb
164
169
  - lib/global_registry_models/entity/ministry_brand.rb
170
+ - lib/global_registry_models/entity/person.rb
171
+ - lib/global_registry_models/entity/relationship.rb
165
172
  - lib/global_registry_models/entity/target_area.rb
166
173
  - lib/global_registry_models/entity_type/.DS_Store
167
174
  - lib/global_registry_models/entity_type/base.rb
@@ -182,7 +189,7 @@ files:
182
189
  - lib/global_registry_models/system/base.rb
183
190
  - lib/global_registry_models/system/system.rb
184
191
  - lib/global_registry_models/version.rb
185
- homepage: https://github.com/sheldond/global_registry_models
192
+ homepage: https://github.com/CruGlobal/global_registry_models
186
193
  licenses:
187
194
  - MIT
188
195
  metadata: {}