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
JavaScript
"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