Built motion from commit 9d1906d1.|2.5.40
[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 _0xfa11=['/api/whatsapp/messages/','/status?token=','token','sid','catch','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','/messages/','text','body','Bearer\x20','application/json','statuses','message_id','err','utf8mb4','lodash','util','../../config/logger','api','node-fetch','path','../../config/environment','./whatsappMessage.attributes','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','FULLTEXT','models','direction','toLowerCase','out','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','createdAt','secret','WhatsappAccount','find','type','accountSid','phone','authToken','messages','whatsapp:','remote'];(function(_0x4d1cc6,_0x26bebe){var _0x1a6fee=function(_0x374f30){while(--_0x374f30){_0x4d1cc6['push'](_0x4d1cc6['shift']());}};_0x1a6fee(++_0x26bebe);}(_0xfa11,0xba));var _0x1fa1=function(_0x47cdef,_0x13efcf){_0x47cdef=_0x47cdef-0x0;var _0x83a818=_0xfa11[_0x47cdef];return _0x83a818;};'use strict';var _=require(_0x1fa1('0x0'));var util=require(_0x1fa1('0x1'));var logger=require(_0x1fa1('0x2'))(_0x1fa1('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fetch=require(_0x1fa1('0x4'));var fs=require('fs');var path=require(_0x1fa1('0x5'));var rimraf=require('rimraf');var config=require(_0x1fa1('0x6'));var attributes=require(_0x1fa1('0x7'));module['exports']=function(_0x4b47cc,_0x2a2d05){return _0x4b47cc['define'](_0x1fa1('0x8'),attributes,{'tableName':_0x1fa1('0x9'),'paranoid':![],'indexes':[{'name':_0x1fa1('0xa'),'fields':[_0x1fa1('0xa')]},{'name':_0x1fa1('0xb'),'fields':['body'],'type':_0x1fa1('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0xad53fa,_0x453029,_0x40e6e6){var _0x4549d1=_0x4b47cc[_0x1fa1('0xd')];var _0x4ac5d9=_0xad53fa['get']({'plain':!![]});if(_0x4ac5d9[_0x1fa1('0xe')][_0x1fa1('0xf')]()==='in'||_0x4ac5d9[_0x1fa1('0xe')][_0x1fa1('0xf')]()===_0x1fa1('0x10')&&!_0x4ac5d9['secret']&&!_['isNil'](_0x4ac5d9[_0x1fa1('0x11')])){_0x4549d1[_0x1fa1('0x12')][_0x1fa1('0x13')]({'where':{'id':_0x4ac5d9[_0x1fa1('0x14')]}})[_0x1fa1('0x15')](function(_0x158343){if(_0x158343){_0x158343[_0x1fa1('0x16')]({'lastMsgAt':_0x4ac5d9[_0x1fa1('0x17')],'lastMsgDirection':_0x4ac5d9[_0x1fa1('0xe')][_0x1fa1('0xf')]()});}})['catch'](function(_0xc4cda3){console['error'](_0xc4cda3);});}if(_0x4ac5d9[_0x1fa1('0xe')]===_0x1fa1('0x10')&&!_0x4ac5d9[_0x1fa1('0x18')]){var _0x1710d2;_0x4549d1[_0x1fa1('0x19')][_0x1fa1('0x1a')]({'where':{'id':_0x4ac5d9['WhatsappAccountId']},'raw':!![]})[_0x1fa1('0x15')](function(_0x433c77){_0x1710d2=_0x433c77;if(_0x1710d2&&_0x1710d2['type']){switch(_0x1710d2[_0x1fa1('0x1b')]){case'twilio':var _0x4d9164=require('twilio');if(_0x1710d2[_0x1fa1('0x1c')]&&_0x1710d2['authToken']&&_0x1710d2[_0x1fa1('0x1d')]){var _0x562174=new _0x4d9164(_0x1710d2['accountSid'],_0x1710d2[_0x1fa1('0x1e')]);_0x562174[_0x1fa1('0x1f')]['create']({'body':_0x4ac5d9['body'],'to':'whatsapp:'+_0x4ac5d9['phone'],'from':_0x1fa1('0x20')+_0x1710d2[_0x1fa1('0x1d')],'statusCallback':_0x1710d2[_0x1fa1('0x21')]+_0x1fa1('0x22')+_0x4ac5d9['id']+_0x1fa1('0x23')+_0x1710d2[_0x1fa1('0x24')]})[_0x1fa1('0x15')](function(_0x1c92c9){if(_0x1c92c9[_0x1fa1('0x25')]){return _0xad53fa[_0x1fa1('0x16')]({'messageId':_0x1c92c9[_0x1fa1('0x25')]});}})[_0x1fa1('0x26')](function(_0x1dc14d){logger[_0x1fa1('0x27')](_0x1fa1('0x28'),'afterCreate',_0x1fa1('0x29'),util['inspect'](_0x1dc14d,{'showHidden':![],'depth':null}));});}else{logger[_0x1fa1('0x27')]('WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','twilio',_0x1fa1('0x2a'));}break;case _0x1fa1('0x2b'):var _0x47d81e=_0x1710d2[_0x1fa1('0x1c')];var _0xf973a5=_0x1710d2['authToken'];var _0x4b5ecd=_0x1710d2[_0x1fa1('0x2c')]+_0x1fa1('0x2d')+_0x47d81e+_0x1fa1('0x2e');var _0x578216={'to':[_0x4ac5d9[_0x1fa1('0x1d')]],'message':{'type':_0x1fa1('0x2f'),'text':_0x4ac5d9[_0x1fa1('0x30')]}};var _0x58705a={'method':'POST','uri':_0x4b5ecd,'headers':{'Authorization':_0x1fa1('0x31')+_0xf973a5,'Content-Type':_0x1fa1('0x32')},'body':_0x578216,'json':!![]};rp(_0x58705a)[_0x1fa1('0x15')](function(_0x42cdc9){if(_0x42cdc9[_0x1fa1('0x33')][0x0][_0x1fa1('0x34')]){return _0xad53fa[_0x1fa1('0x16')]({'messageId':_0x42cdc9[_0x1fa1('0x33')][0x0][_0x1fa1('0x34')]});}})[_0x1fa1('0x26')](function(_0x57416b){logger[_0x1fa1('0x35')]('WhatsappMessage,\x20%s',_0x57416b);});break;}}})['finally'](function(){_0x40e6e6();});}else{_0x40e6e6();}}},'charset':_0x1fa1('0x36'),'collate':'utf8mb4_unicode_ci'});};