UNPKG

@uneiotech/elisa_whatsapp

Version:

Elisa WhatsApp is a library to stable a communication between channels and server.

69 lines (68 loc) 2.59 kB
"use strict"; 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;