able to save images

This commit is contained in:
Mohammed Ashab Uddin
2020-08-07 09:15:21 +04:00
parent c5329eda93
commit 65c76ac732
3 changed files with 59 additions and 16 deletions

View File

@@ -18,6 +18,22 @@ let user = null;
*/
let input = null;
const base64_decode = async (base64str, file) => {
var bitmap = await Buffer.from(base64str, 'base64');
await fs.writeFileSync(file, bitmap);
console.log('****** File created from base64 encoded string ******');
}
const saveImage = async (messageMedia, fileName) => {
let file = `../website-generator/public/images/${fileName}.jpg`;
await base64_decode(messageMedia.data, file);
return file;
}
const addProduct = (id) => {
// Create a product and select it.
@@ -275,14 +291,20 @@ module.exports.onSetProductImage = () => {
return check({
checkFunction : checkMediaExist,
callback : () => {
callback : async () => {
let selected_product = user.getSelectedWebsite().getSelectedProduct();
selected_product.setImage(input['media']);
//filename to be set
let filename = `${user.id.slice(3,10)}${user.getSelectedWebsite().companyName}${selected_product.id}`;
//url for the image that are saved
selected_product.imageUrl = await saveImage(input['media'], filename);
let message = [
'The product image has been set to the following image',
selected_product.image
];
return message;
}
@@ -363,7 +385,7 @@ module.exports.onGetInfo = () => {
Description : ${website.desc}
Email : ${website.email}
Banner :`,
website.bannerUrl,
website.banner,
`Logo :`,
website.logo
];
@@ -427,12 +449,14 @@ module.exports.onSetLogo = () =>
return check({
//check if media exist
checkFunction: checkMediaExist,
callback : () => {
user.getSelectedWebsite().logoUrl = input['media'];
callback : async () => {
user.getSelectedWebsite().logo = input['media'];
user.getSelectedWebsite().logoUrl = await saveImage(input['media'], `${user.id.slice(3,10)}${user.getSelectedWebsite().companyName}logo`);
return [
`Logo has been set to the following logo`,
user.getSelectedWebsite().logoUrl
user.getSelectedWebsite().logo
];
}
});
@@ -457,12 +481,14 @@ module.exports.onSetBanner = () =>
//check if media exist
return check({
checkFunction : checkMediaExist,
callback :() => {
callback : async () => {
user.getSelectedWebsite().bannerUrl = input['media'];
user.getSelectedWebsite().banner = input['media'];
user.getSelectedWebsite().bannerUrl = await saveImage(input['media'], `${user.id.slice(3,10)}${user.getSelectedWebsite().companyName}banner`);
return [
`Banner has been set to the following banner`,
user.getSelectedWebsite().bannerUrl
user.getSelectedWebsite().banner
];
}
})
@@ -586,10 +612,3 @@ module.exports.onDeployWebsite = () => {
}
const base64_decode = async (base64str, file) => {
var bitmap = await Buffer.from(base64str, 'base64');
await fs.writeFileSync(file, bitmap);
console.log('****** File created from base64 encoded string ******');
}

View File

@@ -7,6 +7,7 @@ class Product {
this.desc = desc;
this.cost = cost;
this.image = image;
this.imageUrl = '';
}
/**

View File

@@ -10,6 +10,8 @@ class Website {
this.firstName = '';
this.lastName = '';
this.companyName = companyName;
this.logo = '';
this.banner = '';
this.logoUrl = '';
this.bannerUrl = '';
this.desc = '';
@@ -66,6 +68,27 @@ class Website {
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;
let csv = '';
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);
}
}