mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
211 lines
5.5 KiB
JavaScript
211 lines
5.5 KiB
JavaScript
import { BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL,
|
|
BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL,
|
|
BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL,
|
|
FE_API_DOCUSEAL_CLONE_URL
|
|
} from '@/utils/Url';
|
|
|
|
const requestResponseHandler = async (response) => {
|
|
|
|
const body = await response.json();
|
|
if (response.ok) {
|
|
return body;
|
|
}
|
|
// Throw an error with the JSON body containing the form errors
|
|
const error = new Error(body?.errorMessage || "Une erreur est survenue");
|
|
error.details = body;
|
|
throw error;
|
|
}
|
|
|
|
export async function fetchRegistrationFileGroups() {
|
|
const response = await fetch(`${BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL}`, {
|
|
credentials: 'include',
|
|
headers: {
|
|
'Accept': 'application/json',
|
|
}
|
|
});
|
|
if (!response.ok) {
|
|
throw new Error('Failed to fetch file groups');
|
|
}
|
|
return response.json();
|
|
}
|
|
|
|
export async function createRegistrationFileGroup(groupData, csrfToken) {
|
|
const response = await fetch(`${BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL}`, {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'X-CSRFToken': csrfToken,
|
|
},
|
|
body: JSON.stringify(groupData),
|
|
credentials: 'include'
|
|
});
|
|
|
|
if (!response.ok) {
|
|
throw new Error('Failed to create file group');
|
|
}
|
|
|
|
return response.json();
|
|
}
|
|
|
|
export async function deleteRegistrationFileGroup(groupId, csrfToken) {
|
|
const response = await fetch(`${BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL}/${groupId}`, {
|
|
method: 'DELETE',
|
|
headers: {
|
|
'X-CSRFToken': csrfToken,
|
|
},
|
|
credentials: 'include'
|
|
});
|
|
|
|
return response;
|
|
}
|
|
|
|
export const editRegistrationFileGroup = async (groupId, groupData, csrfToken) => {
|
|
const response = await fetch(`${BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL}/${groupId}`, {
|
|
method: 'PUT',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'X-CSRFToken': csrfToken,
|
|
},
|
|
body: JSON.stringify(groupData),
|
|
});
|
|
|
|
if (!response.ok) {
|
|
throw new Error('Erreur lors de la modification du groupe');
|
|
}
|
|
|
|
return response.json();
|
|
};
|
|
|
|
export const fetchRegistrationFileFromGroup = async (groupId) => {
|
|
const response = await fetch(`${BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL}/${groupId}/templates`, {
|
|
credentials: 'include',
|
|
headers: {
|
|
'Accept': 'application/json',
|
|
}
|
|
});
|
|
if (!response.ok) {
|
|
throw new Error('Erreur lors de la récupération des fichiers associés au groupe');
|
|
}
|
|
return response.json();
|
|
}
|
|
|
|
export const fetchRegistrationTemplates = (id = null) => {
|
|
let url = `${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}`
|
|
if (id) {
|
|
url = `${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}/${id}`;
|
|
}
|
|
const request = new Request(
|
|
`${url}`,
|
|
{
|
|
method:'GET',
|
|
headers: {
|
|
'Content-Type':'application/json'
|
|
},
|
|
}
|
|
);
|
|
return fetch(request).then(requestResponseHandler)
|
|
};
|
|
|
|
export const editRegistrationTemplates = (fileId, data, csrfToken) => {
|
|
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}/${fileId}`, {
|
|
method: 'PUT',
|
|
body: data,
|
|
headers: {
|
|
'X-CSRFToken': csrfToken,
|
|
},
|
|
credentials: 'include',
|
|
})
|
|
.then(requestResponseHandler)
|
|
}
|
|
|
|
export const createRegistrationTemplates = (data,csrfToken) => {
|
|
|
|
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}`, {
|
|
method: 'POST',
|
|
body: JSON.stringify(data),
|
|
headers: {
|
|
'X-CSRFToken': csrfToken,
|
|
'Content-Type': 'application/json',
|
|
},
|
|
credentials: 'include',
|
|
})
|
|
.then(requestResponseHandler)
|
|
}
|
|
|
|
export const deleteRegistrationTemplates = (fileId,csrfToken) => {
|
|
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}/${fileId}`, {
|
|
method: 'DELETE',
|
|
headers: {
|
|
'X-CSRFToken': csrfToken,
|
|
},
|
|
credentials: 'include',
|
|
})
|
|
}
|
|
|
|
export const fetchRegistrationTemplateMaster = (id = null) => {
|
|
let url = `${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}`;
|
|
if(id){
|
|
url = `${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}/${id}`;
|
|
}
|
|
const request = new Request(
|
|
`${url}`,
|
|
{
|
|
method:'GET',
|
|
headers: {
|
|
'Content-Type':'application/json'
|
|
},
|
|
}
|
|
);
|
|
return fetch(request).then(requestResponseHandler)
|
|
};
|
|
|
|
export const createRegistrationTemplateMaster = (data,csrfToken) => {
|
|
|
|
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}`, {
|
|
method: 'POST',
|
|
body: JSON.stringify(data),
|
|
headers: {
|
|
'X-CSRFToken': csrfToken,
|
|
'Content-Type':'application/json'
|
|
},
|
|
credentials: 'include',
|
|
})
|
|
.then(requestResponseHandler)
|
|
}
|
|
|
|
export const deleteRegistrationTemplateMaster = (fileId,csrfToken) => {
|
|
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}/${fileId}`, {
|
|
method: 'DELETE',
|
|
headers: {
|
|
'X-CSRFToken': csrfToken,
|
|
},
|
|
credentials: 'include',
|
|
})
|
|
}
|
|
|
|
export const editRegistrationTemplateMaster = (fileId, data, csrfToken) => {
|
|
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}/${fileId}`, {
|
|
method: 'PUT',
|
|
body: JSON.stringify(data),
|
|
headers: {
|
|
'X-CSRFToken': csrfToken,
|
|
'Content-Type':'application/json'
|
|
},
|
|
credentials: 'include',
|
|
})
|
|
.then(requestResponseHandler)
|
|
}
|
|
|
|
export const cloneTemplate = (templateId, email) => {
|
|
return fetch(`${FE_API_DOCUSEAL_CLONE_URL}`, {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
body: JSON.stringify({
|
|
templateId,
|
|
email
|
|
})
|
|
})
|
|
.then(requestResponseHandler)
|
|
} |