module WolfCore
module Integrations
module JobseekerApiOperations
include WolfCore::HttpOperations
def fetch_jobseeker_by_user_id!(wolf_token:, tenant:, wolf_platform_url:, user_id:)
jobseekers = fetch_jobseekers!(
wolf_token: wolf_token,
tenant: tenant,
wolf_platform_url: wolf_platform_url,
query: { user_id: user_id }
)
jobseekers.first
end
def fetch_jobseekers!(wolf_token:, tenant:, wolf_platform_url:, error_message:, query: nil, error_data: nil)
response = fetch_jobseekers(
wolf_token: wolf_token,
tenant: tenant,
wolf_platform_url: wolf_platform_url,
query: query
)
error_data ||= {}
validate_http_response(response: response, message: error_message, error_data: error_data.merge(query: query))
response.body.dig("data", "table", "jobseeker")
end
def fetch_jobseekers(wolf_token:, tenant:, wolf_platform_url:, query: nil)
query ||= {}
parsed_http_get(
headers: { "Authorization" => "Bearer #{wolf_token}" },
url: "#{wolf_platform_url}/api/v2/jobseekers",
query: query.merge(tenant: tenant)
)
end
def fetch_jobseeker!(wolf_token:, jobseeker_id:, tenant:, wolf_platform_url:, error_message:, query: nil, error_data: nil)
response = fetch_jobseeker(
wolf_token: wolf_token,
jobseeker_id: jobseeker_id,
tenant: tenant,
wolf_platform_url: wolf_platform_url,
query: query
)
error_data ||= {}
validate_http_response(response: response, message: error_message, error_data: error_data.merge(jobseeker_id: jobseeker_id, query: query))
response.body.dig("data", "table", "jobseeker")
end
def fetch_jobseeker(wolf_token:, jobseeker_id:, tenant:, wolf_platform_url:, query: nil)
query ||= {}
parsed_http_get(
headers: { "Authorization" => "Bearer #{wolf_token}" },
url: "#{wolf_platform_url}/api/v2/jobseekers/#{jobseeker_id}",
query: query.merge(tenant: tenant)
)
end
def create_jobseeker!(wolf_token:, jobseeker:, tenant:, wolf_platform_url:, error_message:, error_data: nil)
response = create_jobseeker(
wolf_token: wolf_token,
jobseeker: jobseeker,
tenant: tenant,
wolf_platform_url: wolf_platform_url
)
error_data ||= {}
validate_http_response(response: response, message: error_message, error_data: error_data.merge(jobseeker: jobseeker))
response
end
def create_jobseeker(wolf_token:, jobseeker:, tenant:, wolf_platform_url:)
parsed_http_post(
headers: { "Authorization" => "Bearer #{wolf_token}" },
query: { tenant: tenant },
url: "#{wolf_platform_url}/api/v2/jobseekers",
body: jobseeker
)
end
def update_jobseeker!(wolf_token:, jobseeker:, tenant:, wolf_platform_url:, error_message:, jobseeker_id:, error_data: nil)
response = update_jobseeker(
wolf_token: wolf_token,
jobseeker: jobseeker,
tenant: tenant,
wolf_platform_url: wolf_platform_url,
jobseeker_id: jobseeker_id
)
error_data ||= {}
validate_http_response(response: response, message: error_message, error_data: error_data.merge(jobseeker_id: jobseeker_id, jobseeker: jobseeker))
response
end
def update_jobseeker(wolf_token:, jobseeker:, tenant:, wolf_platform_url:, jobseeker_id:)
parsed_http_put(
headers: { "Authorization" => "Bearer #{wolf_token}" },
query: { tenant: tenant },
url: "#{wolf_platform_url}/api/v2/jobseekers/#{jobseeker_id}",
body: jobseeker
)
end
end
end
end