2285af90e9ad05d62428a7e5333d7e876cdf7c7a
[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 _0x906c=['then','type','twilio','accountSid','authToken','phone','messages','create','body','whatsapp:','remote','/api/whatsapp/messages/','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','sinch','/messages/','text','POST','Bearer\x20','application/json','statuses','WhatsappMessage,\x20%s','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','node-fetch','path','rimraf','../../config/environment','./whatsappMessage.attributes','exports','whatsapp_messages','messageId','models','get','toLowerCase','direction','out','secret','isNil','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','update','createdAt','catch','error','WhatsappAccount','find'];(function(_0x4f9bcb,_0x433d80){var _0x2c2dc1=function(_0x37727f){while(--_0x37727f){_0x4f9bcb['push'](_0x4f9bcb['shift']());}};_0x2c2dc1(++_0x433d80);}(_0x906c,0x17d));var _0xc906=function(_0x1fb6cd,_0x5b87e2){_0x1fb6cd=_0x1fb6cd-0x0;var _0x17e145=_0x906c[_0x1fb6cd];return _0x17e145;};'use strict';var _=require(_0xc906('0x0'));var util=require(_0xc906('0x1'));var logger=require(_0xc906('0x2'))(_0xc906('0x3'));var moment=require(_0xc906('0x4'));var BPromise=require(_0xc906('0x5'));var rp=require(_0xc906('0x6'));var fetch=require(_0xc906('0x7'));var fs=require('fs');var path=require(_0xc906('0x8'));var rimraf=require(_0xc906('0x9'));var config=require(_0xc906('0xa'));var attributes=require(_0xc906('0xb'));module[_0xc906('0xc')]=function(_0x2c4fe7,_0x3b9c12){return _0x2c4fe7['define']('WhatsappMessage',attributes,{'tableName':_0xc906('0xd'),'paranoid':![],'indexes':[{'name':_0xc906('0xe'),'fields':[_0xc906('0xe')]},{'name':'fti_whatsapp_messages','fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4b6e4d,_0x3516bc,_0x45f71d){var _0x42fbba=_0x2c4fe7[_0xc906('0xf')];var _0x1cead9=_0x4b6e4d[_0xc906('0x10')]({'plain':!![]});if(_0x1cead9['direction'][_0xc906('0x11')]()==='in'||_0x1cead9[_0xc906('0x12')][_0xc906('0x11')]()===_0xc906('0x13')&&!_0x1cead9[_0xc906('0x14')]&&!_[_0xc906('0x15')](_0x1cead9[_0xc906('0x16')])){_0x42fbba[_0xc906('0x17')][_0xc906('0x18')]({'where':{'id':_0x1cead9[_0xc906('0x19')]}})['then'](function(_0x465f9e){if(_0x465f9e){_0x465f9e[_0xc906('0x1a')]({'lastMsgAt':_0x1cead9[_0xc906('0x1b')],'lastMsgDirection':_0x1cead9[_0xc906('0x12')][_0xc906('0x11')]()});}})[_0xc906('0x1c')](function(_0x3753ea){console[_0xc906('0x1d')](_0x3753ea);});}if(_0x1cead9[_0xc906('0x12')]===_0xc906('0x13')&&!_0x1cead9[_0xc906('0x14')]){var _0x17623d;_0x42fbba[_0xc906('0x1e')][_0xc906('0x1f')]({'where':{'id':_0x1cead9['WhatsappAccountId']},'raw':!![]})[_0xc906('0x20')](function(_0x2f380c){_0x17623d=_0x2f380c;if(_0x17623d&&_0x17623d[_0xc906('0x21')]){switch(_0x17623d[_0xc906('0x21')]){case'twilio':var _0x4b55e2=require(_0xc906('0x22'));if(_0x17623d[_0xc906('0x23')]&&_0x17623d[_0xc906('0x24')]&&_0x17623d[_0xc906('0x25')]){var _0x2c6695=new _0x4b55e2(_0x17623d[_0xc906('0x23')],_0x17623d['authToken']);_0x2c6695[_0xc906('0x26')][_0xc906('0x27')]({'body':_0x1cead9[_0xc906('0x28')],'to':_0xc906('0x29')+_0x1cead9[_0xc906('0x25')],'from':_0xc906('0x29')+_0x17623d[_0xc906('0x25')],'statusCallback':_0x17623d[_0xc906('0x2a')]+_0xc906('0x2b')+_0x1cead9['id']+'/status?token='+_0x17623d[_0xc906('0x2c')]})[_0xc906('0x20')](function(_0x4fe062){if(_0x4fe062[_0xc906('0x2d')]){return _0x4b6e4d[_0xc906('0x1a')]({'messageId':_0x4fe062[_0xc906('0x2d')]});}})['catch'](function(_0x30716e){logger[_0xc906('0x1d')](_0xc906('0x2e'),_0xc906('0x2f'),_0xc906('0x22'),util[_0xc906('0x30')](_0x30716e,{'showHidden':![],'depth':null}));});}else{logger[_0xc906('0x1d')](_0xc906('0x2e'),_0xc906('0x2f'),_0xc906('0x22'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0xc906('0x31'):var _0x54c7de=_0x17623d[_0xc906('0x23')];var _0x1a7ac3=_0x17623d[_0xc906('0x24')];var _0x19b16e=_0x17623d['baseUrl']+'/whatsapp/v1/'+_0x54c7de+_0xc906('0x32');var _0x4e7484={'to':[_0x1cead9[_0xc906('0x25')]],'message':{'type':_0xc906('0x33'),'text':_0x1cead9[_0xc906('0x28')]}};var _0x359869={'method':_0xc906('0x34'),'uri':_0x19b16e,'headers':{'Authorization':_0xc906('0x35')+_0x1a7ac3,'Content-Type':_0xc906('0x36')},'body':_0x4e7484,'json':!![]};rp(_0x359869)[_0xc906('0x20')](function(_0x4b0119){if(_0x4b0119[_0xc906('0x37')][0x0]['message_id']){return _0x4b6e4d[_0xc906('0x1a')]({'messageId':_0x4b0119['statuses'][0x0]['message_id']});}})[_0xc906('0x1c')](function(_0x2c3385){logger['err'](_0xc906('0x38'),_0x2c3385);});break;}}})['finally'](function(){_0x45f71d();});}else{_0x45f71d();}}},'charset':_0xc906('0x39'),'collate':_0xc906('0x3a')});};