@uneiotech/elisa_whatsapp
Version:
Elisa WhatsApp is a library to stable a communication between channels and server.
69 lines (68 loc) • 2.59 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ElisaWhatsApp = void 0;
const request = require("request-promise");
class ElisaWhatsApp {
constructor(config) {
this.authorizationHeaders = {
"x-maytapi-key": ""
};
this.config = config;
// set authorization key
this.authorizationHeaders["x-maytapi-key"] = config.apiKey;
}
sendMessage(message) {
return __awaiter(this, void 0, void 0, function* () {
let bodyOfMessage = { to_number: "", type: "", message: "" };
if (message.type === "text") {
bodyOfMessage = {
"to_number": message.numberTo,
"type": message.type,
"message": message.message
};
}
if (message.type === "link") {
bodyOfMessage = {
"to_number": message.numberTo,
"type": message.type,
"message": message.link,
"text": message.message
};
}
return yield this.callService(bodyOfMessage);
});
}
callService(body) {
return new Promise((resolve, reject) => {
request.post({
url: this.config.url,
headers: this.authorizationHeaders,
json: true,
body
}).then((res) => {
resolve({
ok: res.success,
status: 200,
message: res.message
});
})
.catch((err) => {
reject({
ok: false,
status: err.statusCode,
message: err.message
});
});
});
}
}
exports.ElisaWhatsApp = ElisaWhatsApp;