lib/oneaccess/api/v3_0/providers.rb in oneaccess-0.4.5 vs lib/oneaccess/api/v3_0/providers.rb in oneaccess-0.5.0
- old
+ new
@@ -1,8 +1,9 @@
# frozen_string_literal: true
require_relative "../../response/inducement_response"
+require_relative "../../response/providers_users_details_response"
module ONEAccess
module API
module V3_0
class Providers < Base
@@ -19,9 +20,55 @@
}.reject { |_, v| v.nil? }
resp = send_post("inducements", inducement: params)
Response::InducementResponse.from_json(resp.body)
+ end
+
+ def users_details( # rubocop:disable Metrics/MethodLength
+ buy_side_org_id:,
+ provider_id:,
+ contract_status_id: nil,
+ user_id: nil,
+ user_email: nil,
+ user_reverse_entitlement_status: nil,
+ vendor_id: nil,
+ reverse_entitlement_status: nil
+ )
+
+ provider_id = comma_separated_values(provider_id)
+
+ params = {
+ buysideorgid: buy_side_org_id,
+ contractstatusid: contract_status_id,
+ userid: user_id,
+ useremail: user_email,
+ userreverseentitlementstatus: user_reverse_entitlement_status,
+ vendorid: vendor_id,
+ reverseentitlementstatus: reverse_entitlement_status
+ }.reject { |_, value| value.nil? }
+
+ resp = send_get("GetProviderUserDetails?providerid=#{provider_id}", params)
+
+ Response::ProvidersUsersDetailsResponse.from_json(resp.body)
+ end
+
+ private
+
+ # We need to diffently handle comma separated values since the RestClient,
+ # gem URI encode the commas and this is not supported by the API.
+ #
+ # Examples:
+ # [1,2$,3] => '1,2%24,3'
+ # '1,2$,3' => '1,2%24,3'
+ def comma_separated_values(values)
+ values = values.split(",") if values.is_a?(String)
+ if values.is_a?(Array)
+ values = values.map do |value|
+ URI.encode_www_form_component(value)
+ end.join(",")
+ end
+ values
end
end
end
end
end