Skip to content
📖

Plantons notre premier document 🌱

Maintenant que notre collection est créée et accessible depuis l'AppVenture, le terrain est prêt, nous pouvons planter nos premiers documents ⛏️

Dans le module Database de l’AppVenture, vous pouvez voir un formulaire de création de destination, qui va vous permettre d'entrer les précieuses coordonnées qui nous mèneront au fabuleux trésor ! 💰 Actuellement, le formulaire ne fonctionne pas, c'est à vous de le compléter pour pouvoir ajouter votre première destination.

Pour ce faire, rendez-vous dans le fichier src/workshop/api/modules/database/coordinates.ts, où vous pourrez trouver la fonction createCoordinates qui est appelée à la soumission du formulaire. À vous de la compléter en faisant appel au SDK Appwrite pour vous connecter à la base de données, et créer un document avec les informations contenues dans le formulaire !

🆔 Génération d'un identifiant unique

Lorsque vous interagissez avec Appwrite lors d'une création de donnée quelconque, il est nécessaire que votre donnée possède un identifiant unique. Pour cela, Appwrite vous fournit une fonction ID.unique() qui vous permet de générer un identifiant unique à chaque appel. Vous pouvez ensuite utiliser cet identifiant pour créer votre donnée !

INFO

Vous pouvez utiliser EnvConfig pour accéder aux variables qui sont dans le fichier .env.local

Solution ✅
ts
import { ID } from 'appwrite'; 
import { database } from '../../config/client.config'; 
import { EnvConfig } from '../../config/env.config'; 

export const createCoordinates = async (coordinatesData: Coordinate): Promise<Coordinates> => {
  try {
    return await database.createDocument<Coordinates>( 
      EnvConfig.databaseId, 
      EnvConfig.coordinatesCollectionId, 
      ID.unique(), 
      coordinatesData, 
    ); 
  } catch (error: any) {
    throw new AppwriteException(error);
  }
};
import { ID } from 'appwrite'; 
import { database } from '../../config/client.config'; 
import { EnvConfig } from '../../config/env.config'; 

export const createCoordinates = async (coordinatesData: Coordinate): Promise<Coordinates> => {
  try {
    return await database.createDocument<Coordinates>( 
      EnvConfig.databaseId, 
      EnvConfig.coordinatesCollectionId, 
      ID.unique(), 
      coordinatesData, 
    ); 
  } catch (error: any) {
    throw new AppwriteException(error);
  }
};

INFO

Pour l'utilisateur de TypeScript, Appwrite met à disposition du type permettant de plus facilement typer nos data dans notre application ! Vous pouvez aller voir le type Coordinates pour voir la manière dont il est fait.

Une fois le développement de votre fonction terminé, vous devriez pouvoir créer une nouvelle coordonnée en base avec le formulaire ! Cependant, elle n'apparaît pas sur l'interface ... Continuons notre avancée dans cette énorme forêt pour trouver une solution à ce problème.

Released under the MIT License.