mirror of
https://github.com/cheveguerra/whatsapp-web.js.git
synced 2026-04-18 03:29:14 +00:00
* - Get products and orders * - Get products and orders * - Eslint fixes * - Eslint fixes * allow downloading media for products * products and orders work on normal accounts Co-authored-by: Renato Jop <renato.jop@consystec-corp.com> Co-authored-by: Pedro Lopez <pedroslopez@me.com> Co-authored-by: Pedro S. Lopez <pslamoros@hotmail.com>
68 lines
1.5 KiB
JavaScript
68 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
const Base = require('./Base');
|
|
const ProductMetadata = require('./ProductMetadata');
|
|
|
|
/**
|
|
* Represents a Product on WhatsAppBusiness
|
|
* @extends {Base}
|
|
*/
|
|
class Product extends Base {
|
|
constructor(client, data) {
|
|
super(client);
|
|
|
|
if (data) this._patch(data);
|
|
}
|
|
|
|
_patch(data) {
|
|
/**
|
|
* Product ID
|
|
* @type {string}
|
|
*/
|
|
this.id = data.id;
|
|
/**
|
|
* Price
|
|
* @type {string}
|
|
*/
|
|
this.price = data.price ? data.price : '';
|
|
/**
|
|
* Product Thumbnail
|
|
* @type {string}
|
|
*/
|
|
this.thumbnailUrl = data.thumbnailUrl;
|
|
/**
|
|
* Currency
|
|
* @type {string}
|
|
*/
|
|
this.currency = data.currency;
|
|
/**
|
|
* Product Name
|
|
* @type {string}
|
|
*/
|
|
this.name = data.name;
|
|
/**
|
|
* Product Quantity
|
|
* @type {number}
|
|
*/
|
|
this.quantity = data.quantity;
|
|
/** Product metadata */
|
|
this.data = null;
|
|
return super._patch(data);
|
|
}
|
|
|
|
async getData() {
|
|
if (this.data === null) {
|
|
let result = await this.client.pupPage.evaluate((productId) => {
|
|
return window.WWebJS.getProductMetadata(productId);
|
|
}, this.id);
|
|
if (!result) {
|
|
this.data = undefined;
|
|
} else {
|
|
this.data = new ProductMetadata(this.client, result);
|
|
}
|
|
}
|
|
return this.data;
|
|
}
|
|
}
|
|
|
|
module.exports = Product; |