Le test consiste a mettre en place une API graphQL pour créer, lister et mettre à jour des équipements.
Pour réaliser ce test vous devez avoir docker d’installer (pour l’environnement de dev).
Le projet tourne avec Docker. C’est un outil qui permet de faire tourner des projets sur des micros VM appelés container. Le framework NestJS est utilisé avec le plug-in apollo-server pour gérer le graphQL.
Le projet suit une structure simple dont voici les éléments importants
Ce dossier contient un fichier api.dev.env qui contient les variables d’environment utilisé par le projet en mode développement.
Ce dossier contient les schémas graphQL utilisés par le projet. Une des tâches du projet consiste à construire les schémas.
Ce dossier est utilisé pour la configuration de l’ORM prisma utilisé pour dialoguer avec la base de données. Il contient les migrations qui permettent de générer la structure de la base et le schéma de cette dernière.
Ce dossier continent les sources du projet.
Ce dossier contient les tests 2e2. Ils ne sont pas nécessaires à la réalisation du projet.
Docker permet d’avoir un environnement de développement propre en utilisant des micros VM appelés containers. Dans le répertoire racine de ce repository, vous trouverez un fichier Dockerfile qui permet de build / run l’API. Vous trouverez aussi un fichier docker-compose.yml
qui permet de mettre en relation le container de la bdd et celui de l’api
Pour mettre en place l’environnement de développement, il suffit d’executer la commande docker-compose up
.
Une fois les containers lancé. Il faut créer la structure du projet. Pour ce faire, il faut ce connecter au container de l’api via la commande docker exec -it testbe-api-1 sh
. Puis il faut exécuter la commande de migration prisma npx prisma migrate dev
.
Ça y est, vous êtes prêt à développer
L’exercice consiste à créer une petite API d’équipement.
Créer une mutation pour créer un équipement. Un équipement a un id, un nom, un manufacturer, sa consommation kwh et son cout.
En base de données, il existe une relation one to many entre les manufacturer est les équipements. Un manufacturer peut donc avoir plusieurs équipements mais un équipement ne peut avoir qu’un manufacturer.
Créer une mutation pour mettre à jour un équipement. La mise à jour permet de modifier le kwh, le cout et le nom de l’équipement, mais pas le manufacturer ni l’id de d’équipement.
Cette query permet de récupérer l’ensemble des équipements présent dans la base de données.
Cette query permet de récupérer un équipement en fonction de son ID
Pour toutes questions vis-à-vis de ce test. Vous pouvez contacter le CTO de beeldi (guillaume@beeldi.com).