Skip to content
Snippets Groups Projects
Commit a60c2f43 authored by mhdaltaweel's avatar mhdaltaweel
Browse files

createDoc database

parent ca2c7e91
No related branches found
No related tags found
1 merge request!2Doc
......@@ -37,18 +37,53 @@ class Database{
console.log("Collections créées !");
}
// stockage des References _id doc
async createDocument(userId, documentData) {
const document = {
...documentData,
auteur: userId, // Ici, userId est l'_id de l'utilisateur dans la collection 'users'
};
const result = await this.insert('documents', document);
return result.insertedId; // Retourne l'ID du nouveau document créé
}
//Recuperer les DOnnees liees de doc
async getDocumentWithAuthor(documentId) {
const document = await this.find('documents', { _id: new this.#client.ObjectId(documentId) });
if(!document) throw new Error("Document n'est pas trouve");
const user = await this.findOne('users', { _id: new this.#client.ObjectId(document.auteur) });
if(!user) throw new Error("Auteur n'est pas trouve");
return {
...document,
auteur: user
};
}
// Gestion des Collections
async createPartage(userId, documentId) {
await this.insert('partage', { userId, documentId });
}
async insert(collection, data){
await this.#db.collection(collection).insertOne(data);
const result = await this.#db.collection(collection).insertOne(data);
return result.insertedId; // Retourne l'ID du document inséré
}
async insertMany(collection, data){
await this.#db.collection(collection).insertMany(data);
const result = await this.#db.collection(collection).insertMany(data);
return result.insertedId; // Retourne l'ID du document inséré
}
async find(collection, query){
return await this.#db.collection(collection).find(query).toArray();
}
async findOne(collection, query) {
return await this.#db.collection(collection).findOne(query);
}
}
db = new Database("mongodb://127.0.0.1:27017/test?retryWrites=true&w=majority");
......
......@@ -19,6 +19,16 @@ class Document extends Component{
//TODO: historique des commandes
}
async create(db) {
try {
const documentData = this.toJSON();
this.#id = await db.createDocument(this.#auteur, documentData);
} catch (e) {
console.error('Échec de la création du document:', e);
throw e; // Renvoie l'erreur pour une gestion plus haut dans la pile d'appels.
}
}
//ajoute une feuille à la liste des feuilles
addFeuille(feuille){
this.#feuilles.push(feuille);
......@@ -58,7 +68,7 @@ class Document extends Component{
this.#feuilles.forEach(feuille => feuillesJSON.push(feuille.toJSON()));
return {
id: this.#id,
//id: this.#id, // pas besoin un ID là car mongodb gere ça tous seul
nom: super.getNom(),
auteur: this.#auteur,
feuilles: feuillesJSON,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment