7eda21adec4e51718fc7a2d50165a2d9d847239a
[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 _0x6881=['get','toLowerCase','direction','out','isNil','UserId','WhatsappInteraction','findOne','then','createdAt','catch','error','secret','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid','authToken','phone','messages','create','whatsapp:','remote','/api/whatsapp/messages/','token','sid','update','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','/messages/','text','POST','application/json','statuses','err','finally','utf8mb4_unicode_ci','../../config/logger','api','bluebird','request-promise','node-fetch','rimraf','./whatsappMessage.attributes','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x6881,0x10e));var _0x1688=function(_0x1345be,_0x5e6847){_0x1345be=_0x1345be-0x0;var _0x5736af=_0x6881[_0x1345be];return _0x5736af;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1688('0x0'))(_0x1688('0x1'));var moment=require('moment');var BPromise=require(_0x1688('0x2'));var rp=require(_0x1688('0x3'));var fetch=require(_0x1688('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1688('0x5'));var config=require('../../config/environment');var attributes=require(_0x1688('0x6'));module['exports']=function(_0x323ca9,_0x202ddf){return _0x323ca9[_0x1688('0x7')](_0x1688('0x8'),attributes,{'tableName':_0x1688('0x9'),'paranoid':![],'indexes':[{'name':_0x1688('0xa'),'fields':[_0x1688('0xa')]},{'name':_0x1688('0xb'),'fields':[_0x1688('0xc')],'type':_0x1688('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x208600,_0x158f19,_0x2550f4){var _0x5539af=_0x323ca9[_0x1688('0xe')];var _0x8020f0=_0x208600[_0x1688('0xf')]({'plain':!![]});if(_0x8020f0['direction'][_0x1688('0x10')]()==='in'||_0x8020f0[_0x1688('0x11')][_0x1688('0x10')]()===_0x1688('0x12')&&!_0x8020f0['secret']&&!_[_0x1688('0x13')](_0x8020f0[_0x1688('0x14')])){_0x5539af[_0x1688('0x15')][_0x1688('0x16')]({'where':{'id':_0x8020f0['WhatsappInteractionId']}})[_0x1688('0x17')](function(_0x1c0f8d){if(_0x1c0f8d){_0x1c0f8d['update']({'lastMsgAt':_0x8020f0[_0x1688('0x18')],'lastMsgDirection':_0x8020f0[_0x1688('0x11')][_0x1688('0x10')]()});}})[_0x1688('0x19')](function(_0x3e63af){console[_0x1688('0x1a')](_0x3e63af);});}if(_0x8020f0[_0x1688('0x11')]===_0x1688('0x12')&&!_0x8020f0[_0x1688('0x1b')]){var _0x318abb;_0x5539af[_0x1688('0x1c')][_0x1688('0x1d')]({'where':{'id':_0x8020f0[_0x1688('0x1e')]},'raw':!![]})[_0x1688('0x17')](function(_0x33f38d){_0x318abb=_0x33f38d;if(_0x318abb&&_0x318abb[_0x1688('0x1f')]){switch(_0x318abb['type']){case _0x1688('0x20'):var _0x29286e=require('twilio');if(_0x318abb[_0x1688('0x21')]&&_0x318abb[_0x1688('0x22')]&&_0x318abb[_0x1688('0x23')]){var _0x580564=new _0x29286e(_0x318abb[_0x1688('0x21')],_0x318abb['authToken']);_0x580564[_0x1688('0x24')][_0x1688('0x25')]({'body':_0x8020f0[_0x1688('0xc')],'to':_0x1688('0x26')+_0x8020f0[_0x1688('0x23')],'from':_0x1688('0x26')+_0x318abb['phone'],'statusCallback':_0x318abb[_0x1688('0x27')]+_0x1688('0x28')+_0x8020f0['id']+'/status?token='+_0x318abb[_0x1688('0x29')]})[_0x1688('0x17')](function(_0x3823ce){if(_0x3823ce[_0x1688('0x2a')]){return _0x208600[_0x1688('0x2b')]({'messageId':_0x3823ce[_0x1688('0x2a')]});}})['catch'](function(_0x45c93a){logger[_0x1688('0x1a')]('WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','twilio',util['inspect'](_0x45c93a,{'showHidden':![],'depth':null}));});}else{logger[_0x1688('0x1a')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x1688('0x2c'),_0x1688('0x20'),_0x1688('0x2d'));}break;case _0x1688('0x2e'):var _0x5171d9=_0x318abb[_0x1688('0x21')];var _0x43bb02=_0x318abb[_0x1688('0x22')];var _0x2731d0=_0x318abb[_0x1688('0x2f')]+_0x1688('0x30')+_0x5171d9+_0x1688('0x31');var _0x3b8075={'to':[_0x8020f0[_0x1688('0x23')]],'message':{'type':_0x1688('0x32'),'text':_0x8020f0[_0x1688('0xc')]}};var _0x12cc75={'method':_0x1688('0x33'),'uri':_0x2731d0,'headers':{'Authorization':'Bearer\x20'+_0x43bb02,'Content-Type':_0x1688('0x34')},'body':_0x3b8075,'json':!![]};rp(_0x12cc75)[_0x1688('0x17')](function(_0x19ee91){if(_0x19ee91[_0x1688('0x35')][0x0]['message_id']){return _0x208600[_0x1688('0x2b')]({'messageId':_0x19ee91['statuses'][0x0]['message_id']});}})[_0x1688('0x19')](function(_0x157ec9){logger[_0x1688('0x36')]('WhatsappMessage,\x20%s',_0x157ec9);});break;}}})[_0x1688('0x37')](function(){_0x2550f4();});}else{_0x2550f4();}}},'charset':'utf8mb4','collate':_0x1688('0x38')});};