sfrest 0.0.24 → 0.0.25

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: 9ee79c665b3444d5bd753652f9244ae3920cd8f9240cc9a628b883139ea18b40
4
- data.tar.gz: 67a0c06a31049777e955259513c725f57a339af862f7dbecdec5146a7ac09ab1
3
+ metadata.gz: 454094d1aed9e441d633a8f69733518952f014a1aefa8246f5bf00cc659d4a34
4
+ data.tar.gz: 0de73fa9d7a32b350d78237e95b90630544952695b189d74576f6ef2c5f52107
5
5
  SHA512:
6
- metadata.gz: 027e57b3b115f1af636acc5691a6bc68c7a44b666255104689c7b58b38a2cc99340bdd59b019263dcb36f56199fbcf4c69e67d7762c834adfc84c42060d4afc3
7
- data.tar.gz: '0817a732028ef2d5fa907b3cc64b1babb0d9ea38b5a896277a167306c048f59898ec8714c39cd04e47d397e90233c319b911119a3e259985639d36533bbe53b8'
6
+ metadata.gz: 7bbc97856c5e30f44327d8c1cda39ed695e015b67afe5fcce668100c04b0ac9adb75f2a5c7254c978341d03342e298df039c4d2d4446cbebaa377e993b9981d4
7
+ data.tar.gz: 7dd69e1115edda16ec71d2a0954fc807364e4359c7f834a6c0cf8aae1709f41f31e24c57ba0f103a8dccf669c4fa51730fe6f82a07ea501636dc9528d354d43a
@@ -77,16 +77,18 @@ module SFRest
77
77
 
78
78
  # http request via delete
79
79
  # @param [string] uri
80
+ # @param [string] payload - This string will be supplied in the body of the request, similar to POST.
80
81
  # @return [Object] ruby representation of the json response
81
82
  # if the reponse body does not parse, raises
82
83
  # a SFRest::InvalidResponse
83
- def delete(uri)
84
+ def delete(uri, payload = '')
84
85
  headers = { 'Content-Type' => 'application/json' }
85
86
  res = Excon.delete(@base_url + uri.to_s,
86
87
  headers: headers,
87
88
  user: username,
88
89
  password: password,
89
- ssl_verify_peer: false)
90
+ ssl_verify_peer: false,
91
+ body: payload)
90
92
  api_response res
91
93
  end
92
94
 
data/lib/sfrest/group.rb CHANGED
@@ -15,6 +15,22 @@ module SFRest
15
15
  @conn.post(current_path, payload)
16
16
  end
17
17
 
18
+ # Deletes the group with the specified id
19
+ # @param [Integer] group_id Id of the group to fetch
20
+ def delete_group(group_id)
21
+ current_path = '/api/v1/groups/' << group_id.to_s
22
+ @conn.delete(current_path)
23
+ end
24
+
25
+ # Renames existing group.
26
+ # @param [Integer] group_id Id of the group to rename.
27
+ # @param [String] groupname New name for the group.
28
+ def rename_group(group_id, groupname)
29
+ current_path = '/api/v1/groups/' + group_id.to_s + '/update'
30
+ payload = { 'group_name' => groupname }.to_json
31
+ @conn.put(current_path, payload)
32
+ end
33
+
18
34
  # Gets a site group with a specified group id.
19
35
  # @param [Integer] group_id Id of the group to fetch
20
36
  # @return [Hash] group object from the SF Api
@@ -23,6 +39,74 @@ module SFRest
23
39
  @conn.get(current_path)
24
40
  end
25
41
 
42
+ # Gets all users that are members of this group
43
+ # @param [Integer] group_id Id of the group to fetch
44
+ # @return [Hash] {'count' => count, 'members' => Hash }
45
+ def get_members(group_id = 0)
46
+ current_path = '/api/v1/groups/' + group_id.to_s + '/members'
47
+ @conn.get(current_path)
48
+ end
49
+
50
+ # Add users to this group
51
+ # @param [Integer] group_id Id of the group
52
+ # @param [Array] uids of the users that need to be added
53
+ # @return [Hash] {'count' => count, 'uids_added' => Hash }
54
+ def add_members(group_id, uids)
55
+ current_path = '/api/v1/groups/' + group_id.to_s + '/members'
56
+ payload = { 'uids' => uids.map(&:to_i) }.to_json
57
+ @conn.post(current_path, payload)
58
+ end
59
+
60
+ # Remove members from this group
61
+ # @param [Integer] group_id Id of the group
62
+ # @param [Array] uids of the users that need to be removed
63
+ # @return [Hash] {'group_id' => 123, 'uids_removed' => [1, 2, ...]}
64
+ def remove_members(group_id, uids)
65
+ current_path = '/api/v1/groups/' + group_id.to_s + '/members'
66
+ payload = { 'uids' => uids.map(&:to_i) }.to_json
67
+ @conn.delete(current_path, payload)
68
+ end
69
+
70
+ # Promote users to group admins
71
+ # @param [Integer] group_id Id of the group
72
+ # @param [Array] uids of the users that need to be promoted
73
+ # @return [Hash] {'count' => count, 'uids_promoted' => [1, 2, ...] }
74
+ def promote_to_admins(group_id, uids)
75
+ current_path = '/api/v1/groups/' + group_id.to_s + '/admins'
76
+ payload = { 'uids' => uids.map(&:to_i) }.to_json
77
+ @conn.post(current_path, payload)
78
+ end
79
+
80
+ # Demote users from group admins
81
+ # @param [Integer] group_id Id of the group
82
+ # @param [Array] uids of the users that need to be demoted
83
+ # @return [Hash] {'count' => count, 'uids_demoted' => Hash }
84
+ def demote_from_admins(group_id, uids)
85
+ current_path = '/api/v1/groups/' + group_id.to_s + '/admins'
86
+ payload = { 'uids' => uids.map(&:to_i) }.to_json
87
+ @conn.delete(current_path, payload)
88
+ end
89
+
90
+ # Add sites to this group
91
+ # @param [Integer] group_id Id of the group
92
+ # @param [Array] site_ids Ids of the sites that need to be added
93
+ # @return [Hash] {'group_id' => 123, 'site_ids_added' => [1, 2, ...]}
94
+ def add_sites(group_id, site_ids)
95
+ current_path = '/api/v1/groups/' + group_id.to_s + '/sites'
96
+ payload = { 'site_ids' => site_ids }.to_json
97
+ @conn.post(current_path, payload)
98
+ end
99
+
100
+ # Remove sites from this group
101
+ # @param [Integer] group_id Id of the group
102
+ # @param [Array] site_ids Ids of the sites that need to be removed.
103
+ # @return [Hash] {'group_id' => 123, 'site_ids_removed' => [1, 2, ...], 'site_ids_failed' => [3, 4, ...]}
104
+ def remove_sites(group_id, site_ids)
105
+ current_path = '/api/v1/groups/' + group_id.to_s + '/sites'
106
+ payload = { 'site_ids' => site_ids }.to_json
107
+ @conn.delete(current_path, payload)
108
+ end
109
+
26
110
  # Gets a list of all site groups.
27
111
  # @return [Hash] all the groups on the factory plus a count
28
112
  # {'count' => count, 'groups' => Hash }
@@ -1,4 +1,4 @@
1
1
  module SFRest
2
2
  # Just tracks the version of sfrest.
3
- VERSION = '0.0.24'.freeze
3
+ VERSION = '0.0.25'.freeze
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sfrest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.24
4
+ version: 0.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - ACSF Engineering
@@ -140,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
140
  - !ruby/object:Gem::Version
141
141
  version: '0'
142
142
  requirements: []
143
- rubygems_version: 3.0.2
143
+ rubygems_version: 3.0.3
144
144
  signing_key:
145
145
  specification_version: 4
146
146
  summary: Acquia Site Factory Rest API.