72 lines
1.5 KiB
JavaScript
72 lines
1.5 KiB
JavaScript
const url = {
|
|
get reject() {
|
|
return `/api/annotation/reject`;
|
|
},
|
|
|
|
get rejectRedir() {
|
|
return `/envelope/${url.envKey}`;
|
|
},
|
|
|
|
get share() {
|
|
return `/api/readonly`;
|
|
},
|
|
|
|
get xsrfToken() {
|
|
if (!this.__xsrfToken) {
|
|
this.__xsrfToken = document.getElementsByName('__RequestVerificationToken')[0].value;
|
|
}
|
|
return this.__xsrfToken;
|
|
},
|
|
|
|
get envKey() {
|
|
if (!this.__envKey) {
|
|
this.__envKey =
|
|
typeof envKey !== "undefined"
|
|
? envKey
|
|
: document.querySelector('meta[name="env-key"]').getAttribute('content');
|
|
}
|
|
return this.__envKey;
|
|
}
|
|
};
|
|
|
|
function submitForm(form) {
|
|
fetch(form.action, {
|
|
method: form.method,
|
|
body: new FormData(form),
|
|
headers: {
|
|
"X-Requested-With": "XMLHttpRequest"
|
|
}
|
|
})
|
|
}
|
|
|
|
function createRequest(method, url, body, contentType = 'application/json') {
|
|
return fetch(url, {
|
|
credentials: 'include',
|
|
method: method,
|
|
headers: {
|
|
'Content-Type': contentType,
|
|
'X-XSRF-TOKEN': url.xsrfToken
|
|
},
|
|
body: JSON.stringify(body)
|
|
})
|
|
}
|
|
|
|
function createPost(url, body, contentType = 'application/json') {
|
|
return createRequest('POST', url, body, contentType);
|
|
}
|
|
|
|
function rejectEnvelope(reason) {
|
|
return createPost(url.reject, reason, Content.JSON);
|
|
}
|
|
|
|
function redirect(url) {
|
|
return window.location.href = url;
|
|
}
|
|
|
|
function redirRejected() {
|
|
return redirect(url.rejectRedir);
|
|
}
|
|
|
|
function shareEnvelope(receiverMail, dateValid) {
|
|
return createPost(url.share, { receiverMail: receiverMail, dateValid: dateValid }, Content.JSON);
|
|
} |