feat(api-service): Methode für Share-Request erstellt.

This commit is contained in:
Developer 02
2024-10-09 11:00:21 +02:00
parent f2cd34a79e
commit 3ce11f4cc7
2 changed files with 23 additions and 17 deletions

View File

@@ -1,25 +1,29 @@
class Content { class Content {
static get JSON () { static get JSON() {
return 'application/json'; return 'application/json';
} }
} }
class API { class API {
static get REJECT_URL () { static get REJECT_URL() {
return `/api/envelope/reject`; return `/api/envelope/reject`;
} }
static get REJECT_REDIR_URL(){ static get REJECT_REDIR_URL() {
return `/envelopekey/${API.ENV_KEY}/rejected`; return `/envelopekey/${API.ENV_KEY}/rejected`;
} }
static get SHARE_URL() {
return `/readonly`
}
static __XSRF_TOKEN static __XSRF_TOKEN
static get XSRF_TOKEN() { static get XSRF_TOKEN() {
API.__XSRF_TOKEN ??= document.getElementsByName('__RequestVerificationToken')[0].value; API.__XSRF_TOKEN ??= document.getElementsByName('__RequestVerificationToken')[0].value;
return API.__XSRF_TOKEN; return API.__XSRF_TOKEN;
} }
static get ENV_KEY(){ static get ENV_KEY() {
return ENV_KEY ?? document.querySelector('meta[name="env-key"]').getAttribute('content'); return ENV_KEY ?? document.querySelector('meta[name="env-key"]').getAttribute('content');
} }
} }
@@ -28,20 +32,20 @@ const submitForm = async form => await fetch(form.action, {
method: form.method, method: form.method,
body: new FormData(form), body: new FormData(form),
headers: { headers: {
"X-Requested-With": "XMLHttpRequest" "X-Requested-With": "XMLHttpRequest"
} }
}) })
const createRequest = async (method, url, body, contentType) => { const createRequest = async (method, url, body, contentType) => {
return fetch(url, { return fetch(url, {
credentials: 'include', credentials: 'include',
method: method, method: method,
headers: { headers: {
'Content-Type': contentType, 'Content-Type': contentType,
'X-XSRF-TOKEN': API.XSRF_TOKEN 'X-XSRF-TOKEN': API.XSRF_TOKEN
}, },
body: JSON.stringify(body) body: JSON.stringify(body)
}) })
} }
const createPost = (url, body, contentType) => createRequest('POST', url, body, contentType); const createPost = (url, body, contentType) => createRequest('POST', url, body, contentType);
@@ -50,4 +54,6 @@ const rejectEnvelope = (reason) => createPost(API.REJECT_URL, reason, Content.JS
const redirect = (url) => window.location.href = url; const redirect = (url) => window.location.href = url;
const redirRejected = () => redirect(API.REJECT_REDIR_URL); const redirRejected = () => redirect(API.REJECT_REDIR_URL);
const shareEnvelope = (receiverMail, dateValid) => createPost(API.SHARE_URL, { receiverMail: receiverMail, dateValid: dateValid });

View File

@@ -1,2 +1,2 @@
class Content{static get JSON(){return"application/json"}}class API{static get REJECT_URL(){return`/api/envelope/reject`}static get REJECT_REDIR_URL(){return`/envelopekey/${API.ENV_KEY}/rejected`}static __XSRF_TOKEN class Content{static get JSON(){return"application/json"}}class API{static get REJECT_URL(){return`/api/envelope/reject`}static get REJECT_REDIR_URL(){return`/envelopekey/${API.ENV_KEY}/rejected`}static get SHARE_URL(){return`/readonly`}static __XSRF_TOKEN
static get XSRF_TOKEN(){return API.__XSRF_TOKEN??=document.getElementsByName("__RequestVerificationToken")[0].value,API.__XSRF_TOKEN}static get ENV_KEY(){return ENV_KEY??document.querySelector('meta[name="env-key"]').getAttribute("content")}}const submitForm=async n=>await fetch(n.action,{method:n.method,body:new FormData(n),headers:{"X-Requested-With":"XMLHttpRequest"}}),createRequest=async(n,t,i,r)=>fetch(t,{credentials:"include",method:n,headers:{"Content-Type":r,"X-XSRF-TOKEN":API.XSRF_TOKEN},body:JSON.stringify(i)}),createPost=(n,t,i)=>createRequest("POST",n,t,i),rejectEnvelope=n=>createPost(API.REJECT_URL,n,Content.JSON),redirect=n=>window.location.href=n,redirRejected=()=>redirect(API.REJECT_REDIR_URL); static get XSRF_TOKEN(){return API.__XSRF_TOKEN??=document.getElementsByName("__RequestVerificationToken")[0].value,API.__XSRF_TOKEN}static get ENV_KEY(){return ENV_KEY??document.querySelector('meta[name="env-key"]').getAttribute("content")}}const submitForm=async n=>await fetch(n.action,{method:n.method,body:new FormData(n),headers:{"X-Requested-With":"XMLHttpRequest"}}),createRequest=async(n,t,i,r)=>fetch(t,{credentials:"include",method:n,headers:{"Content-Type":r,"X-XSRF-TOKEN":API.XSRF_TOKEN},body:JSON.stringify(i)}),createPost=(n,t,i)=>createRequest("POST",n,t,i),rejectEnvelope=n=>createPost(API.REJECT_URL,n,Content.JSON),redirect=n=>window.location.href=n,redirRejected=()=>redirect(API.REJECT_REDIR_URL),shareEnvelope=(n,t)=>createPost(API.SHARE_URL,{receiverMail:n,dateValid:t});