feat: Suppression des templates docuseal [#22]

This commit is contained in:
N3WT DE COMPET
2025-03-01 15:06:57 +01:00
parent 4b8f85e68d
commit 081dc06001
11 changed files with 388 additions and 292 deletions

View File

@ -1,7 +1,8 @@
from django.urls import path, re_path
from .views import generate_jwt_token, clone_template
from .views import generate_jwt_token, clone_template, remove_template
urlpatterns = [
re_path(r'generateToken$', generate_jwt_token, name='generate_jwt_token'),
re_path(r'cloneTemplate$', clone_template, name='clone_template'),
re_path(r'removeTemplate/(?P<id>[0-9]+)$', remove_template, name='remove_template'),
]

View File

@ -71,11 +71,37 @@ def clone_template(request):
'X-Auth-Token': settings.DOCUSEAL_JWT['API_KEY']
})
if response.status_code != 200:
if response.status_code != status.HTTP_200_OK:
return Response({'error': 'Failed to clone template'}, status=response.status_code)
data = response.json()
return Response(data, status=status.HTTP_200_OK)
except requests.RequestException as e:
return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
@csrf_exempt
@api_view(['DELETE'])
def remove_template(request, id):
# Vérifier la clé API
api_key = request.headers.get('X-Auth-Token')
if not api_key or api_key != settings.DOCUSEAL_JWT["API_KEY"]:
return Response({'error': 'Invalid API key'}, status=status.HTTP_401_UNAUTHORIZED)
# URL de l'API de DocuSeal pour cloner le template
clone_url = f'https://docuseal.com/api/templates/{id}'
# Faire la requête pour cloner le template
try:
response = requests.delete(clone_url, headers={
'X-Auth-Token': settings.DOCUSEAL_JWT['API_KEY']
})
if response.status_code != status.HTTP_200_OK:
return Response({'error': 'Failed to remove template'}, status=response.status_code)
data = response.json()
return Response(data, status=status.HTTP_200_OK)
except requests.RequestException as e:
return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)

View File

@ -44,7 +44,7 @@ class RegistrationTemplateMasterSimpleView(APIView):
}
)
def get(self, request, id):
master = bdd.getObject(_objectName=RegistrationTemplateMaster, _columnName='id', _value=id)
master = bdd.getObject(_objectName=RegistrationTemplateMaster, _columnName='template_id', _value=id)
if master is None:
return JsonResponse({"errorMessage":'Le master de template n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
serializer = RegistrationTemplateMasterSerializer(master)
@ -60,7 +60,7 @@ class RegistrationTemplateMasterSimpleView(APIView):
}
)
def put(self, request, id):
master = bdd.getObject(_objectName=RegistrationTemplateMaster, _columnName='id', _value=id)
master = bdd.getObject(_objectName=RegistrationTemplateMaster, _columnName='template_id', _value=id)
if master is None:
return JsonResponse({'erreur': 'Le master de template n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
serializer = RegistrationTemplateMasterSerializer(master, data=request.data)
@ -77,7 +77,7 @@ class RegistrationTemplateMasterSimpleView(APIView):
}
)
def delete(self, request, id):
master = bdd.getObject(_objectName=RegistrationTemplateMaster, _columnName='id', _value=id)
master = bdd.getObject(_objectName=RegistrationTemplateMaster, _columnName='template_id', _value=id)
if master is not None:
master.delete()
return JsonResponse({'message': 'La suppression du master de template a été effectuée avec succès'}, safe=False, status=status.HTTP_204_NO_CONTENT)
@ -118,7 +118,7 @@ class RegistrationTemplateSimpleView(APIView):
}
)
def get(self, request, id):
template = bdd.getObject(_objectName=RegistrationTemplate, _columnName='id', _value=id)
template = bdd.getObject(_objectName=RegistrationTemplate, _columnName='template_id', _value=id)
if template is None:
return JsonResponse({"errorMessage":'Le template d\'inscription n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
serializer = RegistrationTemplateSerializer(template)
@ -134,7 +134,7 @@ class RegistrationTemplateSimpleView(APIView):
}
)
def put(self, request, id):
template = bdd.getObject(_objectName=RegistrationTemplate, _columnName='id', _value=id)
template = bdd.getObject(_objectName=RegistrationTemplate, _columnName='template_id', _value=id)
if template is None:
return JsonResponse({'erreur': 'Le template d\'inscription n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
serializer = RegistrationTemplateSerializer(template, data=request.data)
@ -151,7 +151,7 @@ class RegistrationTemplateSimpleView(APIView):
}
)
def delete(self, request, id):
template = bdd.getObject(_objectName=RegistrationTemplate, _columnName='id', _value=id)
template = bdd.getObject(_objectName=RegistrationTemplate, _columnName='template_id', _value=id)
if template is not None:
template.delete()
return JsonResponse({'message': 'La suppression du template a été effectuée avec succès'}, safe=False, status=status.HTTP_204_NO_CONTENT)