[Developpement] Create service for google sheet API
edouardglx opened this issue · comments
Description 📚 :
Mettre à disposition un endpoint get /training qui retourne un tableau d'objets contenant les trainings
Règles de gestions 📏 :
"Les utilisateurs authentifiés peuvent lire le contenu d'une feuille Excel spécifique via l'API Google Sheets en utilisant une requête GET sur le chemin /training. Les données doivent être renvoyées dans un tableau d'objets avec les informations requises."
Critères d'acceptations :
Scenario1, réponse complete (200) :
Quand l'utilisateur envoi une requête sur la date suivante 01/06/23.
Alors l'API renvoi un tableau d'objets avec un status 200.
réponse attendu :
[
{
trainingTitle : Docker Officielle : CN100 - Docker Containerization Essentials,
universe : Cloud, DevOps,
duration : 1,
price : 950€,
link : https://training.zenika.com/fr-fr/training/docker-containerization-essentials/description,
date : 01/06/2023,
},
{
trainingTitle : Sensibilisation au Software Craftsmanship,
universe : Craftsmanship,
duration : 2,
price : 1 530€,
link : https://training.zenika.com/fr-fr/training/sensibilisation-software-craftsmanship/description,
date : 01/06/2023
},
etc ...
]
Scenario 2, données manquantes (206) :
Quand l'utilisateur envoi une requête sur la date suivante 01/06/23 mais que le service renvoie des données manquantes.
Alors l'API renvoi deux tableaux, un contenant les lignes excel des formations manquantes et un tableau d'objets avec l'ensemble des informations. La réponse sera envoyéavec status 206 (Warning!).
réponse attendu :
exemple array[0].universe ==> universe : undefined
[
[
{
trainingTitle : Docker Officielle : CN100 - Docker Containerization Essentials,
universe : undefined,
duration : 1,
price : 950€,
link : https://training.zenika.com/fr-fr/training/docker-containerization-essentials/description,
date : 01/06/2023,
},
{
trainingTitle : Sensibilisation au Software Craftsmanship,
universe : Craftsmanship,
duration : 2,
price : 1 530€,
link : https://training.zenika.com/fr-fr/training/sensibilisation-software-craftsmanship/description,
date : 01/06/2023
}
],
[
12
],
]
Scenario 3, Bad request (400) :
Quand l'utilisateur envoi une requête GET mais que les données transmises ne sont pas bonnes
Alors l'API renvoi un objet avec message d'erreur et un status 400.
exemple de message ci-dessous :
{
status : 400,
message : Données transmises non conforme à votre demande.
}
Scenario 4, non autorisé (401) :
Quand l'utilisateur envoi une requête GET mais que l'authentification au près de google ne s'effectue pas
Alors l'API renvoi un objet avec message d'erreur et un status 401.
exemple de message ci-dessous :
{
status : 401,
message : Vous n'êtes pas autorisés à effectuer cette recherche. Veuillez contacter le service support.
}
Scenario 5, ressource introuvable (404) :
Quand l'utilisateur envoi une requête pour une date non existante.
Alors l'API renvoi un objet avec message d'erreur et un status 404.
exemple de message ci-dessous :
{
status : 404,
message : les formations pour les dates recherchées n'existent pas.
}
Informations techniques 💾 :
Endpoint : .get /training
params : startDate : 01-06-23 / endDate : 30-06-23
API : googleSheet
lancement application
npm run dev
Notes 📘 :
contact : edouard.gloux@zenika.com