Built motion from commit 08fb8613.|2.6.31
[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 _0xd7a5=['FULLTEXT','direction','out','isNil','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','createdAt','WhatsappAccountId','then','type','twilio','accountSid','authToken','phone','create','whatsapp:','remote','/status?token=','sid','update','catch','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','baseUrl','text','Bearer\x20','application/json','statuses','message_id','err','WhatsappMessage,\x20%s','utf8mb4_unicode_ci','lodash','api','bluebird','request-promise','rimraf','../../config/environment','./whatsappMessage.attributes','define','WhatsappMessage','whatsapp_messages','messageId','body'];(function(_0x26d398,_0x22f9b0){var _0x3e65f2=function(_0x20c15f){while(--_0x20c15f){_0x26d398['push'](_0x26d398['shift']());}};_0x3e65f2(++_0x22f9b0);}(_0xd7a5,0xb4));var _0x5d7a=function(_0x18ab2a,_0x4debcd){_0x18ab2a=_0x18ab2a-0x0;var _0x16dcee=_0xd7a5[_0x18ab2a];return _0x16dcee;};'use strict';var _=require(_0x5d7a('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x5d7a('0x1'));var moment=require('moment');var BPromise=require(_0x5d7a('0x2'));var rp=require(_0x5d7a('0x3'));var fetch=require('node-fetch');var fs=require('fs');var path=require('path');var rimraf=require(_0x5d7a('0x4'));var config=require(_0x5d7a('0x5'));var attributes=require(_0x5d7a('0x6'));module['exports']=function(_0x35ac26,_0x19b6a4){return _0x35ac26[_0x5d7a('0x7')](_0x5d7a('0x8'),attributes,{'tableName':_0x5d7a('0x9'),'paranoid':![],'indexes':[{'name':_0x5d7a('0xa'),'fields':[_0x5d7a('0xa')]},{'name':'fti_whatsapp_messages','fields':[_0x5d7a('0xb')],'type':_0x5d7a('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4e0100,_0x579886,_0x3f76e7){var _0x884819=_0x35ac26['models'];var _0x38e0fe=_0x4e0100['get']({'plain':!![]});if(_0x38e0fe['direction']['toLowerCase']()==='in'||_0x38e0fe[_0x5d7a('0xd')]['toLowerCase']()===_0x5d7a('0xe')&&!_0x38e0fe['secret']&&!_[_0x5d7a('0xf')](_0x38e0fe[_0x5d7a('0x10')])){_0x884819[_0x5d7a('0x11')][_0x5d7a('0x12')]({'where':{'id':_0x38e0fe[_0x5d7a('0x13')]}})['then'](function(_0x2f3b10){if(_0x2f3b10){_0x2f3b10['update']({'lastMsgAt':_0x38e0fe[_0x5d7a('0x14')],'lastMsgDirection':_0x38e0fe[_0x5d7a('0xd')]['toLowerCase']()});}})['catch'](function(_0x55d609){console['error'](_0x55d609);});}if(_0x38e0fe[_0x5d7a('0xd')]===_0x5d7a('0xe')&&!_0x38e0fe['secret']){var _0x3134f4;_0x884819['WhatsappAccount']['find']({'where':{'id':_0x38e0fe[_0x5d7a('0x15')]},'raw':!![]})[_0x5d7a('0x16')](function(_0x24bb01){_0x3134f4=_0x24bb01;if(_0x3134f4&&_0x3134f4[_0x5d7a('0x17')]){switch(_0x3134f4['type']){case _0x5d7a('0x18'):var _0x138890=require(_0x5d7a('0x18'));if(_0x3134f4[_0x5d7a('0x19')]&&_0x3134f4[_0x5d7a('0x1a')]&&_0x3134f4[_0x5d7a('0x1b')]){var _0x2f80ed=new _0x138890(_0x3134f4[_0x5d7a('0x19')],_0x3134f4[_0x5d7a('0x1a')]);_0x2f80ed['messages'][_0x5d7a('0x1c')]({'body':_0x38e0fe[_0x5d7a('0xb')],'to':_0x5d7a('0x1d')+_0x38e0fe[_0x5d7a('0x1b')],'from':_0x5d7a('0x1d')+_0x3134f4['phone'],'statusCallback':_0x3134f4[_0x5d7a('0x1e')]+'/api/whatsapp/messages/'+_0x38e0fe['id']+_0x5d7a('0x1f')+_0x3134f4['token']})['then'](function(_0x41793a){if(_0x41793a[_0x5d7a('0x20')]){return _0x4e0100[_0x5d7a('0x21')]({'messageId':_0x41793a[_0x5d7a('0x20')]});}})[_0x5d7a('0x22')](function(_0x4f33d1){logger[_0x5d7a('0x23')](_0x5d7a('0x24'),_0x5d7a('0x25'),_0x5d7a('0x18'),util['inspect'](_0x4f33d1,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x5d7a('0x24'),'afterCreate','twilio',_0x5d7a('0x26'));}break;case'sinch':var _0x2a0a28=_0x3134f4['accountSid'];var _0x6dc138=_0x3134f4[_0x5d7a('0x1a')];var _0x553b68=_0x3134f4[_0x5d7a('0x27')]+'/whatsapp/v1/'+_0x2a0a28+'/messages/';var _0x5a2ace={'to':[_0x38e0fe[_0x5d7a('0x1b')]],'message':{'type':_0x5d7a('0x28'),'text':_0x38e0fe[_0x5d7a('0xb')]}};var _0x17069e={'method':'POST','uri':_0x553b68,'headers':{'Authorization':_0x5d7a('0x29')+_0x6dc138,'Content-Type':_0x5d7a('0x2a')},'body':_0x5a2ace,'json':!![]};rp(_0x17069e)[_0x5d7a('0x16')](function(_0x1635d1){if(_0x1635d1[_0x5d7a('0x2b')][0x0][_0x5d7a('0x2c')]){return _0x4e0100[_0x5d7a('0x21')]({'messageId':_0x1635d1[_0x5d7a('0x2b')][0x0][_0x5d7a('0x2c')]});}})[_0x5d7a('0x22')](function(_0x4f38ac){logger[_0x5d7a('0x2d')](_0x5d7a('0x2e'),_0x4f38ac);});break;}}})['finally'](function(){_0x3f76e7();});}else{_0x3f76e7();}}},'charset':'utf8mb4','collate':_0x5d7a('0x2f')});};