41 lines
866 B
Ruby
41 lines
866 B
Ruby
|
class Universign::API
|
||
|
## Universign Timestamp POST API
|
||
|
# Official documentation is at https://help.universign.com/hc/fr/articles/360000898965-Guide-d-intégration-horodatage
|
||
|
|
||
|
def self.ensure_properly_configured!
|
||
|
if userpwd.blank?
|
||
|
raise StandardError, 'Universign API is not properly configured'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def self.timestamp(data)
|
||
|
ensure_properly_configured!
|
||
|
|
||
|
response = Typhoeus.post(
|
||
|
UNIVERSIGN_API_URL,
|
||
|
userpwd: userpwd,
|
||
|
body: body(data)
|
||
|
)
|
||
|
|
||
|
if response.success?
|
||
|
response.body
|
||
|
else
|
||
|
raise StandardError, "Universign timestamp query failed: #{response.status_message}"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def self.body(data)
|
||
|
{
|
||
|
'hashAlgo': 'SHA256',
|
||
|
'withCert': 'true',
|
||
|
'hashValue': data
|
||
|
}
|
||
|
end
|
||
|
|
||
|
def self.userpwd
|
||
|
Rails.application.secrets.universign[:userpwd]
|
||
|
end
|
||
|
end
|