rock_rms 8.4.0 → 8.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99595984bdaa0f88e5c67214510f387e8140da99eb8c19838e157e34fe8cbde5
4
- data.tar.gz: c52d968559001749f7793259241bc15b7417f8ebb2173d0b057c5c5e0dabfb72
3
+ metadata.gz: 19e99238273531c1c5f3be2e95cb7d10d3b5c025043a11157e10ae7f01b984a5
4
+ data.tar.gz: 4d5e4758dac63b7174305d2ed3d576b60e298c30d4f5b07f7a90b5bb2d76841a
5
5
  SHA512:
6
- metadata.gz: 2baef9f7cf2861dbb34d70e978d0a479ca064c4bd95f2408bfbf125e84f3472bfb44991f2f607efd920e9a752e31bf32e36489b1b9beb9c7aa040d97365c7af7
7
- data.tar.gz: 1ced4bd65ca1ed1669f8a9a64968a889ab04b576c8c4df03e8773d53f04bcbf762035e1bf2b77259689c448dbd5ebbf2cd66be42954da3ad7f818d441fd147ee
6
+ metadata.gz: 60ae0f673bad03a9a86eab352448a176b7ad8b48fd63c7d48a4571f7fdd14fda6b402ca06e0de9bd8c97960877b9bafab570f2bcd02b081e6205c81ec84d0b15
7
+ data.tar.gz: 3cec7a048167ec96a7fa20033a28c768056eca3ec940ec8ef5e491fd1852cba804abbf93004a39bef26ad418e7f18d7321c7befe72bbfe6028b8c16a699dae16
@@ -15,10 +15,26 @@ module RockRMS
15
15
  )
16
16
  end
17
17
 
18
+ def list_group_members(options = {})
19
+ Response::GroupMember.format(
20
+ get(group_member_path, options)
21
+ )
22
+ end
23
+
18
24
  def delete_group_member(id)
19
25
  delete(group_member_path(id))
20
26
  end
21
27
 
28
+ def create_known_relationship(person_id:, related_person_id:, relationship_role_id:)
29
+ url_params = {
30
+ personId: person_id,
31
+ relatedPersonId: related_person_id,
32
+ relationshipRoleId: relationship_role_id
33
+ }
34
+
35
+ post("GroupMembers/KnownRelationship?#{URI.encode_www_form(url_params)}")
36
+ end
37
+
22
38
  private
23
39
 
24
40
  def group_member_path(id = nil)
@@ -0,0 +1,22 @@
1
+ module RockRMS
2
+ module Response
3
+ class GroupMember < Base
4
+ MAP = {
5
+ person: 'Person',
6
+ group_id: 'GroupId',
7
+ }.freeze
8
+
9
+ def format_single(data)
10
+ response = to_h(MAP, data)
11
+ response[:person] = format_person(response[:person])
12
+ response
13
+ end
14
+
15
+ def format_person(res)
16
+ return res if res.nil?
17
+ Person.format(res)
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -2,6 +2,7 @@ module RockRMS
2
2
  module Response
3
3
  class Person < Base
4
4
  MAP = {
5
+ id: 'Id',
5
6
  name: 'FullName',
6
7
  email: 'Email',
7
8
  first_name: 'FirstName',
@@ -1,3 +1,3 @@
1
1
  module RockRMS
2
- VERSION = '8.4.0'.freeze
2
+ VERSION = '8.5.0'.freeze
3
3
  end
@@ -3,6 +3,18 @@ require 'spec_helper'
3
3
  RSpec.describe RockRMS::Client::GroupMember, type: :model do
4
4
  include_context 'resource specs'
5
5
 
6
+ describe '#list_group_members' do
7
+ it 'returns a array' do
8
+ resource = client.list_group_members
9
+
10
+ expect(resource).to be_a(Array)
11
+ expect(resource.first).to be_a(Hash)
12
+ expect(resource.first).to include(:group_id)
13
+ expect(resource.first[:person]).to include(:id)
14
+ expect(resource.first[:person]).to include(:email)
15
+ end
16
+ end
17
+
6
18
  describe '#create_group_member' do
7
19
  context 'arguments' do
8
20
  it 'require `group_id`' do
@@ -63,4 +75,43 @@ RSpec.describe RockRMS::Client::GroupMember, type: :model do
63
75
  client.delete_group_member(123)
64
76
  end
65
77
  end
78
+
79
+ describe '#create_known_relationship' do
80
+ context 'arguments' do
81
+ it 'require `person_id`' do
82
+ expect { client.create_known_relationship }
83
+ .to raise_error(ArgumentError, /person_id/)
84
+ end
85
+
86
+ it 'require `related_person_id`' do
87
+ expect { client.create_known_relationship }
88
+ .to raise_error(ArgumentError, /related_person_id/)
89
+ end
90
+
91
+ it 'require `relationship_role_id`' do
92
+ expect { client.create_known_relationship }
93
+ .to raise_error(ArgumentError, /relationship_role_id/)
94
+ end
95
+
96
+ end
97
+
98
+ subject(:resource) do
99
+ client.create_known_relationship(
100
+ person_id: 123,
101
+ relationship_role_id: 1,
102
+ related_person_id: 456,
103
+ )
104
+ end
105
+
106
+ it 'returns integer' do
107
+ expect(resource).to be_a(Integer)
108
+ end
109
+
110
+ it 'passes options' do
111
+ expect(client).to receive(:post)
112
+ .with('GroupMembers/KnownRelationship?personId=123&relatedPersonId=456&relationshipRoleId=1').and_call_original
113
+ resource
114
+ end
115
+ end
116
+
66
117
  end
@@ -0,0 +1,186 @@
1
+ [
2
+ {
3
+ "Person": {
4
+ "IsSystem": true,
5
+ "RecordTypeValueId": 1,
6
+ "RecordStatusValueId": 3,
7
+ "RecordStatusLastModifiedDateTime": null,
8
+ "RecordStatusReasonValueId": null,
9
+ "ConnectionStatusValueId": 66,
10
+ "ReviewReasonValueId": null,
11
+ "IsDeceased": false,
12
+ "TitleValueId": null,
13
+ "FirstName": "Alisha",
14
+ "NickName": "Alisha",
15
+ "MiddleName": "",
16
+ "LastName": "Admin",
17
+ "SuffixValueId": null,
18
+ "PhotoId": 417,
19
+ "BirthDay": 11,
20
+ "BirthMonth": 4,
21
+ "BirthYear": 2006,
22
+ "Gender": 0,
23
+ "MaritalStatusValueId": null,
24
+ "AnniversaryDate": null,
25
+ "GraduationYear": null,
26
+ "GivingId": "P1",
27
+ "GivingLeaderId": 1,
28
+ "Email": "admin@organization.com",
29
+ "IsEmailActive": false,
30
+ "EmailNote": null,
31
+ "EmailPreference": 0,
32
+ "CommunicationPreference": 1,
33
+ "ReviewReasonNote": null,
34
+ "InactiveReasonNote": "",
35
+ "SystemNote": null,
36
+ "ViewedCount": null,
37
+ "TopSignalColor": null,
38
+ "TopSignalIconCssClass": null,
39
+ "TopSignalId": null,
40
+ "AgeClassification": 1,
41
+ "PrimaryFamilyId": 23,
42
+ "PrimaryCampusId": 1,
43
+ "IsLockedAsChild": false,
44
+ "DeceasedDate": null,
45
+ "ContributionFinancialAccountId": null,
46
+ "AccountProtectionProfile": 3,
47
+ "PreferredLanguageValueId": null,
48
+ "ReminderCount": null,
49
+ "RaceValueId": null,
50
+ "EthnicityValueId": null,
51
+ "DaysUntilBirthday": 0,
52
+ "GivingGroupId": null,
53
+ "BirthDate": "2006-04-11T00:00:00",
54
+ "DaysUntilAnniversary": null,
55
+ "CreatedDateTime": null,
56
+ "ModifiedDateTime": "2023-04-11T14:08:24.297",
57
+ "CreatedByPersonAliasId": null,
58
+ "ModifiedByPersonAliasId": 10,
59
+ "Id": 1,
60
+ "Guid": "ad28da19-4af1-408f-9090-2672f8376f27",
61
+ "ForeignId": null,
62
+ "ForeignGuid": null,
63
+ "ForeignKey": null
64
+ },
65
+ "IsSystem": false,
66
+ "GroupId": 2,
67
+ "GroupTypeId": 1,
68
+ "PersonId": 1,
69
+ "GroupRoleId": 1,
70
+ "Note": null,
71
+ "GroupMemberStatus": 1,
72
+ "GuestCount": null,
73
+ "DateTimeAdded": null,
74
+ "IsNotified": false,
75
+ "GroupOrder": null,
76
+ "InactiveDateTime": null,
77
+ "IsArchived": false,
78
+ "ArchivedDateTime": null,
79
+ "ArchivedByPersonAliasId": null,
80
+ "ScheduleTemplateId": null,
81
+ "ScheduleStartDate": null,
82
+ "ScheduleReminderEmailOffsetDays": null,
83
+ "CommunicationPreference": 0,
84
+ "CreatedDateTime": null,
85
+ "ModifiedDateTime": null,
86
+ "CreatedByPersonAliasId": null,
87
+ "ModifiedByPersonAliasId": null,
88
+ "Id": 3,
89
+ "Guid": "6f23caca-6749-4454-85df-5a55251b644c",
90
+ "ForeignId": null,
91
+ "ForeignGuid": null,
92
+ "ForeignKey": null
93
+ },
94
+ {
95
+ "Person": {
96
+ "IsSystem": true,
97
+ "RecordTypeValueId": 1,
98
+ "RecordStatusValueId": 3,
99
+ "RecordStatusLastModifiedDateTime": null,
100
+ "RecordStatusReasonValueId": null,
101
+ "ConnectionStatusValueId": 66,
102
+ "ReviewReasonValueId": null,
103
+ "IsDeceased": false,
104
+ "TitleValueId": null,
105
+ "FirstName": "Alisha",
106
+ "NickName": "Alisha",
107
+ "MiddleName": "",
108
+ "LastName": "Admin",
109
+ "SuffixValueId": null,
110
+ "PhotoId": 417,
111
+ "BirthDay": 11,
112
+ "BirthMonth": 4,
113
+ "BirthYear": 2006,
114
+ "Gender": 0,
115
+ "MaritalStatusValueId": null,
116
+ "AnniversaryDate": null,
117
+ "GraduationYear": null,
118
+ "GivingId": "P1",
119
+ "GivingLeaderId": 1,
120
+ "Email": "admin@organization.com",
121
+ "IsEmailActive": false,
122
+ "EmailNote": null,
123
+ "EmailPreference": 0,
124
+ "CommunicationPreference": 1,
125
+ "ReviewReasonNote": null,
126
+ "InactiveReasonNote": "",
127
+ "SystemNote": null,
128
+ "ViewedCount": null,
129
+ "TopSignalColor": null,
130
+ "TopSignalIconCssClass": null,
131
+ "TopSignalId": null,
132
+ "AgeClassification": 1,
133
+ "PrimaryFamilyId": 23,
134
+ "PrimaryCampusId": 1,
135
+ "IsLockedAsChild": false,
136
+ "DeceasedDate": null,
137
+ "ContributionFinancialAccountId": null,
138
+ "AccountProtectionProfile": 3,
139
+ "PreferredLanguageValueId": null,
140
+ "ReminderCount": null,
141
+ "RaceValueId": null,
142
+ "EthnicityValueId": null,
143
+ "DaysUntilBirthday": 0,
144
+ "GivingGroupId": null,
145
+ "BirthDate": "2006-04-11T00:00:00",
146
+ "DaysUntilAnniversary": null,
147
+ "CreatedDateTime": null,
148
+ "ModifiedDateTime": "2023-04-11T14:08:24.297",
149
+ "CreatedByPersonAliasId": null,
150
+ "ModifiedByPersonAliasId": 10,
151
+ "Id": 1,
152
+ "Guid": "ad28da19-4af1-408f-9090-2672f8376f27",
153
+ "ForeignId": null,
154
+ "ForeignGuid": null,
155
+ "ForeignKey": null
156
+ },
157
+ "IsSystem": false,
158
+ "GroupId": 21,
159
+ "GroupTypeId": 11,
160
+ "PersonId": 1,
161
+ "GroupRoleId": 5,
162
+ "Note": null,
163
+ "GroupMemberStatus": 1,
164
+ "GuestCount": null,
165
+ "DateTimeAdded": null,
166
+ "IsNotified": false,
167
+ "GroupOrder": null,
168
+ "InactiveDateTime": null,
169
+ "IsArchived": false,
170
+ "ArchivedDateTime": null,
171
+ "ArchivedByPersonAliasId": null,
172
+ "ScheduleTemplateId": null,
173
+ "ScheduleStartDate": null,
174
+ "ScheduleReminderEmailOffsetDays": null,
175
+ "CommunicationPreference": 0,
176
+ "CreatedDateTime": null,
177
+ "ModifiedDateTime": null,
178
+ "CreatedByPersonAliasId": null,
179
+ "ModifiedByPersonAliasId": null,
180
+ "Id": 4,
181
+ "Guid": "cf41a302-d249-44d5-85b2-aeee05c96c8a",
182
+ "ForeignId": null,
183
+ "ForeignGuid": null,
184
+ "ForeignKey": null
185
+ }
186
+ ]
@@ -31,6 +31,7 @@ class RockMock < Sinatra::Base
31
31
  families: 'Groups/GetFamilies/:id',
32
32
  gateways: 'FinancialGateways',
33
33
  group: 'Groups/:id',
34
+ group_members: 'GroupMembers',
34
35
  groups: 'Groups',
35
36
  payment_details: 'FinancialPaymentDetails',
36
37
  people_search: 'People/Search',
@@ -58,6 +59,7 @@ class RockMock < Sinatra::Base
58
59
  create_attribute: 'Attributes',
59
60
  create_attribute_value: 'AttributeValues',
60
61
  create_group_member: 'GroupMembers',
62
+ create_known_relationship: 'GroupMembers/KnownRelationship',
61
63
  create_transaction: 'FinancialTransactions',
62
64
  create_payment_detail: 'FinancialPaymentDetails',
63
65
  create_phone_number: 'PhoneNumbers',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rock_rms
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.4.0
4
+ version: 8.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Brooks
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-06 00:00:00.000000000 Z
11
+ date: 2023-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -249,6 +249,7 @@ files:
249
249
  - lib/rock_rms/response/gateway.rb
250
250
  - lib/rock_rms/response/group.rb
251
251
  - lib/rock_rms/response/group_location.rb
252
+ - lib/rock_rms/response/group_member.rb
252
253
  - lib/rock_rms/response/history.rb
253
254
  - lib/rock_rms/response/location.rb
254
255
  - lib/rock_rms/response/page.rb
@@ -323,6 +324,7 @@ files:
323
324
  - spec/support/fixtures/create_attribute_value.json
324
325
  - spec/support/fixtures/create_batch.json
325
326
  - spec/support/fixtures/create_group_member.json
327
+ - spec/support/fixtures/create_known_relationship.json
326
328
  - spec/support/fixtures/create_payment_detail.json
327
329
  - spec/support/fixtures/create_phone_number.json
328
330
  - spec/support/fixtures/create_recurring_donation.json
@@ -337,6 +339,7 @@ files:
337
339
  - spec/support/fixtures/gateways.json
338
340
  - spec/support/fixtures/group.json
339
341
  - spec/support/fixtures/group_locations.json
342
+ - spec/support/fixtures/group_members.json
340
343
  - spec/support/fixtures/groups.json
341
344
  - spec/support/fixtures/groups_with_campus.json
342
345
  - spec/support/fixtures/groups_with_locations.json