Introduction Dernière mise à jour: 2023-09-28

Bienvenue dans la référence de l'API CLosing .
L'API est organisée autour de REST. L'API accepte les corps de requête codés par formulaire, renvoie des réponses codées JSON et utilise des codes de réponse HTTP standard et une authentification .

Endpoints

Tous les appels à l'API doivent commencer par l'URL de base approprié :

https://test-api-closing.flexi-lab.fr/api/v1

Appels API

Curl

Utilisation de curl pour appeler l'API, vous devez include l'URL de la ressource entre guillemets lorsque vous passez plusieurs paramètres de rêquete séparés par un &.

curl -v \
-H "Content-Type: application/json" \
-H "Authorization: 3eafcfbd-6041-47e0-9475-ff082fbc3a79" \
-X GET "https://test-api-closing.flexi-lab.fr/api/v1/documents?offset=10&limit=10"

Postman

Postman est une plateforme de collaboration pour tester les API.

Swagger

Tester les appels API directement depuis la documentation générée Swagger.

Exécuter dans Swagger

Réponses API

Cette API utilise des codes de réponse HTTP conventionnels pour indiquer le succès ou l'échec d'une demande d'API.
En général:
les codes de la gamme 2xx indiquent le succès.
Les codes de la plage 4xx indiquent une erreur qui a échoué compte tenu des informations fournies (par exemple, un paramètre requis a été omis, une charge a échoué, etc.).
Les codes de la gamme 5xx indiquent une erreur avec le serveur.
Les erreurs répondent avec un code d'erreur et JSON qui contient un message.

Exemple d'une réponse

201 Created


{
  "message": "Client successfully created",
  "Client": {
    "name": "Syrine",
    "email": "Syrine@gmail.com",
    "updated_at": "2021-03-08T15:19:28.000000Z",
    "created_at": "2021-03-08T15:19:28.000000Z",
    "id": 48
  }
}
                           

Exemple d'erreur

422 Unprocessable Entity

{
       "errors": [
        {
        "Message": "The id must be at least 1."
        }
        ]
}
                           

Tableau des erreurs

CODE NOM DU STATUT DESCRIPTION ACTION SUGGÉRÉE
400 Bad Request Il y a un problème avec votre demande. Vérifiez que votre demande respecte la documentation de l'API et utilise la syntaxe correcte.
401 Unauthorized Vous ne disposez pas de l'autorisation nécessaire pour effectuer la demande. Assurez-vous que vous utilisez une clé API valide avec les autorisations nécessaires pour votre demande.
401 Forbidden Le serveur a compris la demande mais a refusé de la satisfaire. Modifiez l'URL de votre demande pour qu'elle corresponde à un point de terminaison d'API valide.
404 Not Found Le serveur n'a pas pu trouver le fichier demandé. Vérifiez si l'API inclut la ressource que vous demandez et si votre clé API dispose des autorisations nécessaires.
405 Method Not Allowed La ressource n'a pas la méthode spécifiée. (par exemple PUT sur les transmissions) Modifiez la méthode pour suivre la documentation de la ressource.
409 Conflict Un conflit est né de votre demande. (par exemple, l'utilisateur existe déjà avec cet e-mail) Modifiez payload pour effacer le conflit.
422 Unprocessable Entity La requête était syntaxiquement correcte mais a échoué en raison d'erreurs sémantiques. Assurez-vous que votre demande comprend tous les champs obligatoires et que vos données sont valides.
500 Internal Server Error Un problème est survenu de notre côté.) Réessayez la demande plus tard. Si l'erreur ne résout pas, consultez notre page d'état pour les mises à jour du service. Vous pouvez également contacter l'assistance depuis l'application [EU] si votre problème persiste.
503 Service Unavailable Nous connaissons des niveaux de trafic supérieurs à la normale. Réessayez la demande plus tard.

Ressources de bases

Documents

Il s’agit du résultat final obtenu via le logiciel.
Un document peut être composé uniquement de briques-arguments et peut donc n’être lié à aucun produit donc à aucun composant.

Créer un document

Paramètres:
document_type_id(oligatoire) clé étrangère qui fait référence au champ id de la table document_types
dcdc_client_id(oligatoire) clé étrangère qui fait référence au champ id de la table clients
status(oligatoire) status de documents(en attente, validé, abandonné, supprimé, archivé, en création)
product_id(oligatoire) clé étrangère qui fait référence au champ id de la table products
Retour API:

Renvoie un objet document et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

Envoi Request
POST/api/v1/documents
Reponse

								
{ "message": "Document successfully created", "document": { "parent_id": "1", "document_type_id": 2, "dcdc_client_id": 3, "product_id": 1, "status": "in_creation", "reference": "CDCsyrine", "updated_at": "2021-03-04T10:01:48.000000Z", "created_at": "2021-03-04T10:01:48.000000Z", "id": 415 } }
{ "message": "Document successfully created", "document": { "parent_id": "1", "document_type_id": 2, "dcdc_client_id": 3, "product_id": 1, "status": "in_creation", "reference": "CDCsyrine", "updated_at": "2021-03-04T10:01:48.000000Z", "created_at": "2021-03-04T10:01:48.000000Z", "id": 415 } }
{ "errors": { "message": "the client with id 89 doesn't exist" } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The selected status is invalid." } ] }

Mettre à jour un document

Paramètres:
id(oligatoire) ID du document
document_type_id clé étrangère qui fait référence au champ id de la table document_types
dcdc_client_id clé étrangère qui fait référence au champ id de la table clients
status status de documents(en attente, validé, abandonné, supprimé, archivé, en création)
product_id clé étrangère qui fait référence au champ id de la table products
Retour API:

Renvoie un objet document et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

PUT/api/v1/documents
Reponse

							
{ "message": "Document successfully updated", "Document": { "id": 1, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 3, "status": "pending", "reference": "PRsyrine", "created_at": "2021-01-28T00:00:00.000000Z", "updated_at": "2021-02-05T16:20:27.000000Z", "deleted_at": null, "parent_id": null } }
{ "message": "Document successfully updated", "Document": { "id": 1, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 3, "status": "pending", "reference": "PRsyrine", "created_at": "2021-01-28T00:00:00.000000Z", "updated_at": "2021-02-05T16:20:27.000000Z", "deleted_at": null, "parent_id": null } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The selected status is invalid." } ] }

Récupérer un document

Paramètres:
id(oligatoire) ID du document
Retour API:

Renvoie un objet document et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/documents/{id}
Reponse

							
{ "message": "document informations", "document": { "id": 2, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 4, "status": "in_creation", "reference": "PR1612189558", "created_at": "2021-02-01T14:25:58.000000Z", "updated_at": "2021-02-01T14:25:58.000000Z", "deleted_at": null, "parent_id": null } }
{ "message": "document informations", "document": { "id": 2, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 4, "status": "in_creation", "reference": "PR1612189558", "created_at": "2021-02-01T14:25:58.000000Z", "updated_at": "2021-02-01T14:25:58.000000Z", "deleted_at": null, "parent_id": null } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }
{ "errors": { "message": "Authorization failed" } }

Récupérer tous les documents

Paramètres:
reference Recherche par la reférence du document
status Recherche par la status du document
client_id Recherche par la clé étrangére du client
document_type_id Recherche par la clé étrangére du document type
created_at Recherche par la date de création du document
updated_at Recherche par la date de mise à jour du document
sort Trier par des colonnes
offset Pagination par offset
limit Pagination par limit
fields Retourner seulement liste des données par fields
Retour API:

Renvoie un objet avec la liste des documents et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/documents
Reponse

								
{ "message": "all documents", "documents": [ { "id": 410, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 33, "status": "in_creation", "reference": "PR1613640505", "created_at": "2021-02-18T09:28:25.000000Z", "updated_at": "2021-02-18T09:31:08.000000Z", "deleted_at": null, "parent_id": null, "clientLink": "/clients/33", "documentTypeLink": "/documentTypes/1", "productLink": "/products/1", "partsLink": "/documents/410/parts", "childs": [] }, { "id": 409, "product_id": null, "document_type_id": 1, "dcdc_client_id": 33, "status": "in_creation", "reference": "PR1613635795", "created_at": "2021-02-18T08:09:55.000000Z", "updated_at": "2021-02-18T08:09:55.000000Z", "deleted_at": null, "parent_id": null, "clientLink": "/clients/33", "documentTypeLink": "/documentTypes/1", "productLink": "/products/", "partsLink": "/documents/409/parts", "childs": [] } ], "links": [ { "self": "/documents", "next": "/documents?page[offset]=6", "last": "/documents?page[offset]=397", "total_data": 398 } ] }
{ "message": "all documents", "documents": [ { "id": 410, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 33, "status": "in_creation", "reference": "PR1613640505", "created_at": "2021-02-18T09:28:25.000000Z", "updated_at": "2021-02-18T09:31:08.000000Z", "deleted_at": null, "parent_id": null, "clientLink": "/clients/33", "documentTypeLink": "/documentTypes/1", "productLink": "/products/1", "partsLink": "/documents/410/parts", "childs": [] }, { "id": 409, "product_id": null, "document_type_id": 1, "dcdc_client_id": 33, "status": "in_creation", "reference": "PR1613635795", "created_at": "2021-02-18T08:09:55.000000Z", "updated_at": "2021-02-18T08:09:55.000000Z", "deleted_at": null, "parent_id": null, "clientLink": "/clients/33", "documentTypeLink": "/documentTypes/1", "productLink": "/products/", "partsLink": "/documents/409/parts", "childs": [] } ], "links": [ { "self": "/documents", "next": "/documents?page[offset]=6", "last": "/documents?page[offset]=397", "total_data": 398 } ] }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "The column title not found the table documents" } }
{ "errors": { "message": "The sort is invalid " } }

Supprimer un document

Paramètres:
id(oligatoire) ID du document
Retour API:

Renvoie un message si l'appel a réussi.

DELETE/api/v1/documents/{id}
Reponse

							
{ "message": "Document successfully deleted" }
{ "message": "Document successfully deleted" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Retourner un document avec les briques

id(oligatoire) ID du document
Retour API:

Renvoie un objet avec la liste des documents et leurs briques et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/documents/{id}/parts
Reponse

							
{ "message": "document informations with parts", "document": { "id": 1, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 3, "status": "pending", "reference": "PRsyrine", "created_at": "2021-01-28T00:00:00.000000Z", "updated_at": "2021-02-05T16:20:27.000000Z", "deleted_at": null, "parent_id": null, "parts": [ { "id": 5, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Entête", "path": "app/public/docs/parts/quote/A001-inc_Entete.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:52:52.000000Z", "deleted_at": null, "status": "required", "img_path": "/storage/docs/parts/quote/A001-obg_Entete.png", "pivot": { "document_id": 1, "part_id": 5, "rank": 1 } }, { "id": 11, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Site-Web-Eco-Système", "path": "app/public/docs/parts/quote/x001-opt_Site-Web-Eco-Système.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-01-27T16:20:56.000000Z", "updated_at": "2021-02-01T14:03:21.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_Site-Web-Eco-Système.png", "pivot": { "document_id": 1, "part_id": 11, "rank": 2 } } ] } }
{ { "message": "document informations with parts", "document": { "id": 1, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 3, "status": "pending", "reference": "PRsyrine", "created_at": "2021-01-28T00:00:00.000000Z", "updated_at": "2021-02-05T16:20:27.000000Z", "deleted_at": null, "parent_id": null, "parts": [ { "id": 5, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Entête", "path": "app/public/docs/parts/quote/A001-inc_Entete.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:52:52.000000Z", "deleted_at": null, "status": "required", "img_path": "/storage/docs/parts/quote/A001-obg_Entete.png", "pivot": { "document_id": 1, "part_id": 5, "rank": 1 } }, { "id": 11, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Site-Web-Eco-Système", "path": "app/public/docs/parts/quote/x001-opt_Site-Web-Eco-Système.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-01-27T16:20:56.000000Z", "updated_at": "2021-02-01T14:03:21.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_Site-Web-Eco-Système.png", "pivot": { "document_id": 1, "part_id": 11, "rank": 2 } } ] } } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Retourner un document avec les composants

Paramètres:
id(oligatoire) ID du document
Retour API:

Renvoie un objet document avec les composants et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/documents/{id}/components
Reponse

							
{ "message": "document informations with components", "document": { "id": 69, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 4, "status": "in_creation", "reference": "PR1612270274", "created_at": "2021-02-02T12:51:14.000000Z", "updated_at": "2021-02-02T12:51:14.000000Z", "deleted_at": null, "parent_id": null, "components": [ { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null, "pivot": { "document_id": 69, "component_id": 1, "created_at": "2021-02-02T12:51:23.000000Z", "updated_at": "2021-02-02T12:51:23.000000Z" } } ] } }
{ "message": "document informations with components", "document": { "id": 69, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 4, "status": "in_creation", "reference": "PR1612270274", "created_at": "2021-02-02T12:51:14.000000Z", "updated_at": "2021-02-02T12:51:14.000000Z", "deleted_at": null, "parent_id": null, "components": [ { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null, "pivot": { "document_id": 69, "component_id": 1, "created_at": "2021-02-02T12:51:23.000000Z", "updated_at": "2021-02-02T12:51:23.000000Z" } } ] } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Assigner une brique à un document

document_id(oligatoire) ID du document
part_id(oligatoire) ID de part
rang(oligatoire) Rang de brique
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/documents/{id}/assignPart
Reponse

							
{ "message": "Part successfully assigned to the document" }
{ "message": "Part successfully assigned to the document" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Structure finale d'un document avec les briques et leurs rangs

document_id(oligatoire) ID du document
part_id_rank (oligatoire) ID de brique avec leur rang
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/documents/structure
Reponse

							
{ "message": "The structure is successfully updated" }
{ "message": "The structure is successfully updated" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Assigner des composants

document_id(oligatoire) ID du document
component_id(oligatoire) ID de composant
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/documents/assignComponents
Reponse

							
{ "message": "Components successfully assigned to the document" }
{ "message": "Components successfully assigned to the document" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Supprimer les composants assigner à un document

document_id(oligatoire) ID du document
component_id(oligatoire) ID de composant
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/documents/unassignComponents
Reponse

							
{ "message": "Components successfully unassigned to the document" }
{ "message": "Components successfully unassigned to the document" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Supprimer les briques assigner à un document

document_id(oligatoire) ID du document
part_id(oligatoire) ID de parts
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/documents/unassignParts
Reponse

							
{ "message": "Parts successfully unassigned to the document" }
{ "message": "Parts successfully unassigned to the document" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Générer un nouveau document

ID(oligatoire) ID du document
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/documents/generateDocument/{id}
Reponse

							
{ "message": "Document successfully generated" }
{ "message": "Document successfully generated" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Dupliquer un document

ID(oligatoire) ID du document
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/documents/duplicate/{id}
Reponse

							
{ "message": "Document successfully duplicated" }
{ "message": "Document successfully duplicated" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Récupérer les documents générés

ID(oligatoire) ID du document
Retour API:

Renvoie liste de documents générés avec un message si l'appel a réussi.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/documents/{id}/allGeneratedDoc
Reponse

							
{ "message": "document files", "documents": { "id": 10, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 3, "status": "in_creation", "reference": "PR1612190260", "created_at": "2021-02-01T14:37:40.000000Z", "updated_at": "2021-02-01T14:37:40.000000Z", "deleted_at": null, "parent_id": null, "document_generate_files": [ { "id": 169, "path": "/storage//docs/result/quote/PR1612190260_1614871336.docx", "document_id": 10, "created_at": "2021-03-04T15:22:16.000000Z", "updated_at": "2021-03-04T15:22:16.000000Z", "deleted_at": null }, { "id": 168, "path": "/storage//docs/result/quote/PR1612190260_1614681358.docx", "document_id": 10, "created_at": "2021-03-02T10:35:58.000000Z", "updated_at": "2021-03-02T10:35:58.000000Z", "deleted_at": null } ] } }
{ "message": "document files", "documents": { "id": 10, "product_id": 1, "document_type_id": 1, "dcdc_client_id": 3, "status": "in_creation", "reference": "PR1612190260", "created_at": "2021-02-01T14:37:40.000000Z", "updated_at": "2021-02-01T14:37:40.000000Z", "deleted_at": null, "parent_id": null, "document_generate_files": [ { "id": 169, "path": "/storage//docs/result/quote/PR1612190260_1614871336.docx", "document_id": 10, "created_at": "2021-03-04T15:22:16.000000Z", "updated_at": "2021-03-04T15:22:16.000000Z", "deleted_at": null }, { "id": 168, "path": "/storage//docs/result/quote/PR1612190260_1614681358.docx", "document_id": 10, "created_at": "2021-03-02T10:35:58.000000Z", "updated_at": "2021-03-02T10:35:58.000000Z", "deleted_at": null } ] } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Retourner la structure finale de document

ID(oligatoire) ID du document
Retour API:

Renvoie la structure avec un message si l'appel a réussi.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/documents/structures/{id}
Reponse

							
{ "structure": { "4": { "id": 9, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "SEO-friendly", "path": "app/public/docs/parts/quote/x001-opt_SEO-friendly.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-16T08:39:48.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_SEO-friendly.png" }, "5": { "id": 10, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Top-10-Arguments", "path": "app/public/docs/parts/quote/x001-opt_Top-10-Arguments.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T09:14:16.000000Z", "deleted_at": null, "status": "optional", "img_path": null }, "8": { "id": 24, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Contexte-Projet", "path": "app/public/docs/parts/quote/D001-inc_Contexte-Projet.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:19:43.000000Z", "updated_at": "2021-02-08T14:20:18.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/D001-inc_Contexte-Projet.png" }, "9": { "id": 25, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Planning", "path": "app/public/docs/parts/quote/E001-inc_planning.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:21:49.000000Z", "updated_at": "2021-02-08T14:22:15.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/E001-inc_planning.png" }, "10": { "id": 26, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Alertes-Cookies", "path": "app/public/docs/parts/quote/x001-opt_Alertes-Cookies.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:24:28.000000Z", "updated_at": "2021-02-09T08:43:56.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_Alertes-Cookies.png" }, "11": { "id": 27, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Programme-Maintenance", "path": "app/public/docs/parts/quote/x001-opt_Programme-Maintenance.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:25:50.000000Z", "updated_at": "2021-02-16T08:45:47.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_Programme-Maintenance.png" } }, "final_structure": [ { "id": 5, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Entête", "path": "app/public/docs/parts/quote/A001-inc_Entete.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:52:52.000000Z", "deleted_at": null, "status": "required", "img_path": "/storage/docs/parts/quote/A001-obg_Entete.png", "pivot": { "document_id": 10, "part_id": 5, "rank": 1 } }, { "id": 6, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Site-Responsive", "path": "app/public/docs/parts/quote/C001-inc_Site-Responsive.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T14:00:18.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/C001-inc_Site-Responsive.png", "pivot": { "document_id": 10, "part_id": 6, "rank": 2 } }, { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/F003-inc_Budgets-Alt1.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:59:55.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/F003-inc_Budgets-Alt1.png", "pivot": { "document_id": 10, "part_id": 7, "rank": 3 } }, { "id": 8, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Points-forts", "path": "app/public/docs/parts/quote/B001-inc_Points-forts.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-02T08:00:21.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/B001-inc_Points-forts.png", "pivot": { "document_id": 10, "part_id": 8, "rank": 4 } }, { "id": 11, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Site-Web-Eco-Système", "path": "app/public/docs/parts/quote/x001-opt_Site-Web-Eco-Système.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-01-27T16:20:56.000000Z", "updated_at": "2021-02-01T14:03:21.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_Site-Web-Eco-Système.png", "pivot": { "document_id": 10, "part_id": 11, "rank": 5 } }, { "id": 13, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Options-AUCUNE", "path": "app/public/docs/parts/quote/G001-inc_Options-AUCUNE.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-02-01T00:00:00.000000Z", "updated_at": "2021-02-01T14:03:36.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/G001-inc_Options-AUCUNE.png", "pivot": { "document_id": 10, "part_id": 13, "rank": 6 } } ] }
{ "structure": { "4": { "id": 9, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "SEO-friendly", "path": "app/public/docs/parts/quote/x001-opt_SEO-friendly.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-16T08:39:48.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_SEO-friendly.png" }, "5": { "id": 10, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Top-10-Arguments", "path": "app/public/docs/parts/quote/x001-opt_Top-10-Arguments.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T09:14:16.000000Z", "deleted_at": null, "status": "optional", "img_path": null }, "8": { "id": 24, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Contexte-Projet", "path": "app/public/docs/parts/quote/D001-inc_Contexte-Projet.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:19:43.000000Z", "updated_at": "2021-02-08T14:20:18.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/D001-inc_Contexte-Projet.png" }, "9": { "id": 25, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Planning", "path": "app/public/docs/parts/quote/E001-inc_planning.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:21:49.000000Z", "updated_at": "2021-02-08T14:22:15.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/E001-inc_planning.png" }, "10": { "id": 26, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Alertes-Cookies", "path": "app/public/docs/parts/quote/x001-opt_Alertes-Cookies.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:24:28.000000Z", "updated_at": "2021-02-09T08:43:56.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_Alertes-Cookies.png" }, "11": { "id": 27, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Programme-Maintenance", "path": "app/public/docs/parts/quote/x001-opt_Programme-Maintenance.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:25:50.000000Z", "updated_at": "2021-02-16T08:45:47.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_Programme-Maintenance.png" } }, "final_structure": [ { "id": 5, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Entête", "path": "app/public/docs/parts/quote/A001-inc_Entete.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:52:52.000000Z", "deleted_at": null, "status": "required", "img_path": "/storage/docs/parts/quote/A001-obg_Entete.png", "pivot": { "document_id": 10, "part_id": 5, "rank": 1 } }, { "id": 6, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Site-Responsive", "path": "app/public/docs/parts/quote/C001-inc_Site-Responsive.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T14:00:18.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/C001-inc_Site-Responsive.png", "pivot": { "document_id": 10, "part_id": 6, "rank": 2 } }, { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/F003-inc_Budgets-Alt1.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:59:55.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/F003-inc_Budgets-Alt1.png", "pivot": { "document_id": 10, "part_id": 7, "rank": 3 } }, { "id": 8, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Points-forts", "path": "app/public/docs/parts/quote/B001-inc_Points-forts.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-02T08:00:21.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/B001-inc_Points-forts.png", "pivot": { "document_id": 10, "part_id": 8, "rank": 4 } }, { "id": 11, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "Site-Web-Eco-Système", "path": "app/public/docs/parts/quote/x001-opt_Site-Web-Eco-Système.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-01-27T16:20:56.000000Z", "updated_at": "2021-02-01T14:03:21.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/x001-opt_Site-Web-Eco-Système.png", "pivot": { "document_id": 10, "part_id": 11, "rank": 5 } }, { "id": 13, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Options-AUCUNE", "path": "app/public/docs/parts/quote/G001-inc_Options-AUCUNE.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-02-01T00:00:00.000000Z", "updated_at": "2021-02-01T14:03:36.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/G001-inc_Options-AUCUNE.png", "pivot": { "document_id": 10, "part_id": 13, "rank": 6 } } ] }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document with id 1 doesn't exist" } }

Clients

API des clients

Créer un nouveau client

Paramètres:
name(oligatoire) nom du client
email (oligatoire) email du client
contacts contacts du client
Retour API:

Renvoi un objet client avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

Envoi Request
POST/api/v1/clients
Reponse

							
{ "message": "Client successfully created", "Client": { "name": "Syrine Mrad", "email": "syrine@gmail.com", "contacts": "25888414566", "updated_at": "2021-03-05T09:05:01.000000Z", "created_at": "2021-03-05T09:05:01.000000Z", "id": 47 } }
{ "message": "Client successfully created", "Client": { "name": "Syrine Mrad", "email": "syrine@gmail.com", "contacts": "25888414566", "updated_at": "2021-03-05T09:05:01.000000Z", "created_at": "2021-03-05T09:05:01.000000Z", "id": 47 } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The email has already been taken." } ] }

Mettre à jour un client

Paramètres:
id(oligatoire) ID du client
name nom du client
email email du client
contacts contacts du client
Retour API:

Renvoi un objet client avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

PUT/api/v1/clients
Reponse

							
{ "message": "Client successfully updated", "client": { "id": 47, "name": "Syrine Mrad", "email": "syrine@gmail.com", "contacts": "25888414566", "created_at": "2021-03-05T09:05:01.000000Z", "updated_at": "2021-03-05T09:05:01.000000Z", "deleted_at": null } }
{ "message": "Client successfully updated", "client": { "id": 47, "name": "Syrine Mrad", "email": "syrine@gmail.com", "contacts": "25888414566", "created_at": "2021-03-05T09:05:01.000000Z", "updated_at": "2021-03-05T09:05:01.000000Z", "deleted_at": null } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The email has already been taken." } ] }

Récupérer un client

Paramètres:
id(oligatoire) ID du client
Retour API:

Renvoi un objet client avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/clients/{id}
Reponse

							
{ "message": "client informations", "client": { "id": 47, "name": "Syrine Mrad", "email": "syrine@gmail.com", "contacts": "25888414566", "created_at": "2021-03-05T09:05:01.000000Z", "updated_at": "2021-03-05T09:05:01.000000Z", "deleted_at": null } }
{ "message": "client informations", "client": { "id": 47, "name": "Syrine Mrad", "email": "syrine@gmail.com", "contacts": "25888414566", "created_at": "2021-03-05T09:05:01.000000Z", "updated_at": "2021-03-05T09:05:01.000000Z", "deleted_at": null } }
{ "errors": { "message": "the client with id 1 doesn't exist" } }
{ "errors": { "message": "Authorization failed" } }

Récupérer tous les clients

Paramètres:
name Recherche par le nom du client
email Recherche par l'email du client
contacts Recherche par contacts du client
created_at Recherche par la date de création du client
updated_at Recherche par la date de mise à jour du client
sort Trier par des colonnes
offset Pagination par offset
limit Pagination par limit
fields Retourner seulement liste des données par fields
Retour API:

Renvoi un objet liste des clients avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/clients
Reponse

							
{ "message": "all clients", "clients": [ { "id": 33, "name": "Asma Ladhari", "email": "ldh.asma@yahoo.fr", "contacts": "23978514 \n ceci est un contact", "created_at": "2021-02-16T14:24:06.000000Z", "updated_at": "2021-02-16T14:24:59.000000Z", "deleted_at": null }, { "id": 32, "name": "Asmaaaaaaa Youssssfiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "email": "asmaa.ysf@domain.com", "contacts": null, "created_at": "2021-02-16T11:11:50.000000Z", "updated_at": "2021-02-17T14:13:33.000000Z", "deleted_at": null } ], "links": [ { "self": "/dcdc_clients", "next": "/dcdc_clients?page[offset]=4", "last": "/dcdc_clients?page[offset]=44", "total_data": 45 } ] }
{ "message": "all clients", "clients": [ { "id": 33, "name": "Asma Ladhari", "email": "ldh.asma@yahoo.fr", "contacts": "23978514 \n ceci est un contact", "created_at": "2021-02-16T14:24:06.000000Z", "updated_at": "2021-02-16T14:24:59.000000Z", "deleted_at": null }, { "id": 32, "name": "Asmaaaaaaa Youssssfiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "email": "asmaa.ysf@domain.com", "contacts": null, "created_at": "2021-02-16T11:11:50.000000Z", "updated_at": "2021-02-17T14:13:33.000000Z", "deleted_at": null } ], "links": [ { "self": "/dcdc_clients", "next": "/dcdc_clients?page[offset]=4", "last": "/dcdc_clients?page[offset]=44", "total_data": 45 } ] }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "The column title not found the table documents" } }
{ "errors": { "message": "The sort is invalid " } }

Supprimer un client

Paramètres:
id(oligatoire) ID du client
Retour API:

Renvoi un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

DELETE/api/v1/clients/{id}
Reponse

							
{ "message": "Client successfully deleted" }
{ "message": "Client successfully deleted" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the client with id 9 doesn't exist" } }

Produits

Le logiciel s’adresse à des utilisateurs souhaitant créer un document présentant un produit spécifiquement conçu pour leur client en choisissant dans leur catalogue des éléments qui répondent aux besoins de celui-ci.

Créer un produit

Paramètres:
title (oligatoire) Titre du produit
reference(oligatoire) Réfrence du produit
icon(oligatoire) icon du produit
description description du produit
Retour API:

Renvoi un objet produit avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

Envoi Request
POST/api/v1/products
Reponse

							
{ "message": "Product successfully created", "product": { "title": "site", "reference": "site002", "description": "site web agence", "updated_at": "2021-03-08T10:31:07.000000Z", "created_at": "2021-03-08T10:31:07.000000Z", "id": 4 } }
{ "message": "Product successfully created", "product": { "title": "site", "reference": "site002", "description": "site web agence", "updated_at": "2021-03-08T10:31:07.000000Z", "created_at": "2021-03-08T10:31:07.000000Z", "id": 4 } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The reference has already been taken." } ] }

Mettre à jour un produit

Paramètres:
id(oligatoire) ID du document
title Titre du produit
reference Réfrence du produit
icon icon du produit
description description du produit
Retour API:

Renvoi un objet produit avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

PUT/api/v1/products
Reponse

							
{ "message": "Product successfully updated", "product": { "id": 1, "title": "Site web", "reference": "produit01", "description": "Ensemble de pages Web reliées entre elles par des liens internes, visualisable depuis un navigateur Web.", "created_at": "2021-01-27T15:06:58.000000Z", "updated_at": "2021-02-12T13:16:43.000000Z", "deleted_at": null, "icon": "fa fa-laptop" } }
{ "message": "Product successfully updated", "product": { "id": 1, "title": "Site web", "reference": "produit01", "description": "Ensemble de pages Web reliées entre elles par des liens internes, visualisable depuis un navigateur Web.", "created_at": "2021-01-27T15:06:58.000000Z", "updated_at": "2021-02-12T13:16:43.000000Z", "deleted_at": null, "icon": "fa fa-laptop" } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The reference has already been taken." } ] }

Récupérer un produit

Paramètres:
id(oligatoire) ID du produit
Retour API:

Renvoi un objet produit avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/products/{id}
Reponse

              
{ "message": "product informations", "product": { "id": 1, "title": "Site web", "reference": "produit01", "description": "Ensemble de pages Web reliées entre elles par des liens internes, visualisable depuis un navigateur Web.", "created_at": "2021-01-27T15:06:58.000000Z", "updated_at": "2021-02-12T13:16:43.000000Z", "deleted_at": null, "icon": "fa fa-laptop" } }
{ "message": "product informations", "product": { "id": 1, "title": "Site web", "reference": "produit01", "description": "Ensemble de pages Web reliées entre elles par des liens internes, visualisable depuis un navigateur Web.", "created_at": "2021-01-27T15:06:58.000000Z", "updated_at": "2021-02-12T13:16:43.000000Z", "deleted_at": null, "icon": "fa fa-laptop" } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "there is no product with this id 13" } }

Récupérer tous les produits

Paramètres:
title Recherche par le titre du produit
icon Recherche par l'icone du produit
reference Recherche par la reférence du produit
created_at Recherche par la date de création du produit
updated_at Recherche par la date de mise à jour du produit
sort Trier par des colonnes
offset Pagination par offset
limit Pagination par limit
fields Retourner seulement liste des données par fields
Retour API:

Renvoi un objet liste des produits avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/products
Reponse

              
{ "message": "all products", "products": [ { "id": 3, "title": "Produit X", "reference": "produit03", "description": "ceci est un produit par défaut", "created_at": "2021-02-15T08:47:43.000000Z", "updated_at": "2021-02-15T08:47:43.000000Z", "deleted_at": null, "icon": null }, { "id": 4, "title": "site", "reference": "site002", "description": "site web agence", "created_at": "2021-03-08T10:31:07.000000Z", "updated_at": "2021-03-08T10:31:07.000000Z", "deleted_at": null, "icon": null } ], "links": [ { "self": "/products", "next": "/products?page[offset]=3", "last": "/products?page[offset]=3", "total_data": 4 } ] }
{ "message": "all products", "products": [ { "id": 3, "title": "Produit X", "reference": "produit03", "description": "ceci est un produit par défaut", "created_at": "2021-02-15T08:47:43.000000Z", "updated_at": "2021-02-15T08:47:43.000000Z", "deleted_at": null, "icon": null }, { "id": 4, "title": "site", "reference": "site002", "description": "site web agence", "created_at": "2021-03-08T10:31:07.000000Z", "updated_at": "2021-03-08T10:31:07.000000Z", "deleted_at": null, "icon": null } ], "links": [ { "self": "/products", "next": "/products?page[offset]=3", "last": "/products?page[offset]=3", "total_data": 4 } ] }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "The column title not found the table products" } }
{ "errors": { "message": "The sort is invalid " } }

Supprimer un produit

Paramètres:
id(oligatoire) ID du produit
Retour API:

Renvoi un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

DELETE/api/v1/products/{id}
Reponse

              
{ "message": "Product successfully deleted" }
{ "message": "Product successfully deleted" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the product with id 7 doesn't exist" } }

Parts

C’est un morceau de document composé de texte déjà mis en page et possiblement d’images intégrées dans la mise en page.

Créer une nouvelle brique

Paramètres:
title (oligatoire) Titre de brique
type (oligatoire) type de brique (treatment,description,argumentative)
function_name Nom de la fonction de traitement
status (oligatoire) status de brique (required,optional,included)
document_type_id (oligatoire) clé étrangère qui fait référence au champ id de la table document_types
part_category_id clé étrangère qui fait référence au champ id de la table part_categories
parent_id clé étrangère qui fait référence au parent d'une brique
component_id clé étrangère qui fait référence au champ id de la table components
Retour API:

Renvoie un objet part et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

Envoi Request
POST/api/v1/parts
Reponse

              
{ "message": "Part successfully created", "part": { "title": "entête", "component_id": null, "type": "description", "document_type_id": "1", "function_name": null, "parent_id": null, "status": "required", "updated_at": "2021-03-08T13:38:06.000000Z", "created_at": "2021-03-08T13:38:06.000000Z", "id": 37 } }
{ "message": "Part successfully created", "part": { "title": "entête", "component_id": null, "type": "description", "document_type_id": "1", "function_name": null, "parent_id": null, "status": "required", "updated_at": "2021-03-08T13:38:06.000000Z", "created_at": "2021-03-08T13:38:06.000000Z", "id": 37 } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The selected type is invalid." }, { "Message": "The selected status is invalid." } ] }
{ "errors": { "message": "there is no Document type with this id 545" } }

Mettre à jour une brique

Paramètres:
id(oligatoire) ID d'une brique
title Titre de brique
type type de brique (treatment,description,argumentative)
function_name Nom de la fonction de traitement
status status de brique (required,optional,included)
document_type_id clé étrangère qui fait référence au champ id de la table document_types
part_category_id clé étrangère qui fait référence au champ id de la table part_categories
parent_id clé étrangère qui fait référence au parent d'une brique
component_id clé étrangère qui fait référence au champ id de la table components
Retour API:

Renvoie un objet part et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

PUT/api/v1/parts
Reponse

              
{ "message": "Part successfully updated", "Part": { "id": 37, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "enteteDevis", "path": null, "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-03-08T13:38:06.000000Z", "updated_at": "2021-03-08T13:38:06.000000Z", "deleted_at": null, "status": "required", "img_path": null } }
{ "message": "Part successfully updated", "Part": { "id": 37, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "enteteDevis", "path": null, "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-03-08T13:38:06.000000Z", "updated_at": "2021-03-08T13:38:06.000000Z", "deleted_at": null, "status": "required", "img_path": null } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The selected status is invalid." } ] }
{ "errors": { "message": "there is no Document type with this id 545" } }

Récupérer une brique

Paramètres:
id(oligatoire) ID d'une brique
Retour API:

Renvoie un objet part et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/parts/{id}
Reponse

              
{ "message": "part informations", "Part": { "id": 37, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "enteteDevis", "path": null, "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-03-08T13:38:06.000000Z", "updated_at": "2021-03-08T13:38:06.000000Z", "deleted_at": null, "status": "required", "img_path": null, "componentLink": "/components/", "documentTypeLink": "/documentType/1", "partCategoriesLink": "/partCategories/37" } }
{ "message": "part informations", "Part": { "id": 37, "component_id": null, "part_category_id": null, "document_type_id": 1, "title": "enteteDevis", "path": null, "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-03-08T13:38:06.000000Z", "updated_at": "2021-03-08T13:38:06.000000Z", "deleted_at": null, "status": "required", "img_path": null, "componentLink": "/components/", "documentTypeLink": "/documentType/1", "partCategoriesLink": "/partCategories/37" } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "there is no part with this id 13" } }

Récupérer tous les briques

Paramètres:
title Recherche par le titre de brique
type Recherche par le type de brique
function_name Recherche par le nom de fonction de brique
status Recherche par status
parent_id Recherche par parent_id
component_id Recherche par component_id
created_at Recherche par la date de création d'une brique
updated_at Recherche par la date de mise à jour d'une brique
sort Trier par des colonnes
offset Pagination par offset
limit Pagination par limit
fields Retourner seulement liste des données par fields
Retour API:

Renvoie un objet liste des briques et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/parts
Reponse

              
{ "message": "all parts", "parts": [ { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/F003-inc_Budgets-Alt1.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:59:55.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/F003-inc_Budgets-Alt1.png", "componentLink": "/parts/7/components", "documentTypeLink": "/parts/7/documentType", "partCategoriesLink": "/parts/7/partCategories" }, { "id": 8, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Points-forts", "path": "app/public/docs/parts/quote/B001-inc_Points-forts.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-02T08:00:21.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/B001-inc_Points-forts.png", "componentLink": "/parts/8/components", "documentTypeLink": "/parts/8/documentType", "partCategoriesLink": "/parts/8/partCategories" } ] }
{ "message": "all parts", "parts": [ { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/F003-inc_Budgets-Alt1.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:59:55.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/F003-inc_Budgets-Alt1.png", "componentLink": "/parts/7/components", "documentTypeLink": "/parts/7/documentType", "partCategoriesLink": "/parts/7/partCategories" }, { "id": 8, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Points-forts", "path": "app/public/docs/parts/quote/B001-inc_Points-forts.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-02T08:00:21.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/B001-inc_Points-forts.png", "componentLink": "/parts/8/components", "documentTypeLink": "/parts/8/documentType", "partCategoriesLink": "/parts/8/partCategories" } ] }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "The column reference not found the table parts" } }
{ "errors": { "message": "The sort is invalid " } }

Supprimer une brique

Paramètres:
id(oligatoire) ID d'une brique
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

DELETE/api/v1/parts/{id}
Reponse

              
{ "message": "Part successfully deleted" }
{ "message": "Part successfully deleted" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the part with id 3 doesn't exist" } }

Récupérer une brique avec leurs catégories

Paramètres:
id(oligatoire) ID d'une brique
Retour API:

Renvoie un objet part avec leur catégories et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/parts/{id}/partCategories
Reponse

              
{ "message": "part informations with part categories", "Part": { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/F003-inc_Budgets-Alt1.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:59:55.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/F003-inc_Budgets-Alt1.png", "part_categories": [ { "id": 1, "name": "Catégorie_briques", "description": null, "is_admin": 0, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-01-27T00:00:00.000000Z", "deleted_at": null, "pivot": { "part_id": 7, "part_category_id": 1, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-01-27T00:00:00.000000Z" } } ] } }
{ "message": "part informations with part categories", "Part": { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/F003-inc_Budgets-Alt1.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:59:55.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/F003-inc_Budgets-Alt1.png", "part_categories": [ { "id": 1, "name": "Catégorie_briques", "description": null, "is_admin": 0, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-01-27T00:00:00.000000Z", "deleted_at": null, "pivot": { "part_id": 7, "part_category_id": 1, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-01-27T00:00:00.000000Z" } } ] } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the part with id 9 doesn't exist" } }

Télécharger le contenu d'une brique

Paramètres:
id(oligatoire) ID d'une brique
file(oligatoire) Fichier d'une brique de type docx,doc
Retour API:

Renvoie un objet part avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/parts/{id}/uploadFile
Reponse

              
{ "success": { "message": "File successfully Uploaded", " file": { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/A002-inc_planning.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-03-08T14:12:26.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/F003-inc_Budgets-Alt1.png" } } }
{ "message": "part informations with part categories", "Part": { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/F003-inc_Budgets-Alt1.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-02-01T13:59:55.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/F003-inc_Budgets-Alt1.png", "part_categories": [ { "id": 1, "name": "Catégorie_briques", "description": null, "is_admin": 0, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-01-27T00:00:00.000000Z", "deleted_at": null, "pivot": { "part_id": 7, "part_category_id": 1, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-01-27T00:00:00.000000Z" } } ] } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the part with id 9 doesn't exist" } }
{ "errors": [ { "Message": "The file must be a file of type: doc, docx." } ] }

Télécharger une image pour une brique

Paramètres:
id(oligatoire) ID d'une brique
file(oligatoire) Image d'une brique
Retour API:

Renvoie un objet part avec un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

POST/api/v1/parts/{id}/uploadImage
Reponse

              
{ "success": { "message": "Image successfully Uploaded", " part": { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/A002-inc_planning.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-03-08T14:14:01.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/B001-inc_Points-forts.png" } } }
{ "success": { "message": "Image successfully Uploaded", " part": { "id": 7, "component_id": null, "part_category_id": 1, "document_type_id": 1, "title": "Budgets-Alt1", "path": "app/public/docs/parts/quote/A002-inc_planning.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-01-27T00:00:00.000000Z", "updated_at": "2021-03-08T14:14:01.000000Z", "deleted_at": null, "status": "included", "img_path": "/storage/docs/parts/quote/B001-inc_Points-forts.png" } } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the part with id 9 doesn't exist" } }
{ "errors": [ { "Message": "The image must be an image." } ] }

Composants

Ce sont les éléments choisis pour composer le produit sur mesure que l’on souhaite proposer au client.

Créer un nouveau composant

Paramètres:
title (oligatoire) titre de composant
reference (oligatoire) reference de composant
description description de composant
product_id (oligatoire) clé étrangère qui fait référence au champ id de la table products
Retour API:

Renvoie un objet component et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

Envoi Request
POST/api/v1/components
Reponse

              
{ "message": "Component successfully created", "Component": { "title": "blog", "reference": "blog002", "product_id": "1", "updated_at": "2021-03-08T14:31:57.000000Z", "created_at": "2021-03-08T14:31:57.000000Z", "id": 12 } }
{ "message": "Component successfully created", "Component": { "title": "blog", "reference": "blog002", "product_id": "1", "updated_at": "2021-03-08T14:31:57.000000Z", "created_at": "2021-03-08T14:31:57.000000Z", "id": 12 } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The reference has already been taken." } ] }

Mettre à jour un composant

Paramètres:
id(oligatoire) ID de composant
title titre de composant
reference reference de composant
description description de composant
product_id clé étrangère qui fait référence au champ id de la table products
Retour API:

Renvoie un objet component et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

PUT/api/v1/components
Reponse

              
{ "message": "Component successfully updated", "Component": { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null } }
{ "message": "Component successfully updated", "Component": { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the component with id 98 doesn't exist" } }
{ "errors": [ { "Message": "The reference has already been taken." } ] }

Récupérer un composant

Paramètres:
id(oligatoire) ID de composant
Retour API:

Renvoie un objet component et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/components/{id}
Reponse

              
{ "message": "component informations", "Component": { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null, "parts": [ { "id": 14, "component_id": 1, "part_category_id": 1, "document_type_id": 1, "title": "Core-CMS", "path": "app/public/docs/parts/quote/000-devisC_pres-courte-devis.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-02T00:00:00.000000Z", "updated_at": "2021-02-01T23:08:23.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/000-devisL_pres-longue-devis.png" } ] } }
{ "message": "component informations", "Component": { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null, "parts": [ { "id": 14, "component_id": 1, "part_category_id": 1, "document_type_id": 1, "title": "Core-CMS", "path": "app/public/docs/parts/quote/000-devisC_pres-courte-devis.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-02T00:00:00.000000Z", "updated_at": "2021-02-01T23:08:23.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/000-devisL_pres-longue-devis.png" } ] } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the component with id 9 doesn't exist" } }

Récupérer tous les composants

Paramètres:
title Recherche par le titre du composant
icon Recherche par l'icone du composant
reference Recherche par la reference du composant
created_at Recherche par la date de création du composant
updated_at Recherche par la date de mise à jour du composant
sort Trier par des colonnes
offset Pagination par offset
limit Pagination par limit
fields Retourner seulement liste des données par fields
Retour API:

Renvoie un objet liste des composants et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/components
Reponse

              
{ "message": "all components", "components": [ { "id": 4, "product_id": 1, "title": "Contacts", "reference": "Contact004", "description": null, "created_at": "2021-01-27T15:17:11.000000Z", "updated_at": "2021-01-27T15:17:11.000000Z", "deleted_at": null, "parts": [ { "id": 17, "component_id": 4, "part_category_id": 1, "document_type_id": 1, "title": "Contacts", "path": "app/public/docs/parts/quote/004-devisC_pres-courte-devis.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-02T00:00:00.000000Z", "updated_at": "2021-02-08T14:32:37.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/004-devisL_pres-courte-devis.png" }, { "id": 29, "component_id": 4, "part_category_id": null, "document_type_id": 1, "title": "Module-Présentation détaillée : Contacts", "path": "app/public/docs/parts/quote/004-devisL_pres-courte-devis.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:31:15.000000Z", "updated_at": "2021-02-08T14:32:05.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/004-devisL_pres-courte-devis.png" } ] }, { "id": 5, "product_id": 1, "title": "FAQ", "reference": "FAQ005", "description": null, "created_at": "2021-01-27T15:17:29.000000Z", "updated_at": "2021-01-27T15:17:29.000000Z", "deleted_at": null, "parts": [ { "id": 18, "component_id": 5, "part_category_id": 1, "document_type_id": 1, "title": "FAQ", "path": "app/public/docs/parts/quote/008-devisC_pres-courte-devis.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-02-02T00:00:00.000000Z", "updated_at": "2021-02-08T14:35:07.000000Z", "deleted_at": null, "status": "optional", "img_path": null }, { "id": 30, "component_id": 5, "part_category_id": null, "document_type_id": 1, "title": "Module-Présentation détaillée : FAQ", "path": "app/public/docs/parts/quote/008-devisL_Focus-FAQ.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:35:53.000000Z", "updated_at": "2021-02-08T14:36:23.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/008-devisL_Focus-FAQ.png" } ] } ], "links": [ { "self": "/components", "next": "/components?page[offset]=3", "last": "/components?page[offset]=9", "total_data": 10 } ] }
{ "message": "all components", "components": [ { "id": 4, "product_id": 1, "title": "Contacts", "reference": "Contact004", "description": null, "created_at": "2021-01-27T15:17:11.000000Z", "updated_at": "2021-01-27T15:17:11.000000Z", "deleted_at": null, "parts": [ { "id": 17, "component_id": 4, "part_category_id": 1, "document_type_id": 1, "title": "Contacts", "path": "app/public/docs/parts/quote/004-devisC_pres-courte-devis.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-02T00:00:00.000000Z", "updated_at": "2021-02-08T14:32:37.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/004-devisL_pres-courte-devis.png" }, { "id": 29, "component_id": 4, "part_category_id": null, "document_type_id": 1, "title": "Module-Présentation détaillée : Contacts", "path": "app/public/docs/parts/quote/004-devisL_pres-courte-devis.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:31:15.000000Z", "updated_at": "2021-02-08T14:32:05.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/004-devisL_pres-courte-devis.png" } ] }, { "id": 5, "product_id": 1, "title": "FAQ", "reference": "FAQ005", "description": null, "created_at": "2021-01-27T15:17:29.000000Z", "updated_at": "2021-01-27T15:17:29.000000Z", "deleted_at": null, "parts": [ { "id": 18, "component_id": 5, "part_category_id": 1, "document_type_id": 1, "title": "FAQ", "path": "app/public/docs/parts/quote/008-devisC_pres-courte-devis.docx", "type": "description", "function_name": null, "parent_id": null, "created_at": "2021-02-02T00:00:00.000000Z", "updated_at": "2021-02-08T14:35:07.000000Z", "deleted_at": null, "status": "optional", "img_path": null }, { "id": 30, "component_id": 5, "part_category_id": null, "document_type_id": 1, "title": "Module-Présentation détaillée : FAQ", "path": "app/public/docs/parts/quote/008-devisL_Focus-FAQ.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-08T14:35:53.000000Z", "updated_at": "2021-02-08T14:36:23.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/008-devisL_Focus-FAQ.png" } ] } ], "links": [ { "self": "/components", "next": "/components?page[offset]=3", "last": "/components?page[offset]=9", "total_data": 10 } ] }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "The column component not found the table parts" } }
{ "errors": { "message": "The sort is invalid " } }

Supprimer un composant

Paramètres:
id(oligatoire) ID de composant
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

DELETE/api/v1/components/{id}
Reponse

              
{ "message": "Component successfully deleted" }
{ "message": "Component successfully deleted" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the component with id 3 doesn't exist" } }

Récupérer un composant

Paramètres:
id(oligatoire) ID de composant
Retour API:

Renvoie un objet component et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/components/{id}
Reponse

              
{ "message": "component informations", "Component": { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null, "parts": [ { "id": 14, "component_id": 1, "part_category_id": 1, "document_type_id": 1, "title": "Core-CMS", "path": "app/public/docs/parts/quote/000-devisC_pres-courte-devis.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-02T00:00:00.000000Z", "updated_at": "2021-02-01T23:08:23.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/000-devisL_pres-longue-devis.png" } ] } }
{ "message": "component informations", "Component": { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null, "parts": [ { "id": 14, "component_id": 1, "part_category_id": 1, "document_type_id": 1, "title": "Core-CMS", "path": "app/public/docs/parts/quote/000-devisC_pres-courte-devis.docx", "type": "argumentative", "function_name": null, "parent_id": null, "created_at": "2021-02-02T00:00:00.000000Z", "updated_at": "2021-02-01T23:08:23.000000Z", "deleted_at": null, "status": "optional", "img_path": "/storage/docs/parts/quote/000-devisL_pres-longue-devis.png" } ] } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the component with id 3 doesn't exist" } }

Récupérer un composant avec leur catégories

Paramètres:
id(oligatoire) ID de composant
Retour API:

Renvoie un objet component avec ces catégories et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/components/{id}/componentCategories
Reponse

              
{ "message": "component informations with component categories", "Component": { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null, "component_categories": [ { "id": 2, "name": "category-component2", "description": "jhjh", "is_admin": 0, "created_at": "2021-02-19T09:06:31.000000Z", "updated_at": "2021-02-19T09:06:31.000000Z", "deleted_at": null, "pivot": { "component_id": 1, "component_category_id": 2, "created_at": "2021-02-19T10:34:22.000000Z", "updated_at": "2021-02-19T10:34:22.000000Z" } } ] }
{ "message": "component informations with component categories", "Component": { "id": 1, "product_id": 1, "title": "Core-CMS", "reference": "CMS001", "description": null, "created_at": "2021-01-27T15:16:02.000000Z", "updated_at": "2021-01-27T15:16:02.000000Z", "deleted_at": null, "component_categories": [ { "id": 2, "name": "category-component2", "description": "jhjh", "is_admin": 0, "created_at": "2021-02-19T09:06:31.000000Z", "updated_at": "2021-02-19T09:06:31.000000Z", "deleted_at": null, "pivot": { "component_id": 1, "component_category_id": 2, "created_at": "2021-02-19T10:34:22.000000Z", "updated_at": "2021-02-19T10:34:22.000000Z" } } ] }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the component with id 3 doesn't exist" } }

Type de documents

Les types de documents qui seront gérés par l’application (propositions, documents de cadrage, ..)

Créer un nouveau type de document

Paramètres:
name(oligatoire) nom de type de document
parent_id le parent de type de document
prefix_ref(oligatoire) prefix de référence pour le type de document
is_primary_type is_primary_type de type de document
Retour API:

Renvoie un objet document type et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

Envoi Request
POST/api/v1/documentTypes
Reponse

                            
{ "message": "Document type successfully created", "Document type": { "name": "quote", "title": "quote", "prefix_ref": "PR", "is_primary_type": "1", "updated_at": "2021-03-08T15:05:10.000000Z", "created_at": "2021-03-08T15:05:10.000000Z", "id": 3 } }
{ "message": "Document type successfully created", "Document type": { "name": "quote", "title": "quote", "prefix_ref": "PR", "is_primary_type": "1", "updated_at": "2021-03-08T15:05:10.000000Z", "created_at": "2021-03-08T15:05:10.000000Z", "id": 3 } }
{ "errors": { "message": "the parent with id 89 doesn't exist" } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": [ { "Message": "The parent id must be an integer." } ] }

Mettre à jour un type de document

Paramètres:
id(oligatoire) ID du client
name nom de type de document
parent_id le parent de type de document
prefix_ref prefix de référence pour le type de document
is_primary_type is_primary_type de type de document
Retour API:

Renvoie un objet document type et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

PUT/api/v1/documentTypes
Reponse

                            
{ { "message": "Document type successfully updated", "Document type": { "id": 1, "name": "quote", "title": "quote", "prefix_ref": "PR", "parent_id": null, "is_primary_type": 1, "created_at": "2021-01-27T15:16:37.000000Z", "updated_at": "2021-01-27T15:16:37.000000Z", "deleted_at": null } }
{ { "message": "Document type successfully updated", "Document type": { "id": 1, "name": "quote", "title": "quote", "prefix_ref": "PR", "parent_id": null, "is_primary_type": 1, "created_at": "2021-01-27T15:16:37.000000Z", "updated_at": "2021-01-27T15:16:37.000000Z", "deleted_at": null } }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the parent with id 89 doesn't exist" } }
{ "errors": [ { "Message": "The parent id must be an integer." } ] }

Récupérer un type de document

Paramètres:
id(oligatoire) ID de type de document
Retour API:

Renvoie un objet document type et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/documentTypes/{id}
Reponse

                            
{ "message": "document type informations", "document type": { "id": 2, "name": "specification", "title": "specification", "prefix_ref": "CDC", "parent_id": 1, "is_primary_type": 0, "created_at": "2021-01-27T15:16:56.000000Z", "updated_at": "2021-01-27T15:16:56.000000Z", "deleted_at": null } }
{ "message": "document type informations", "document type": { "id": 2, "name": "specification", "title": "specification", "prefix_ref": "CDC", "parent_id": 1, "is_primary_type": 0, "created_at": "2021-01-27T15:16:56.000000Z", "updated_at": "2021-01-27T15:16:56.000000Z", "deleted_at": null } }
{ "errors": { "message": "the document type with id 1 doesn't exist" } }
{ "errors": { "message": "Authorization failed" } }

Récupérer tous les types des documents

Paramètres:
name Recherche par le nom de type de document
title Recherche par le titre de type de document
parent_id Recherche par le parent de type de document
is_primary_type Recherche par is_primary_type de type de document
created_at Recherche par la date de création de type de document
updated_at Recherche par la date de mise à jour de type de document
sort Trier par des colonnes
offset Pagination par offset
limit Pagination par limit
fields Retourner seulement liste des données par fields
Retour API:

Renvoie un objet liste des types de documents et un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

GET/api/v1/documentTypes
Reponse

                            
{ "message": "all document types", "document types": [ { "id": 1, "name": "quote", "title": "quote", "prefix_ref": "PR", "parent_id": null, "is_primary_type": 1, "created_at": "2021-01-27T15:16:37.000000Z", "updated_at": "2021-01-27T15:16:37.000000Z", "deleted_at": null }, { "id": 2, "name": "specification", "title": "specification", "prefix_ref": "CDC", "parent_id": 1, "is_primary_type": 0, "created_at": "2021-01-27T15:16:56.000000Z", "updated_at": "2021-01-27T15:16:56.000000Z", "deleted_at": null } ] }
{ "message": "all document types", "document types": [ { "id": 1, "name": "quote", "title": "quote", "prefix_ref": "PR", "parent_id": null, "is_primary_type": 1, "created_at": "2021-01-27T15:16:37.000000Z", "updated_at": "2021-01-27T15:16:37.000000Z", "deleted_at": null }, { "id": 2, "name": "specification", "title": "specification", "prefix_ref": "CDC", "parent_id": 1, "is_primary_type": 0, "created_at": "2021-01-27T15:16:56.000000Z", "updated_at": "2021-01-27T15:16:56.000000Z", "deleted_at": null } ] }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "The column reference not found the table documents" } }
{ "errors": { "message": "The sort is invalid " } }

Supprimer un type de document

Paramètres:
id(oligatoire) ID de type de document
Retour API:

Renvoie un message si l'appel a réussi avec un statut du succès.
Renvoie un objet errors et un message si l'appel a réussi avec un statut d'erreur.

DELETE/api/v1/documentTypes/{id}
Reponse

                            
{ "message": "Document type successfully deleted" }
{ "message": "Document type successfully deleted" }
{ "errors": { "message": "Authorization failed" } }
{ "errors": { "message": "the document type with id 1 doesn't exist" } }