5df0ceaf01465e0bd9ccdeb99fc1163b17cfbf03
[motion2.git] / server / api / whatsappMessage / whatsappMessage.model.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xa23f=['body','FULLTEXT','models','toLowerCase','direction','secret','isNil','findOne','then','update','createdAt','catch','error','out','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid','phone','messages','create','whatsapp:','/api/whatsapp/messages/','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','finally','utf8mb4_unicode_ci','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','WhatsappMessage','messageId'];(function(_0x18894b,_0xb20093){var _0x4b3230=function(_0x434091){while(--_0x434091){_0x18894b['push'](_0x18894b['shift']());}};_0x4b3230(++_0xb20093);}(_0xa23f,0x1ce));var _0xfa23=function(_0x1f9f96,_0x1e4fd1){_0x1f9f96=_0x1f9f96-0x0;var _0x4d26e6=_0xa23f[_0x1f9f96];return _0x4d26e6;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xfa23('0x0'))('api');var moment=require(_0xfa23('0x1'));var BPromise=require(_0xfa23('0x2'));var rp=require(_0xfa23('0x3'));var fs=require('fs');var path=require(_0xfa23('0x4'));var rimraf=require(_0xfa23('0x5'));var config=require(_0xfa23('0x6'));var attributes=require('./whatsappMessage.attributes');module[_0xfa23('0x7')]=function(_0x2b4e74,_0x4e03ef){return _0x2b4e74[_0xfa23('0x8')](_0xfa23('0x9'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':'messageId','fields':[_0xfa23('0xa')]},{'name':'fti_whatsapp_messages','fields':[_0xfa23('0xb')],'type':_0xfa23('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x18b4d0,_0x27b0f5,_0x759784){var _0x3e53b0=_0x2b4e74[_0xfa23('0xd')];var _0x5787f1=_0x18b4d0['get']({'plain':!![]});if(_0x5787f1['direction'][_0xfa23('0xe')]()==='in'||_0x5787f1[_0xfa23('0xf')][_0xfa23('0xe')]()==='out'&&!_0x5787f1[_0xfa23('0x10')]&&!_[_0xfa23('0x11')](_0x5787f1['UserId'])){_0x3e53b0['WhatsappInteraction'][_0xfa23('0x12')]({'where':{'id':_0x5787f1['WhatsappInteractionId']}})[_0xfa23('0x13')](function(_0x5a87d3){if(_0x5a87d3){_0x5a87d3[_0xfa23('0x14')]({'lastMsgAt':_0x5787f1[_0xfa23('0x15')],'lastMsgDirection':_0x5787f1[_0xfa23('0xf')][_0xfa23('0xe')]()});}})[_0xfa23('0x16')](function(_0x1d309b){console[_0xfa23('0x17')](_0x1d309b);});}if(_0x5787f1[_0xfa23('0xf')]===_0xfa23('0x18')&&!_0x5787f1[_0xfa23('0x10')]){var _0x2f7f4e;_0x3e53b0[_0xfa23('0x19')][_0xfa23('0x1a')]({'where':{'id':_0x5787f1[_0xfa23('0x1b')]},'raw':!![]})[_0xfa23('0x13')](function(_0x572e30){_0x2f7f4e=_0x572e30;if(_0x2f7f4e&&_0x2f7f4e[_0xfa23('0x1c')]){switch(_0x2f7f4e[_0xfa23('0x1c')]){case _0xfa23('0x1d'):var _0x3808b7=require('twilio');if(_0x2f7f4e[_0xfa23('0x1e')]&&_0x2f7f4e['authToken']&&_0x2f7f4e[_0xfa23('0x1f')]){var _0x2f3a28=new _0x3808b7(_0x2f7f4e['accountSid'],_0x2f7f4e['authToken']);_0x2f3a28[_0xfa23('0x20')][_0xfa23('0x21')]({'body':_0x5787f1['body'],'to':_0xfa23('0x22')+_0x5787f1[_0xfa23('0x1f')],'from':'whatsapp:'+_0x2f7f4e[_0xfa23('0x1f')],'statusCallback':_0x2f7f4e['remote']+_0xfa23('0x23')+_0x5787f1['id']+_0xfa23('0x24')+_0x2f7f4e[_0xfa23('0x25')]})['then'](function(_0x4f3e1d){if(_0x4f3e1d[_0xfa23('0x26')]){return _0x18b4d0[_0xfa23('0x14')]({'messageId':_0x4f3e1d[_0xfa23('0x26')]});}})['catch'](function(_0x1fbc34){logger[_0xfa23('0x17')](_0xfa23('0x27'),_0xfa23('0x28'),_0xfa23('0x1d'),util['inspect'](_0x1fbc34,{'showHidden':![],'depth':null}));});}else{logger[_0xfa23('0x17')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0xfa23('0x28'),_0xfa23('0x1d'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;}}})[_0xfa23('0x29')](function(){_0x759784();});}else{_0x759784();}}},'charset':'utf8mb4','collate':_0xfa23('0x2a')});};