Class: VitableConnect::Groups::Members::Sync::Client
- Inherits:
-
Object
- Object
- VitableConnect::Groups::Members::Sync::Client
- Defined in:
- lib/VitableConnect/groups/members/sync/client.rb
Instance Method Summary collapse
-
#get(request_options: {}, **params) ⇒ VitableConnect::Types::GroupMemberSyncRequestDetailResponse
Retrieves a previously-submitted group member sync request by its
grpmsr_ID. - #initialize(client:) ⇒ void constructor
-
#submit(request_options: {}, **params) ⇒ VitableConnect::Types::GroupMemberSyncDetailResponse
Submits a member sync payload for the specified group.
Constructor Details
#initialize(client:) ⇒ void
11 12 13 |
# File 'lib/VitableConnect/groups/members/sync/client.rb', line 11 def initialize(client:) @client = client end |
Instance Method Details
#get(request_options: {}, **params) ⇒ VitableConnect::Types::GroupMemberSyncRequestDetailResponse
Retrieves a previously-submitted group member sync request by its grpmsr_ ID. Returns the acceptance
timestamp, completion timestamp (if processing has finished), and the per-member results once available.
While processing is in flight, completed_at and results are null.
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/VitableConnect/groups/members/sync/client.rb', line 97 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)}/members/sync/#{URI.encode_uri_component(params[:request_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::GroupMemberSyncRequestDetailResponse.load(response.body) else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#submit(request_options: {}, **params) ⇒ VitableConnect::Types::GroupMemberSyncDetailResponse
Submits a member sync payload for the specified group. Members in the payload will be queued for processing asynchronously. Returns HTTP 202 with the batch ID and acceptance timestamp.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/VitableConnect/groups/members/sync/client.rb', line 49 def submit(request_options: {}, **params) params = VitableConnect::Internal::Types::Utils.normalize_keys(params) request_data = VitableConnect::Groups::Members::Sync::Types::GroupMemberSyncRequest.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: "POST", path: "v1/groups/#{URI.encode_uri_component(params[:group_id].to_s)}/members/sync", 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::GroupMemberSyncDetailResponse.load(response.body) else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |