Built motion from commit (unavailable).|2.5.19
[motion2.git] / server / api / mailAccount / mailAccount.rpc.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 _0xec56=['mapKey','contact','messageId','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','update','interaction','created','create','attachments','originTo','originCc','bcc','Attachment','Attachments','UserId','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','GetMailAccount','MailAccount','findAll','options','raw','attributes','limit','include','map','model','find','where','ShowMailAccount','NotifyMailAccount','body','difference','CmContact','rawAttributes','createdAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','DESC','MailApplication','Applications','MailServerOut','Smtp','get','omit','applications','priority','push','close','autoclose','*,*,*,*','Contacts','length'];(function(_0x4a209a,_0x575ff9){var _0x4b3c20=function(_0x1a50c1){while(--_0x1a50c1){_0x4a209a['push'](_0x4a209a['shift']());}};_0x4b3c20(++_0x575ff9);}(_0xec56,0x1bd));var _0x6ec5=function(_0x1b54d3,_0x1ed80d){_0x1b54d3=_0x1b54d3-0x0;var _0x5d35bd=_0xec56[_0x1b54d3];return _0x5d35bd;};'use strict';var _=require(_0x6ec5('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x6ec5('0x1'));var rs=require(_0x6ec5('0x2'));var fs=require('fs');var Redis=require(_0x6ec5('0x3'));var db=require(_0x6ec5('0x4'))['db'];var utils=require(_0x6ec5('0x5'));var logger=require(_0x6ec5('0x6'))(_0x6ec5('0x7'));var config=require(_0x6ec5('0x8'));var jayson=require(_0x6ec5('0x9'));var client=jayson[_0x6ec5('0xa')][_0x6ec5('0xb')]({'port':0x232c});config[_0x6ec5('0xc')]=_[_0x6ec5('0xd')](config[_0x6ec5('0xc')],{'host':_0x6ec5('0xe'),'port':0x18eb});var socket=require(_0x6ec5('0xf'))(new Redis(config[_0x6ec5('0xc')]));require(_0x6ec5('0x10'))[_0x6ec5('0x11')](socket);function respondWithRpcPromise(_0x4a23b6,_0x2e880d,_0x3ef4f6){return new BPromise(function(_0x444093,_0x1964ae){return client[_0x6ec5('0x12')](_0x4a23b6,_0x3ef4f6)[_0x6ec5('0x13')](function(_0x1d5b76){logger['info'](_0x6ec5('0x14'),_0x2e880d,_0x6ec5('0x15'));logger[_0x6ec5('0x16')](_0x6ec5('0x17'),_0x2e880d,_0x6ec5('0x15'),JSON[_0x6ec5('0x18')](_0x1d5b76));if(_0x1d5b76[_0x6ec5('0x19')]){if(_0x1d5b76[_0x6ec5('0x19')]['code']===0x1f4){logger[_0x6ec5('0x19')]('MailAccount,\x20%s,\x20%s',_0x2e880d,_0x1d5b76[_0x6ec5('0x19')][_0x6ec5('0x1a')]);return _0x1964ae(_0x1d5b76[_0x6ec5('0x19')][_0x6ec5('0x1a')]);}logger[_0x6ec5('0x19')]('MailAccount,\x20%s,\x20%s',_0x2e880d,_0x1d5b76[_0x6ec5('0x19')][_0x6ec5('0x1a')]);return _0x444093(_0x1d5b76[_0x6ec5('0x19')][_0x6ec5('0x1a')]);}else{logger[_0x6ec5('0x1b')](_0x6ec5('0x14'),_0x2e880d,_0x6ec5('0x15'));_0x444093(_0x1d5b76[_0x6ec5('0x1c')][_0x6ec5('0x1a')]);}})[_0x6ec5('0x1d')](function(_0x17f7a2){logger[_0x6ec5('0x19')](_0x6ec5('0x14'),_0x2e880d,_0x17f7a2);_0x1964ae(_0x17f7a2);});});}exports[_0x6ec5('0x1e')]=function(_0x21a8da){var _0x3d08e9=this;return new Promise(function(_0x12ba7f,_0x4abd5d){return db[_0x6ec5('0x1f')][_0x6ec5('0x20')]({'raw':_0x21a8da[_0x6ec5('0x21')]?_0x21a8da[_0x6ec5('0x21')][_0x6ec5('0x22')]===undefined?!![]:![]:!![],'where':_0x21a8da[_0x6ec5('0x21')]?_0x21a8da[_0x6ec5('0x21')]['where']||null:null,'attributes':_0x21a8da[_0x6ec5('0x21')]?_0x21a8da[_0x6ec5('0x21')][_0x6ec5('0x23')]||null:null,'limit':_0x21a8da[_0x6ec5('0x21')]?_0x21a8da['options'][_0x6ec5('0x24')]||null:null,'include':_0x21a8da[_0x6ec5('0x21')]?_0x21a8da['options'][_0x6ec5('0x25')]?_[_0x6ec5('0x26')](_0x21a8da[_0x6ec5('0x21')]['include'],function(_0x1b779a){return{'model':db[_0x1b779a[_0x6ec5('0x27')]],'as':_0x1b779a['as'],'attributes':_0x1b779a[_0x6ec5('0x23')],'include':_0x1b779a[_0x6ec5('0x25')]?_[_0x6ec5('0x26')](_0x1b779a['include'],function(_0x171e2a){return{'model':db[_0x171e2a[_0x6ec5('0x27')]],'as':_0x171e2a['as'],'attributes':_0x171e2a['attributes'],'include':_0x171e2a[_0x6ec5('0x25')]?_[_0x6ec5('0x26')](_0x171e2a['include'],function(_0x3d36cb){return{'model':db[_0x3d36cb[_0x6ec5('0x27')]],'as':_0x3d36cb['as'],'attributes':_0x3d36cb[_0x6ec5('0x23')]};}):[]};}):[]};}):[]:[]})[_0x6ec5('0x13')](function(_0x116659){logger['info'](_0x6ec5('0x1e'),_0x21a8da);logger[_0x6ec5('0x16')](_0x6ec5('0x1e'),_0x21a8da,JSON[_0x6ec5('0x18')](_0x116659));_0x12ba7f(_0x116659);})[_0x6ec5('0x1d')](function(_0x22c3d3){logger[_0x6ec5('0x19')]('GetMailAccount',_0x22c3d3[_0x6ec5('0x1a')],_0x21a8da);_0x4abd5d(_0x3d08e9['error'](0x1f4,_0x22c3d3[_0x6ec5('0x1a')]));});});};exports['ShowMailAccount']=function(_0x424ec7){var _0x3115e3=this;return new Promise(function(_0x4adf14,_0x5db924){return db[_0x6ec5('0x1f')][_0x6ec5('0x28')]({'raw':_0x424ec7['options']?_0x424ec7[_0x6ec5('0x21')][_0x6ec5('0x22')]===undefined?!![]:![]:!![],'where':_0x424ec7['options']?_0x424ec7[_0x6ec5('0x21')][_0x6ec5('0x29')]||null:null,'attributes':_0x424ec7[_0x6ec5('0x21')]?_0x424ec7[_0x6ec5('0x21')][_0x6ec5('0x23')]||null:null,'include':_0x424ec7[_0x6ec5('0x21')]?_0x424ec7[_0x6ec5('0x21')][_0x6ec5('0x25')]?_['map'](_0x424ec7[_0x6ec5('0x21')]['include'],function(_0x9fec63){return{'model':db[_0x9fec63[_0x6ec5('0x27')]],'as':_0x9fec63['as'],'attributes':_0x9fec63[_0x6ec5('0x23')],'include':_0x9fec63[_0x6ec5('0x25')]?_[_0x6ec5('0x26')](_0x9fec63[_0x6ec5('0x25')],function(_0xd2bd6f){return{'model':db[_0xd2bd6f[_0x6ec5('0x27')]],'as':_0xd2bd6f['as'],'attributes':_0xd2bd6f[_0x6ec5('0x23')],'include':_0xd2bd6f[_0x6ec5('0x25')]?_[_0x6ec5('0x26')](_0xd2bd6f['include'],function(_0x5a5cf7){return{'model':db[_0x5a5cf7[_0x6ec5('0x27')]],'as':_0x5a5cf7['as'],'attributes':_0x5a5cf7['attributes']};}):[]};}):[]};}):[]:[]})[_0x6ec5('0x13')](function(_0x370e18){logger[_0x6ec5('0x1b')](_0x6ec5('0x2a'),_0x424ec7);logger[_0x6ec5('0x16')](_0x6ec5('0x2a'),_0x424ec7,JSON[_0x6ec5('0x18')](_0x370e18));_0x4adf14(_0x370e18);})['catch'](function(_0x239920){logger[_0x6ec5('0x19')](_0x6ec5('0x2a'),_0x239920[_0x6ec5('0x1a')],_0x424ec7);_0x5db924(_0x3115e3[_0x6ec5('0x19')](0x1f4,_0x239920[_0x6ec5('0x1a')]));});});};exports[_0x6ec5('0x2b')]=function(_0x4354e4){var _0x17abcb=this;return new Promise(function(_0x53dcd8,_0x28f7b1){var _0x4a2f6e={'body':_0x4354e4[_0x6ec5('0x2c')],'channel':'mail'};var _0x18b409=_[_0x6ec5('0x2d')](_['keys'](db[_0x6ec5('0x2e')][_0x6ec5('0x2f')]),[_0x6ec5('0x30'),'updatedAt',_0x6ec5('0x31'),_0x6ec5('0x32')]);var _0x4a3e6b=![];if(_0x4354e4[_0x6ec5('0x2c')]['id']){delete _0x4354e4[_0x6ec5('0x2c')]['id'];}if(_[_0x6ec5('0x33')](_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x34')])){return _0x28f7b1(_0x17abcb[_0x6ec5('0x19')](0x1f4,_0x6ec5('0x35')));}if(_[_0x6ec5('0x33')](_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x2c')])||_0x4354e4[_0x6ec5('0x2c')]['body']===''){return _0x28f7b1(_0x17abcb[_0x6ec5('0x19')](0x1f4,_0x6ec5('0x36')));}if(_[_0x6ec5('0x33')](_0x4354e4[_0x6ec5('0x2c')]['mapKey'])){return _0x28f7b1(_0x17abcb[_0x6ec5('0x19')](0x1f4,_0x6ec5('0x37')+_0x18b409));}if(!_['includes'](_0x18b409,_0x4354e4[_0x6ec5('0x2c')]['mapKey'])){return _0x28f7b1(_0x17abcb[_0x6ec5('0x19')](0x1f4,_0x6ec5('0x38')+_0x18b409));}var _0x24722c={};_0x24722c[_0x4354e4[_0x6ec5('0x2c')]['mapKey']]=_0x4354e4['body'][_0x6ec5('0x34')];return db['MailAccount'][_0x6ec5('0x28')]({'where':{'id':_0x4354e4[_0x6ec5('0x39')]['id']},'include':[{'model':db[_0x6ec5('0x3a')],'as':_0x6ec5('0x3b'),'include':[{'model':db[_0x6ec5('0x2e')],'as':'Contacts','where':_0x24722c,'limit':0x1,'order':[['updatedAt',_0x6ec5('0x3c')]]}]},{'model':db[_0x6ec5('0x3d')],'as':_0x6ec5('0x3e')},{'model':db[_0x6ec5('0x3f')],'as':_0x6ec5('0x40')}]})[_0x6ec5('0x13')](function(_0x4013b1){if(_0x4013b1&&_0x4013b1[_0x6ec5('0x3b')]){var _0x1018da=_0x4013b1[_0x6ec5('0x41')]({'plain':!![]});_0x4a2f6e[_0x6ec5('0x39')]=_[_0x6ec5('0x42')](_0x1018da,[_0x6ec5('0x3e'),_0x6ec5('0x3b')]);_0x4a2f6e['applications']=_0x1018da[_0x6ec5('0x3e')];_0x4a2f6e['list']=_0x1018da[_0x6ec5('0x3b')];_0x4a2f6e[_0x6ec5('0x43')]=_['orderBy'](_0x4a2f6e[_0x6ec5('0x43')],[_0x6ec5('0x44')],['asc']);if(_0x4a2f6e[_0x6ec5('0x39')]&&_0x4a2f6e[_0x6ec5('0x39')]['autoclose']){_0x4a2f6e['applications'][_0x6ec5('0x45')]({'id':0x0,'priority':_0x4a2f6e['applications']['length']+0x1,'app':_0x6ec5('0x46'),'appdata':_0x6ec5('0x47'),'interval':_0x6ec5('0x48')});}if(_0x4a2f6e[_0x6ec5('0x39')]['Applications']){delete _0x4a2f6e[_0x6ec5('0x39')][_0x6ec5('0x3e')];}if(_0x4a2f6e[_0x6ec5('0x39')][_0x6ec5('0x3b')]){delete _0x4a2f6e[_0x6ec5('0x39')][_0x6ec5('0x3b')];}if(_0x1018da[_0x6ec5('0x3b')][_0x6ec5('0x49')][_0x6ec5('0x4a')]){return _0x1018da[_0x6ec5('0x3b')][_0x6ec5('0x49')][0x0];}var _0x4370f2=_[_0x6ec5('0xd')](_0x4354e4['body'],{'firstName':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x34')],'ListId':_0x1018da['ListId']});_0x4370f2[_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x4b')]]=_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x34')];return db[_0x6ec5('0x2e')]['create'](_0x4370f2);}else{throw new Error('List\x20not\x20found');}})[_0x6ec5('0x13')](function(_0x5f056d){_0x4a2f6e[_0x6ec5('0x4c')]=_0x5f056d;if(_0x5f056d){if(!_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')][_0x6ec5('0x4d')]){_0x4354e4[_0x6ec5('0x2c')]['message'][_0x6ec5('0x4d')]=rs['generate']()+'\x20'+_0x4354e4['body']['message'][_0x6ec5('0x34')];}var _0x3f4083={'ContactId':_0x5f056d['id'],'MailAccountId':_0x4354e4['account']['id'],'inReplyTo':_0x4354e4['body'][_0x6ec5('0x1a')][_0x6ec5('0x4d')],'to':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')][_0x6ec5('0x34')],'cc':_0x4354e4['body'][_0x6ec5('0x1a')]['cc'],'subject':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')][_0x6ec5('0x4e')],'attach':_0x4354e4[_0x6ec5('0x2c')]['message'][_0x6ec5('0x4f')],'lastMsgAt':moment()[_0x6ec5('0x50')](_0x6ec5('0x51')),'lastMsgDirection':'in','lastMsgBody':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x2c')]};return db[_0x6ec5('0x52')][_0x6ec5('0x28')]({'where':{'closed':![],'MailAccountId':_0x4354e4[_0x6ec5('0x39')]['id']},'include':[{'model':db[_0x6ec5('0x53')],'as':_0x6ec5('0x54'),'attributes':[_0x6ec5('0x4d')],'where':{'messageId':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')][_0x6ec5('0x55')]}}]})[_0x6ec5('0x13')](function(_0x2ee596){if(_0x2ee596){return[_0x2ee596,![]];}return db[_0x6ec5('0x52')]['create'](_0x3f4083)[_0x6ec5('0x13')](function(_0x594ab3){return[_0x594ab3,!![]];});});}else{throw new Error(_0x6ec5('0x56'));}})['spread'](function(_0x542625,_0x35bf9e){if(_0x542625){_0x4a3e6b=_0x35bf9e;if(!_0x35bf9e){return _0x542625[_0x6ec5('0x57')]({'inReplyTo':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')][_0x6ec5('0x4d')],'to':_0x4354e4['body'][_0x6ec5('0x1a')][_0x6ec5('0x34')],'cc':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')]['cc'],'subject':_0x4354e4[_0x6ec5('0x2c')]['message'][_0x6ec5('0x4e')],'attach':_0x542625[_0x6ec5('0x4f')]?_0x542625[_0x6ec5('0x4f')]:_0x4354e4[_0x6ec5('0x2c')]['message'][_0x6ec5('0x4f')],'substatus':null,'substatusAt':moment()[_0x6ec5('0x50')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()['format'](_0x6ec5('0x51')),'lastMsgDirection':'in','lastMsgBody':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x2c')]});}else{return _0x542625;}}})[_0x6ec5('0x13')](function(_0x23e750){_0x4a2f6e[_0x6ec5('0x58')]=_0x23e750[_0x6ec5('0x41')]({'plain':!![]});_0x4a2f6e[_0x6ec5('0x58')][_0x6ec5('0x59')]=_0x4a3e6b;return db[_0x6ec5('0x53')][_0x6ec5('0x5a')]({'body':_0x4354e4['body'][_0x6ec5('0x2c')],'MailAccountId':_0x4354e4[_0x6ec5('0x39')]['id'],'MailInteractionId':_0x23e750['id'],'direction':'in','ContactId':_0x4a2f6e[_0x6ec5('0x4c')]['id'],'messageId':_0x4354e4[_0x6ec5('0x2c')]['message'][_0x6ec5('0x4d')],'from':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')][_0x6ec5('0x34')],'to':_0x4354e4['body'][_0x6ec5('0x1a')]['to'],'cc':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')]['cc'],'subject':_0x4354e4['body']['message'][_0x6ec5('0x4e')],'attach':_0x4354e4[_0x6ec5('0x2c')]['message'][_0x6ec5('0x4f')],'Attachments':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')][_0x6ec5('0x5b')],'originTo':_0x4354e4['body'][_0x6ec5('0x1a')][_0x6ec5('0x5c')],'originCc':_0x4354e4[_0x6ec5('0x2c')]['message'][_0x6ec5('0x5d')],'bcc':_0x4354e4[_0x6ec5('0x2c')][_0x6ec5('0x1a')][_0x6ec5('0x5e')]},{'include':[{'model':db[_0x6ec5('0x5f')],'as':_0x6ec5('0x60')}]});})[_0x6ec5('0x13')](function(_0xf44b2b){_0x4a2f6e['message']=_0xf44b2b;if(_0x4a2f6e[_0x6ec5('0x58')][_0x6ec5('0x61')]){return db['User']['find']({'attributes':['id',_0x6ec5('0x62')],'where':{'id':_0x4a2f6e[_0x6ec5('0x58')][_0x6ec5('0x61')]}})['then'](function(_0x4055f3){if(_0x4055f3){_0x4a2f6e[_0x6ec5('0x43')][_0x6ec5('0x63')]({'id':0x0,'priority':0x0,'app':_0x6ec5('0x64'),'appdata':_0x4055f3['name']+','+(_0x4a2f6e[_0x6ec5('0x39')][_0x6ec5('0x65')]||0xa),'interval':_0x6ec5('0x48')});}return respondWithRpcPromise(_0x6ec5('0x66'),_0x6ec5('0x67'),_0x4a2f6e);});}return respondWithRpcPromise(_0x6ec5('0x66'),_0x6ec5('0x67'),_0x4a2f6e);})[_0x6ec5('0x13')](function(_0x16b3d8){_0x53dcd8(_0x16b3d8);})['catch'](function(_0x5321e1){_0x28f7b1(_0x17abcb[_0x6ec5('0x19')](0x1f4,_0x5321e1[_0x6ec5('0x1a')]));});});};