feat: A la signature d'un document, on récupère l'URL du PDF [#22]

This commit is contained in:
N3WT DE COMPET
2025-03-01 23:55:48 +01:00
parent eb81bbba92
commit 2ac4832985
8 changed files with 97 additions and 16 deletions

View File

@ -1,7 +1,8 @@
import { BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL,
BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL,
BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL,
FE_API_DOCUSEAL_CLONE_URL
FE_API_DOCUSEAL_CLONE_URL,
FE_API_DOCUSEAL_DOWNLOAD_URL
} from '@/utils/Url';
const requestResponseHandler = async (response) => {
@ -208,4 +209,14 @@ export const cloneTemplate = (templateId, email) => {
})
})
.then(requestResponseHandler)
}
export const downloadTemplate = (slug) => {
return fetch(`${FE_API_DOCUSEAL_DOWNLOAD_URL}/${slug}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
})
.then(requestResponseHandler)
}

View File

@ -7,8 +7,8 @@ import Loader from '@/components/Loader';
import Button from '@/components/Button';
import DjangoCSRFToken from '@/components/DjangoCSRFToken';
import Table from '@/components/Table';
import { fetchRegistrationTemplateMaster, createRegistrationTemplates, fetchRegisterForm, deleteRegistrationTemplates, fetchTemplatesFromRegistrationFiles } from '@/app/actions/subscriptionAction';
import { fetchRegistrationFileFromGroup } from '@/app/actions/registerFileGroupAction';
import { fetchRegisterForm, fetchTemplatesFromRegistrationFiles } from '@/app/actions/subscriptionAction';
import { fetchRegistrationFileFromGroup, fetchRegistrationTemplateMaster, downloadTemplate, createRegistrationTemplates, deleteRegistrationTemplates } from '@/app/actions/registerFileGroupAction';
import { Download, Upload, Trash2, Eye } from 'lucide-react';
import { BASE_URL } from '@/utils/Url';
import DraggableFileUpload from '@/components/DraggableFileUpload';
@ -19,6 +19,7 @@ import StudentInfoForm from '@/components/Inscription/StudentInfoForm';
import FilesToSign from '@/components/Inscription/FilesToSign';
import FilesToUpload from '@/components/Inscription/FilesToUpload';
import { DocusealForm } from '@docuseal/react';
import { ESTABLISHMENT_ID } from '@/utils/Url';
/**
* Composant de formulaire d'inscription partagé
@ -170,7 +171,9 @@ export default function InscriptionFormShared({
student: {
...formData,
guardians
}
},
establishment: ESTABLISHMENT_ID,
status:3
}
onSubmit(data);
};
@ -273,10 +276,11 @@ export default function InscriptionFormShared({
src={"https://docuseal.com/s/"+requiredFileTemplates[currentPage - 2].slug}
withDownloadButton={false}
onComplete={() => {
const formContainer = document.getElementById('form_container');
if (formContainer) {
formContainer.style.display = 'none';
}
downloadTemplate(requiredFileTemplates[currentPage - 2].slug)
.then((data) => {
logger.debug("PDF URL : ", data)
})
.catch((error) => console.error(error));
}}
>
</DocusealForm>

View File

@ -0,0 +1,32 @@
import { BE_DOCUSEAL_DOWNLOAD_TEMPLATE } from '@/utils/Url';
export default function handler(req, res) {
if (req.method === 'GET') {
const { slug } = req.query;
console.log('slug : ', slug)
fetch(`${BE_DOCUSEAL_DOWNLOAD_TEMPLATE}/${slug}`, {
method: 'GET',
headers: {
'X-Auth-Token': process.env.DOCUSEAL_API_KEY
}
})
.then(response => {
if (!response.ok) {
return response.json().then(err => { throw new Error(err.message); });
}
return response.json();
})
.then(data => {
console.log('Template downloaded successfully:', data);
res.status(200).json(data);
})
.catch(error => {
console.error('Error downloading template:', error);
res.status(500).json({ error: 'Internal Server Error' });
});
} else {
res.setHeader('Allow', ['GET']);
res.status(405).end(`Method ${req.method} Not Allowed`);
}
}

View File

@ -2,8 +2,6 @@ import { BE_DOCUSEAL_GET_JWT } from '@/utils/Url';
export default function handler(req, res) {
if (req.method === 'POST') {
console.log('DOCUSEAL_API_KEY:', process.env.DOCUSEAL_API_KEY);
fetch(BE_DOCUSEAL_GET_JWT, {
method: 'POST',
headers: {

View File

@ -8,6 +8,7 @@ export const BASE_URL = process.env.NEXT_PUBLIC_API_URL;
export const BE_DOCUSEAL_GET_JWT = `${BASE_URL}/DocuSeal/generateToken`
export const BE_DOCUSEAL_CLONE_TEMPLATE = `${BASE_URL}/DocuSeal/cloneTemplate`
export const BE_DOCUSEAL_REMOVE_TEMPLATE = `${BASE_URL}/DocuSeal/removeTemplate`
export const BE_DOCUSEAL_DOWNLOAD_TEMPLATE = `${BASE_URL}/DocuSeal/downloadTemplate`
// GESTION LOGIN
export const BE_AUTH_NEW_PASSWORD_URL = `${BASE_URL}/Auth/newPassword`
@ -89,4 +90,5 @@ export const FE_PARENTS_SETTINGS_URL = `/parents/settings`
export const FE_PARENTS_EDIT_INSCRIPTION_URL = `/parents/editInscription`
// API DOCUSEAL
export const FE_API_DOCUSEAL_CLONE_URL = `/api/docuseal/cloneTemplate`
export const FE_API_DOCUSEAL_CLONE_URL = `/api/docuseal/cloneTemplate`
export const FE_API_DOCUSEAL_DOWNLOAD_URL = `/api/docuseal/downloadTemplate`