
class ApiLink < MemoryRecord
attr_accessor :talentspace
attr_accessor :email
attr_accessor :profile_url
attr_accessor :job_url
attr_accessor :language
attr_accessor :utm_id
attr_accessor :utm_source
attr_accessor :utm_medium
attr_accessor :utm_campaign
attr_accessor :utm_term
attr_accessor :utm_content
attr_accessor :secret
def timestamp = Time.now.iso8601
def hmac = ApiLink.hmac(talentspace:, email:, timestamp:, secret: )
def query_params =
{}.merge(
talentspace:,
email:,
timestamp:,
hmac:,
profile_url:,
job_url:,
language:,
utm_id:,
utm_source:,
utm_medium:,
utm_campaign:,
utm_term:,
utm_content:).compact_blank
def link
"https://development.api.talentguide.com/public/v1/link?#{query_params.to_query}"
end
def self.hmac(talentspace:, email:, timestamp:, secret:)
hmac_body = [talentspace, email, timestamp, secret].join(';')
OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('md5'), secret, hmac_body)
end
end