module WolfCore::Integrations::ClientApiOperations
def create_client(wolf_token:, client:, tenant:, wolf_platform_url:)
def create_client(wolf_token:, client:, tenant:, wolf_platform_url:) parsed_http_post( headers: { "Authorization" => "Bearer #{wolf_token}" }, query: { tenant: tenant }, url: "#{wolf_platform_url}/api/v2/companies", body: client ) end
def create_client!(wolf_token:, client:, tenant:, wolf_platform_url:, error_message:, error_data: nil)
def create_client!(wolf_token:, client:, tenant:, wolf_platform_url:, error_message:, error_data: nil) error_data ||= {} safe_http_post( headers: { "Authorization" => "Bearer #{wolf_token}" }, query: { tenant: tenant }, url: "#{wolf_platform_url}/api/v2/companies", body: client, error_message: error_message, error_data: { client: client }.merge(error_data) ) end
def fetch_client(wolf_token:, client_id:, tenant:, wolf_platform_url:)
def fetch_client(wolf_token:, client_id:, tenant:, wolf_platform_url:) parsed_http_get( headers: { "Authorization" => "Bearer #{wolf_token}" }, url: "#{wolf_platform_url}/api/v2/companies/#{client_id}", query: { tenant: tenant } ) end
def fetch_client!(wolf_token:, client_id:, tenant:, wolf_platform_url:, error_message:, error_data: nil)
def fetch_client!(wolf_token:, client_id:, tenant:, wolf_platform_url:, error_message:, error_data: nil) error_data ||= {} response = safe_http_get( headers: { "Authorization" => "Bearer #{wolf_token}" }, url: "#{wolf_platform_url}/api/v2/companies/#{client_id}", query: { tenant: tenant }, error_message: error_message, error_data: { client_id: client_id }.merge(error_data) ) response_body = response.body response_body.dig("data", "table", "company") end
def fetch_client_custom_value!(wolf_token:, tenant:, wolf_platform_url:, client_id:, id: nil, custom_requirement_id: nil, query: nil, error_data: nil)
def fetch_client_custom_value!(wolf_token:, tenant:, wolf_platform_url:, client_id:, id: nil, custom_requirement_id: nil, query: nil, error_data: nil) id || custom_requirement_id || raise_service_error({ message: "custom_requirement_id or id must be provided" }) query = { user_category: 'Company', user_code: client_id, id: id, custom_requirement_friendly_id: custom_requirement_id }.compact.merge(query || {}) fetch_custom_values!( wolf_token: wolf_token, tenant: tenant, wolf_platform_url: wolf_platform_url, error_message: "Unable to fetch custom values for #{client_id}", error_data: query.merge(error_data || {}), query: query ).first end
def update_client(wolf_token:, client:, tenant:, wolf_platform_url:, client_id:)
def update_client(wolf_token:, client:, tenant:, wolf_platform_url:, client_id:) parsed_http_put( headers: { "Authorization" => "Bearer #{wolf_token}" }, query: { tenant: tenant }, url: "#{wolf_platform_url}/api/v2/companies/#{client_id}", body: client ) end
def update_client!(wolf_token:, client:, tenant:, wolf_platform_url:, error_message:, client_id:, error_data: nil)
def update_client!(wolf_token:, client:, tenant:, wolf_platform_url:, error_message:, client_id:, error_data: nil) error_data ||= {} safe_http_put( headers: { "Authorization" => "Bearer #{wolf_token}" }, query: { tenant: tenant }, url: "#{wolf_platform_url}/api/v2/companies/#{client_id}", body: client, error_message: error_message, error_data: { client_id: client_id, client: client }.merge(error_data) ) end