UNPKG

e-commercee

Version:

This package contains a backend of what would be the logic of a e-commercee software, the architecture used is made in 3 layers

177 lines 7.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DArticle = void 0; const Article_1 = require("../../shared/entity/Article"); const dataexception_1 = require("../../shared/exceptions/dataexception"); const Conection_1 = require("../Conection"); class DArticle { constructor() { } static getInstance() { if (!DArticle.instancia) { DArticle.instancia = new DArticle(); } return DArticle.instancia; } async addArticle(dtart) { try { let cn = await Conection_1.Conexion.uri().connect(); const collection = cn.db("ECommerce").collection("Article"); const result = await collection.insertOne(dtart); cn.close(); } catch (e) { throw new dataexception_1.DataException("Article could not be added" + e.message); } } async getArticle(barcode) { let artobj = null; try { let cn = await Conection_1.Conexion.uri().connect(); const collection = cn.db("ECommerce").collection("Article"); const article = await collection.findOne({ _barcode: barcode }); if (article == null) { return null; } artobj = new Article_1.Article(article._barcode, article._name, article._price, article._stock, article._description, article._img, article._category); return artobj; cn.close(); } catch (e) { throw new dataexception_1.DataException("Article could not be searched"); } } async updateArticle(dtart) { try { let cn = await Conection_1.Conexion.uri().connect(); let query = { _barcode: dtart.barcode }; var newvalues = { $set: { _name: dtart.name, _price: dtart.price, _img: dtart.img, _category: dtart.category, _description: dtart.description } }; const coladvert = cn.db("ECommerce").collection("Article"); const result = await coladvert.updateOne(query, newvalues); cn.close(); } catch (e) { throw new dataexception_1.DataException("Article could not be updated" + e.message); } } async deleteArticle(dtart) { try { let cn = await Conection_1.Conexion.uri().connect(); let query = { _barcode: dtart.barcode }; const colcat = cn.db("ECommerce").collection("Article"); const result = await colcat.deleteOne(query); cn.close(); } catch (e) { throw new dataexception_1.DataException("Article could not be deleted" + e.message); } } async updateStock(dtart) { try { let cn = await Conection_1.Conexion.uri().connect(); let query = { _barcode: dtart.barcode }; var newvalues = { $set: { _stock: dtart.stock } }; const coladvert = cn.db("ECommerce").collection("Article"); const result = await coladvert.updateOne(query, newvalues); cn.close(); } catch (e) { throw new dataexception_1.DataException("Article could not be updated" + e.message); } } //****************************************** */ async getArticlesByNameLetter(expression) { try { var cn = await Conection_1.Conexion.uri().connect(); var query = { _name: { $regex: expression } }; const collection = cn.db("ECommerce").collection("Article"); const result = await collection.find(query).toArray(); let array = []; for (var article of result) { var artobj = new Article_1.Article(article._barcode, article._name, article._price, article._stock, article._description, article._img, article._category); array.push(artobj); } return array; cn.close(); } catch (e) { throw new dataexception_1.DataException("Articles could not be listed" + e.message); } } async getArticles() { try { let cn = await Conection_1.Conexion.uri().connect(); const collection = cn.db("ECommerce").collection("Article"); const result = await collection.find({}).toArray(); let array = []; for (var article of result) { var artobj = new Article_1.Article(article._barcode, article._name, article._price, article._stock, article._description, article._img, article._category); array.push(artobj); } return array; cn.close(); } catch (e) { throw new dataexception_1.DataException("Articles could not be listed" + e.message); } } async orderArticlesbyPrice() { try { let cn = await Conection_1.Conexion.uri().connect(); const collection = cn.db("ECommerce").collection("Article"); const result = await collection.find({}).sort({ _price: 1 }).toArray(); let array = []; for (var article of result) { var artobj = new Article_1.Article(article._barcode, article._name, article._price, article._stock, article._description, article._img, article._category); array.push(artobj); } return array; cn.close(); } catch (e) { throw new dataexception_1.DataException("Articles could not be listed" + e.message); } } async orderArticlesbyCategory() { try { let cn = await Conection_1.Conexion.uri().connect(); const collection = cn.db("ECommerce").collection("Article"); const result = await collection.find({}).sort({ _category: 1 }).toArray(); let array = []; for (var article of result) { var artobj = new Article_1.Article(article._barcode, article._name, article._price, article._stock, article._description, article._img, article._category); array.push(artobj); } return array; cn.close(); } catch (e) { throw new dataexception_1.DataException("Articles could not be listed" + e.message); } } async filterArticlesbyCategory(namecategory) { try { let cn = await Conection_1.Conexion.uri().connect(); const collection = cn.db("ECommerce").collection("Article"); const result = await collection.find({ "_category._name": namecategory }).toArray(); let array = []; for (var article of result) { var artobj = new Article_1.Article(article._barcode, article._name, article._price, article._stock, article._description, article._img, article._category); array.push(artobj); } return array; cn.close(); } catch (e) { throw new dataexception_1.DataException("Articles could not be listed" + e.message); } } } exports.DArticle = DArticle; //# sourceMappingURL=DArticle.js.map