bd64412cae55ca5e3aa71df66d1fb41c58de4d4a
[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 _0x2016=['then','catch','error','secret','WhatsappAccount','WhatsappAccountId','type','twilio','accountSid','authToken','phone','messages','create','whatsapp:','remote','/api/whatsapp/messages/','sid','update','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/messages/','text','POST','Bearer\x20','application/json','statuses','message_id','err','utf8mb4','utf8mb4_unicode_ci','../../config/logger','api','bluebird','request-promise','node-fetch','rimraf','../../config/environment','define','WhatsappMessage','messageId','body','FULLTEXT','models','get','direction','toLowerCase','isNil','WhatsappInteraction','findOne','WhatsappInteractionId'];(function(_0x20869c,_0x3eab71){var _0x27989a=function(_0x4c07dd){while(--_0x4c07dd){_0x20869c['push'](_0x20869c['shift']());}};_0x27989a(++_0x3eab71);}(_0x2016,0xf5));var _0x6201=function(_0x4fbce4,_0xf1369){_0x4fbce4=_0x4fbce4-0x0;var _0x1978ec=_0x2016[_0x4fbce4];return _0x1978ec;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x6201('0x0'))(_0x6201('0x1'));var moment=require('moment');var BPromise=require(_0x6201('0x2'));var rp=require(_0x6201('0x3'));var fetch=require(_0x6201('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6201('0x5'));var config=require(_0x6201('0x6'));var attributes=require('./whatsappMessage.attributes');module['exports']=function(_0x412364,_0x3af06e){return _0x412364[_0x6201('0x7')](_0x6201('0x8'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0x6201('0x9'),'fields':[_0x6201('0x9')]},{'name':'fti_whatsapp_messages','fields':[_0x6201('0xa')],'type':_0x6201('0xb')}],'timestamps':!![],'hooks':{'afterCreate':function(_0xbc0be,_0x502211,_0x2bcd44){var _0x5ed7b0=_0x412364[_0x6201('0xc')];var _0x64010c=_0xbc0be[_0x6201('0xd')]({'plain':!![]});if(_0x64010c[_0x6201('0xe')]['toLowerCase']()==='in'||_0x64010c[_0x6201('0xe')][_0x6201('0xf')]()==='out'&&!_0x64010c['secret']&&!_[_0x6201('0x10')](_0x64010c['UserId'])){_0x5ed7b0[_0x6201('0x11')][_0x6201('0x12')]({'where':{'id':_0x64010c[_0x6201('0x13')]}})[_0x6201('0x14')](function(_0x445793){if(_0x445793){_0x445793['update']({'lastMsgAt':_0x64010c['createdAt'],'lastMsgDirection':_0x64010c[_0x6201('0xe')][_0x6201('0xf')]()});}})[_0x6201('0x15')](function(_0x580f4d){console[_0x6201('0x16')](_0x580f4d);});}if(_0x64010c['direction']==='out'&&!_0x64010c[_0x6201('0x17')]){var _0x151a8d;_0x5ed7b0[_0x6201('0x18')]['find']({'where':{'id':_0x64010c[_0x6201('0x19')]},'raw':!![]})['then'](function(_0x4847a9){_0x151a8d=_0x4847a9;if(_0x151a8d&&_0x151a8d[_0x6201('0x1a')]){switch(_0x151a8d['type']){case _0x6201('0x1b'):var _0x463dfb=require(_0x6201('0x1b'));if(_0x151a8d[_0x6201('0x1c')]&&_0x151a8d[_0x6201('0x1d')]&&_0x151a8d[_0x6201('0x1e')]){var _0x578457=new _0x463dfb(_0x151a8d[_0x6201('0x1c')],_0x151a8d[_0x6201('0x1d')]);_0x578457[_0x6201('0x1f')][_0x6201('0x20')]({'body':_0x64010c[_0x6201('0xa')],'to':_0x6201('0x21')+_0x64010c[_0x6201('0x1e')],'from':_0x6201('0x21')+_0x151a8d[_0x6201('0x1e')],'statusCallback':_0x151a8d[_0x6201('0x22')]+_0x6201('0x23')+_0x64010c['id']+'/status?token='+_0x151a8d['token']})[_0x6201('0x14')](function(_0x1ce83d){if(_0x1ce83d[_0x6201('0x24')]){return _0xbc0be[_0x6201('0x25')]({'messageId':_0x1ce83d[_0x6201('0x24')]});}})[_0x6201('0x15')](function(_0x4663ce){logger[_0x6201('0x16')](_0x6201('0x26'),_0x6201('0x27'),_0x6201('0x1b'),util['inspect'](_0x4663ce,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x6201('0x26'),_0x6201('0x27'),_0x6201('0x1b'),_0x6201('0x28'));}break;case _0x6201('0x29'):var _0x2b1f71=_0x151a8d[_0x6201('0x1c')];var _0x5b41c2=_0x151a8d[_0x6201('0x1d')];var _0x22ee35=_0x151a8d[_0x6201('0x2a')]+'/whatsapp/v1/'+_0x2b1f71+_0x6201('0x2b');var _0x2ab5c4={'to':[_0x64010c[_0x6201('0x1e')]],'message':{'type':_0x6201('0x2c'),'text':_0x64010c[_0x6201('0xa')]}};var _0x2d1555={'method':_0x6201('0x2d'),'uri':_0x22ee35,'headers':{'Authorization':_0x6201('0x2e')+_0x5b41c2,'Content-Type':_0x6201('0x2f')},'body':_0x2ab5c4,'json':!![]};rp(_0x2d1555)[_0x6201('0x14')](function(_0xc9cc60){if(_0xc9cc60[_0x6201('0x30')][0x0][_0x6201('0x31')]){return _0xbc0be[_0x6201('0x25')]({'messageId':_0xc9cc60[_0x6201('0x30')][0x0][_0x6201('0x31')]});}})[_0x6201('0x15')](function(_0x1f474d){logger[_0x6201('0x32')]('WhatsappMessage,\x20%s',_0x1f474d);});break;}}})['finally'](function(){_0x2bcd44();});}else{_0x2bcd44();}}},'charset':_0x6201('0x33'),'collate':_0x6201('0x34')});};