Class: VitableConnect::Groups::Client
- Inherits:
-
Object
- Object
- VitableConnect::Groups::Client
- Defined in:
- lib/VitableConnect/groups/client.rb
Instance Method Summary collapse
-
#create(request_options: {}, **params) ⇒ VitableConnect::Types::GroupResponse
Creates a new group scoped to the authenticated organization.
-
#get(request_options: {}, **params) ⇒ VitableConnect::Types::GroupResponse
Retrieves a single group by its prefixed ID.
- #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ VitableConnect::Types::GroupListResponse
Returns a paginated list of groups belonging to the authenticated organization.
- #members ⇒ VitableConnect::Members::Client
-
#update(request_options: {}, **params) ⇒ VitableConnect::Types::GroupResponse
Partially updates a group's name or external reference ID.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/VitableConnect/groups/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#create(request_options: {}, **params) ⇒ VitableConnect::Types::GroupResponse
Creates a new group scoped to the authenticated organization.
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/VitableConnect/groups/client.rb', line 85 def create(request_options: {}, **params) params = VitableConnect::Internal::Types::Utils.normalize_keys(params) request = VitableConnect::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "v1/groups", body: VitableConnect::Groups::Types::CreateGroupRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise VitableConnect::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) VitableConnect::Types::GroupResponse.load(response.body) else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#get(request_options: {}, **params) ⇒ VitableConnect::Types::GroupResponse
Retrieves a single group by its prefixed ID. Returns 404 if the group does not belong to the authenticated organization.
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/VitableConnect/groups/client.rb', line 124 def get(request_options: {}, **params) params = VitableConnect::Internal::Types::Utils.normalize_keys(params) request = VitableConnect::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v1/groups/#{URI.encode_uri_component(params[:group_id].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise VitableConnect::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) VitableConnect::Types::GroupResponse.load(response.body) else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list(request_options: {}, **params) ⇒ VitableConnect::Types::GroupListResponse
Returns a paginated list of groups belonging to the authenticated organization.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/VitableConnect/groups/client.rb', line 32 def list(request_options: {}, **params) params = VitableConnect::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["limit"] = params[:limit] if params.key?(:limit) query_params["page"] = params[:page] if params.key?(:page) VitableConnect::Internal::OffsetItemIterator.new( initial_page: query_params["page"], item_field: :data, has_next_field: nil, step: false ) do |next_page| query_params["page"] = next_page request = VitableConnect::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v1/groups", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise VitableConnect::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) parsed_response = VitableConnect::Types::GroupListResponse.load(response.body) [parsed_response, response] else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end end |
#members ⇒ VitableConnect::Members::Client
194 195 196 |
# File 'lib/VitableConnect/groups/client.rb', line 194 def members @members ||= VitableConnect::Groups::Members::Client.new(client: @client) end |
#update(request_options: {}, **params) ⇒ VitableConnect::Types::GroupResponse
Partially updates a group's name or external reference ID. Returns 404 if the group does not belong to the authenticated organization.
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/VitableConnect/groups/client.rb', line 166 def update(request_options: {}, **params) params = VitableConnect::Internal::Types::Utils.normalize_keys(params) request_data = VitableConnect::Groups::Types::PatchedUpdateGroupRequest.new(params).to_h non_body_param_names = %w[group_id] body = request_data.except(*non_body_param_names) request = VitableConnect::Internal::JSON::Request.new( base_url: [:base_url], method: "PATCH", path: "v1/groups/#{URI.encode_uri_component(params[:group_id].to_s)}", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise VitableConnect::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) VitableConnect::Types::GroupResponse.load(response.body) else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |