Natchii59 / ozepi

Mobile application to manage your expenses (Epitech Project)
1 stars 0 forks source link

Feature: ajout des wallets #18

Closed Natchii59 closed 3 months ago

Natchii59 commented 3 months ago

J'ai bien ajouté le système de wallets comme demandé à l'issue #6

Il est donc possible de créer plusieurs wallet pour un utilisateur. Il est obligatoire d'être connecté pour effectuer des actions sur des wallets. Les actions peuvent être effectué que sur nos propres wallets, et pareil pour les visualiser. Lors de la création il faut renseigner le nom et la devise du wallet. La valeur est optionnelle, si elle n'est pas renseigné, elle est à 0 par défaut (direct en base de données). On peut update ses wallets, mais uniquement le nom.

Il est aussi possible de récupérer ses wallets, sois via la query wallet qui demande l'id du wallet, sois via wallets qui renvoie une système de pagination. Pour la pagination il est possible de filtrer un maximum la recherche des wallets via des arguments/inputs. Il renvoie 2 champs nodes et totalCount. Ils sont indépendants, ce qui veut dire que si je mets que le champ totalCount il ne va pas aller fetch les données des wallets et donc faire juste un count en base de données. Cela permet de gagner en performance si l'utilisateur a plusieurs wallets. Cette base de CRUD va être très utile pour la suite, car j'ai créer un fichier prisma.dto.ts dans le module common, qui va être utilisé dans tous les systèmes de pagination. Pour la création d'autres CRUD, celui-ci peut être une source d'inspiration pour aider.

Je compte sur vous pour tester cette branche en local avant de confirmer la review de code, pour que vous ayez compris le code et le fonctionnement. Si vous avez des questions: Discord ou commentaire dans cette PR.

[!NOTE] Une nouvelle migration a été ajouté à prisma. Faire attention à migrer avant de faire des tests.

Code-Barru commented 3 months ago

Pourquoi wallets et wallet ? En graphQL tu peux pas changer ta query en fonction de si il y a un id ou pas ?

Natchii59 commented 3 months ago

Pourquoi wallets et wallet ? En graphQL tu peux pas changer ta query en fonction de si il y a un id ou pas ?

@Code-Barru les queries/mutations sont liés à un schema GraphQL (qui est généré avec Nestjs). Donc tu peux pas avoir des queries "dynamiques", c'est à dire qui change de type de retour en fonction des arguments. C'est pour ça que wallet permet de récupérer un wallet via un id, et wallets renvoient plusieurs wallets via les nodes ou totalCount.