b8b6123b57d8ccfc8fd5f81b5a82a1199d6360b7
[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 _0x1989=['toLowerCase','out','secret','isNil','UserId','WhatsappInteraction','WhatsappInteractionId','then','createdAt','catch','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid','phone','messages','create','whatsapp:','remote','/api/whatsapp/messages/','token','sid','update','inspect','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','text','Bearer\x20','application/json','statuses','message_id','WhatsappMessage,\x20%s','finally','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./whatsappMessage.attributes','exports','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','direction'];(function(_0x3725ee,_0x543bd9){var _0x399c71=function(_0xaf9400){while(--_0xaf9400){_0x3725ee['push'](_0x3725ee['shift']());}};_0x399c71(++_0x543bd9);}(_0x1989,0x119));var _0x9198=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1989[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x9198('0x0'));var util=require(_0x9198('0x1'));var logger=require(_0x9198('0x2'))(_0x9198('0x3'));var moment=require(_0x9198('0x4'));var BPromise=require(_0x9198('0x5'));var rp=require(_0x9198('0x6'));var fetch=require('node-fetch');var fs=require('fs');var path=require(_0x9198('0x7'));var rimraf=require('rimraf');var config=require(_0x9198('0x8'));var attributes=require(_0x9198('0x9'));module[_0x9198('0xa')]=function(_0x80540a,_0x495070){return _0x80540a['define'](_0x9198('0xb'),attributes,{'tableName':_0x9198('0xc'),'paranoid':![],'indexes':[{'name':_0x9198('0xd'),'fields':[_0x9198('0xd')]},{'name':_0x9198('0xe'),'fields':[_0x9198('0xf')],'type':_0x9198('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0xfa3e80,_0x194fe1,_0x15d5ef){var _0x42f556=_0x80540a[_0x9198('0x11')];var _0x3d023a=_0xfa3e80['get']({'plain':!![]});if(_0x3d023a[_0x9198('0x12')]['toLowerCase']()==='in'||_0x3d023a['direction'][_0x9198('0x13')]()===_0x9198('0x14')&&!_0x3d023a[_0x9198('0x15')]&&!_[_0x9198('0x16')](_0x3d023a[_0x9198('0x17')])){_0x42f556[_0x9198('0x18')]['findOne']({'where':{'id':_0x3d023a[_0x9198('0x19')]}})[_0x9198('0x1a')](function(_0x10f8d2){if(_0x10f8d2){_0x10f8d2['update']({'lastMsgAt':_0x3d023a[_0x9198('0x1b')],'lastMsgDirection':_0x3d023a['direction'][_0x9198('0x13')]()});}})[_0x9198('0x1c')](function(_0x575cbb){console['error'](_0x575cbb);});}if(_0x3d023a[_0x9198('0x12')]===_0x9198('0x14')&&!_0x3d023a[_0x9198('0x15')]){var _0x407be8;_0x42f556[_0x9198('0x1d')][_0x9198('0x1e')]({'where':{'id':_0x3d023a[_0x9198('0x1f')]},'raw':!![]})[_0x9198('0x1a')](function(_0x23acd2){_0x407be8=_0x23acd2;if(_0x407be8&&_0x407be8[_0x9198('0x20')]){switch(_0x407be8[_0x9198('0x20')]){case _0x9198('0x21'):var _0x829f1b=require(_0x9198('0x21'));if(_0x407be8[_0x9198('0x22')]&&_0x407be8['authToken']&&_0x407be8[_0x9198('0x23')]){var _0x4f5a6e=new _0x829f1b(_0x407be8['accountSid'],_0x407be8['authToken']);_0x4f5a6e[_0x9198('0x24')][_0x9198('0x25')]({'body':_0x3d023a[_0x9198('0xf')],'to':_0x9198('0x26')+_0x3d023a['phone'],'from':_0x9198('0x26')+_0x407be8[_0x9198('0x23')],'statusCallback':_0x407be8[_0x9198('0x27')]+_0x9198('0x28')+_0x3d023a['id']+'/status?token='+_0x407be8[_0x9198('0x29')]})[_0x9198('0x1a')](function(_0x4ceb2c){if(_0x4ceb2c[_0x9198('0x2a')]){return _0xfa3e80[_0x9198('0x2b')]({'messageId':_0x4ceb2c[_0x9198('0x2a')]});}})[_0x9198('0x1c')](function(_0x25633c){logger['error']('WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x9198('0x21'),util[_0x9198('0x2c')](_0x25633c,{'showHidden':![],'depth':null}));});}else{logger[_0x9198('0x2d')](_0x9198('0x2e'),_0x9198('0x2f'),_0x9198('0x21'),_0x9198('0x30'));}break;case _0x9198('0x31'):var _0x4c601e=_0x407be8[_0x9198('0x22')];var _0x59aeab=_0x407be8['authToken'];var _0x123b22=_0x407be8[_0x9198('0x32')]+_0x9198('0x33')+_0x4c601e+'/messages/';var _0x504405={'to':[_0x3d023a[_0x9198('0x23')]],'message':{'type':_0x9198('0x34'),'text':_0x3d023a[_0x9198('0xf')]}};var _0x462661={'method':'POST','uri':_0x123b22,'headers':{'Authorization':_0x9198('0x35')+_0x59aeab,'Content-Type':_0x9198('0x36')},'body':_0x504405,'json':!![]};rp(_0x462661)[_0x9198('0x1a')](function(_0x3ef6f8){if(_0x3ef6f8['statuses'][0x0]['message_id']){return _0xfa3e80[_0x9198('0x2b')]({'messageId':_0x3ef6f8[_0x9198('0x37')][0x0][_0x9198('0x38')]});}})[_0x9198('0x1c')](function(_0x4f79ce){logger['err'](_0x9198('0x39'),_0x4f79ce);});break;}}})[_0x9198('0x3a')](function(){_0x15d5ef();});}else{_0x15d5ef();}}},'charset':'utf8mb4','collate':_0x9198('0x3b')});};