96 lines
2.1 KiB
JavaScript
96 lines
2.1 KiB
JavaScript
const { Entity } = require('./entity');
|
|
const {Product} = require('./product');
|
|
|
|
class Website {
|
|
|
|
/**
|
|
* @param {Object} details
|
|
*/
|
|
constructor(companyName){
|
|
this.firstName = '';
|
|
this.lastName = '';
|
|
this.companyName = companyName;
|
|
this.logo = '';
|
|
this.banner = '';
|
|
this.logoUrl = '';
|
|
this.bannerUrl = '';
|
|
this.desc = '';
|
|
this.email = '';
|
|
//uses key value pair to store product
|
|
//key is the productId of the product
|
|
//value is the product itself
|
|
this.products = new Entity();
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {Product} product
|
|
*/
|
|
addProduct(product){
|
|
return this.products.addData(product.id, product);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {string} productId
|
|
* @returns {Product}
|
|
*/
|
|
getProduct(productId){
|
|
return this.products.getData(productId);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* returns all the products in the website
|
|
*/
|
|
getAllProduct(){
|
|
return this.products.getAllData().values();
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {string} productId
|
|
*/
|
|
deleteProduct(productId){
|
|
|
|
return this.products.deleteData(productId);
|
|
}
|
|
|
|
selectProduct(productId){
|
|
return this.products.selectData(productId);
|
|
}
|
|
|
|
/**
|
|
* @returns {Product}
|
|
*/
|
|
getSelectedProduct()
|
|
{
|
|
return this.getProduct(this.products.selectedData);
|
|
}
|
|
|
|
toJson(){
|
|
let j = {};
|
|
j["firstName"] = this.firstName;
|
|
j["lastName"] = this.lastName;
|
|
j["companyName"] = this.companyName;
|
|
j["logoUrl"] = this.logoUrl;
|
|
j["bannerUrl"] = this.bannerUrl;
|
|
j["email"] = this.email;
|
|
j["description"] = this.desc;
|
|
j["template"] = 'Colo_Shop';
|
|
|
|
let csv = 'product id,product name,description,cost,product image url\n';
|
|
for (let prod of this.products.getAllData().values())
|
|
{
|
|
let m = [prod.id, prod.name, prod.desc, prod.cost, prod.imageUrl].join(',');
|
|
csv += `${m}\n`;
|
|
}
|
|
j['csv'] = csv;
|
|
|
|
return JSON.stringify(j);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
module.exports.Website = Website; |