2025-09-19 13:18:45 +02:00

61 lines
1.3 KiB
JavaScript

//#region parameters
const env = Object.freeze({
xsrfToken: document.getElementsByName('__RequestVerificationToken')[0].value,
envKey: document.querySelector('meta[name="env-key"]').getAttribute('content')
})
const url = Object.freeze({
reject: `/api/annotation/reject`,
rejectRedir: `/envelope/${env.envKey}`,
share: `/api/readonly`
});
//#endregion
//#region request helper methods
function sendRequest(method, url, body = undefined) {
const options = {
credentials: 'include',
method: method,
headers: {
'X-XSRF-TOKEN': env.xsrfToken
}
}
if (body !== undefined) {
options.body = JSON.stringify(body);
options.headers['Content-Type'] = 'application/json';
}
return fetch(url, options);
}
function getRequest(url) {
return sendRequest('GET', url);
}
function postRequest(url, body) {
return sendRequest('POST', url, body);
}
function redirect(url) {
window.location.href = url;
}
//#endregion
//#region envelope
function signEnvelope(annotations) {
return postRequest(`/api/annotation`, annotations)
}
function rejectEnvelope(reason) {
return postRequest(url.reject, reason);
}
function shareEnvelope(receiverMail, dateValid) {
return postRequest(url.share, { receiverMail: receiverMail, dateValid: dateValid });
}
//#endregion
function redirRejected() {
redirect(url.rejectRedir);
}