Built motion from commit (unavailable).|2.3.92
[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 _0xc508=['push','length','close','*,*,*,*','ListId','create','List\x20not\x20found','contact','messageId','generate','subject','attach','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','update','format','interaction','created','originTo','Attachment','Attachments','UserId','User','name','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','defaults','localhost','socket.io-emitter','redis','register','then','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','info','result','catch','MailAccount','findAll','options','raw','where','attributes','include','map','model','GetMailAccount','find','ShowMailAccount','NotifyMailAccount','body','mail','keys','CmContact','rawAttributes','CompanyId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','updatedAt','MailApplication','MailServerOut','Smtp','get','omit','Applications','applications','orderBy','priority','autoclose'];(function(_0x5de072,_0x4ca272){var _0x4d1dbd=function(_0x21de46){while(--_0x21de46){_0x5de072['push'](_0x5de072['shift']());}};_0x4d1dbd(++_0x4ca272);}(_0xc508,0xe9));var _0x8c50=function(_0x1a8adb,_0x40b6b0){_0x1a8adb=_0x1a8adb-0x0;var _0x222790=_0xc508[_0x1a8adb];return _0x222790;};'use strict';var _=require(_0x8c50('0x0'));var util=require(_0x8c50('0x1'));var moment=require(_0x8c50('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8c50('0x3'));var db=require(_0x8c50('0x4'))['db'];var utils=require(_0x8c50('0x5'));var logger=require(_0x8c50('0x6'))(_0x8c50('0x7'));var config=require(_0x8c50('0x8'));var jayson=require(_0x8c50('0x9'));var client=jayson[_0x8c50('0xa')]['http']({'port':0x232c});config['redis']=_[_0x8c50('0xb')](config['redis'],{'host':_0x8c50('0xc'),'port':0x18eb});var socket=require(_0x8c50('0xd'))(new Redis(config[_0x8c50('0xe')]));require('./mailAccount.socket')[_0x8c50('0xf')](socket);function respondWithRpcPromise(_0x2c0ec9,_0x161c18,_0x14221b){return new BPromise(function(_0x49da20,_0x14f021){return client['request'](_0x2c0ec9,_0x14221b)[_0x8c50('0x10')](function(_0x2d4dd3){logger['info'](_0x8c50('0x11'),_0x161c18,'request\x20sent');logger[_0x8c50('0x12')](_0x8c50('0x13'),_0x161c18,_0x8c50('0x14'),JSON[_0x8c50('0x15')](_0x2d4dd3));if(_0x2d4dd3[_0x8c50('0x16')]){if(_0x2d4dd3[_0x8c50('0x16')]['code']===0x1f4){logger[_0x8c50('0x16')](_0x8c50('0x11'),_0x161c18,_0x2d4dd3[_0x8c50('0x16')][_0x8c50('0x17')]);return _0x14f021(_0x2d4dd3[_0x8c50('0x16')][_0x8c50('0x17')]);}logger[_0x8c50('0x16')]('MailAccount,\x20%s,\x20%s',_0x161c18,_0x2d4dd3[_0x8c50('0x16')][_0x8c50('0x17')]);return _0x49da20(_0x2d4dd3[_0x8c50('0x16')]['message']);}else{logger[_0x8c50('0x18')](_0x8c50('0x11'),_0x161c18,_0x8c50('0x14'));_0x49da20(_0x2d4dd3[_0x8c50('0x19')][_0x8c50('0x17')]);}})[_0x8c50('0x1a')](function(_0x1a3b0e){logger[_0x8c50('0x16')](_0x8c50('0x11'),_0x161c18,_0x1a3b0e);_0x14f021(_0x1a3b0e);});});}exports['GetMailAccount']=function(_0xfaa2b3){var _0x53576d=this;return new Promise(function(_0x59df07,_0x10eced){return db[_0x8c50('0x1b')][_0x8c50('0x1c')]({'raw':_0xfaa2b3[_0x8c50('0x1d')]?_0xfaa2b3[_0x8c50('0x1d')][_0x8c50('0x1e')]===undefined?!![]:![]:!![],'where':_0xfaa2b3[_0x8c50('0x1d')]?_0xfaa2b3[_0x8c50('0x1d')][_0x8c50('0x1f')]||null:null,'attributes':_0xfaa2b3[_0x8c50('0x1d')]?_0xfaa2b3[_0x8c50('0x1d')][_0x8c50('0x20')]||null:null,'limit':_0xfaa2b3[_0x8c50('0x1d')]?_0xfaa2b3[_0x8c50('0x1d')]['limit']||null:null,'include':_0xfaa2b3['options']?_0xfaa2b3['options'][_0x8c50('0x21')]?_[_0x8c50('0x22')](_0xfaa2b3[_0x8c50('0x1d')][_0x8c50('0x21')],function(_0x1088ef){return{'model':db[_0x1088ef[_0x8c50('0x23')]],'as':_0x1088ef['as'],'attributes':_0x1088ef[_0x8c50('0x20')],'include':_0x1088ef['include']?_[_0x8c50('0x22')](_0x1088ef[_0x8c50('0x21')],function(_0x25dead){return{'model':db[_0x25dead[_0x8c50('0x23')]],'as':_0x25dead['as'],'attributes':_0x25dead[_0x8c50('0x20')],'include':_0x25dead[_0x8c50('0x21')]?_[_0x8c50('0x22')](_0x25dead[_0x8c50('0x21')],function(_0x289d01){return{'model':db[_0x289d01['model']],'as':_0x289d01['as'],'attributes':_0x289d01[_0x8c50('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x281b33){logger[_0x8c50('0x18')]('GetMailAccount',_0xfaa2b3);logger['debug'](_0x8c50('0x24'),_0xfaa2b3,JSON['stringify'](_0x281b33));_0x59df07(_0x281b33);})[_0x8c50('0x1a')](function(_0x133085){logger[_0x8c50('0x16')](_0x8c50('0x24'),_0x133085[_0x8c50('0x17')],_0xfaa2b3);_0x10eced(_0x53576d[_0x8c50('0x16')](0x1f4,_0x133085['message']));});});};exports['ShowMailAccount']=function(_0x3a10ac){var _0x1baacf=this;return new Promise(function(_0x5ca8e5,_0x456f23){return db[_0x8c50('0x1b')][_0x8c50('0x25')]({'raw':_0x3a10ac[_0x8c50('0x1d')]?_0x3a10ac[_0x8c50('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x3a10ac[_0x8c50('0x1d')]?_0x3a10ac[_0x8c50('0x1d')][_0x8c50('0x1f')]||null:null,'attributes':_0x3a10ac['options']?_0x3a10ac[_0x8c50('0x1d')][_0x8c50('0x20')]||null:null,'include':_0x3a10ac['options']?_0x3a10ac[_0x8c50('0x1d')][_0x8c50('0x21')]?_['map'](_0x3a10ac['options']['include'],function(_0x88324f){return{'model':db[_0x88324f[_0x8c50('0x23')]],'as':_0x88324f['as'],'attributes':_0x88324f['attributes'],'include':_0x88324f[_0x8c50('0x21')]?_[_0x8c50('0x22')](_0x88324f[_0x8c50('0x21')],function(_0x4d63a7){return{'model':db[_0x4d63a7[_0x8c50('0x23')]],'as':_0x4d63a7['as'],'attributes':_0x4d63a7[_0x8c50('0x20')],'include':_0x4d63a7[_0x8c50('0x21')]?_[_0x8c50('0x22')](_0x4d63a7[_0x8c50('0x21')],function(_0x34fdb3){return{'model':db[_0x34fdb3[_0x8c50('0x23')]],'as':_0x34fdb3['as'],'attributes':_0x34fdb3[_0x8c50('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2ca947){logger[_0x8c50('0x18')](_0x8c50('0x26'),_0x3a10ac);logger['debug'](_0x8c50('0x26'),_0x3a10ac,JSON[_0x8c50('0x15')](_0x2ca947));_0x5ca8e5(_0x2ca947);})['catch'](function(_0x2bacfa){logger[_0x8c50('0x16')](_0x8c50('0x26'),_0x2bacfa[_0x8c50('0x17')],_0x3a10ac);_0x456f23(_0x1baacf[_0x8c50('0x16')](0x1f4,_0x2bacfa['message']));});});};exports[_0x8c50('0x27')]=function(_0x1356df){var _0x202517=this;return new Promise(function(_0x30bf45,_0x56ccbb){var _0x24dbfd={'body':_0x1356df[_0x8c50('0x28')],'channel':_0x8c50('0x29')};var _0x50ead7=_['difference'](_[_0x8c50('0x2a')](db[_0x8c50('0x2b')][_0x8c50('0x2c')]),['createdAt','updatedAt',_0x8c50('0x2d'),'ListId']);var _0x15b86d=![];if(_0x1356df[_0x8c50('0x28')]['id']){delete _0x1356df[_0x8c50('0x28')]['id'];}if(_[_0x8c50('0x2e')](_0x1356df[_0x8c50('0x28')][_0x8c50('0x2f')])){return _0x56ccbb(_0x202517['error'](0x1f4,'from\x20is\x20mandatory'));}if(_[_0x8c50('0x2e')](_0x1356df['body'][_0x8c50('0x28')])||_0x1356df[_0x8c50('0x28')][_0x8c50('0x28')]===''){return _0x56ccbb(_0x202517[_0x8c50('0x16')](0x1f4,_0x8c50('0x30')));}if(_[_0x8c50('0x2e')](_0x1356df[_0x8c50('0x28')][_0x8c50('0x31')])){return _0x56ccbb(_0x202517[_0x8c50('0x16')](0x1f4,_0x8c50('0x32')+_0x50ead7));}if(!_['includes'](_0x50ead7,_0x1356df[_0x8c50('0x28')]['mapKey'])){return _0x56ccbb(_0x202517['error'](0x1f4,_0x8c50('0x33')+_0x50ead7));}var _0x51d144={};_0x51d144[_0x1356df[_0x8c50('0x28')][_0x8c50('0x31')]]=_0x1356df[_0x8c50('0x28')][_0x8c50('0x2f')];return db[_0x8c50('0x1b')][_0x8c50('0x25')]({'where':{'id':_0x1356df[_0x8c50('0x34')]['id']},'include':[{'model':db[_0x8c50('0x35')],'as':_0x8c50('0x36'),'include':[{'model':db['CmContact'],'as':_0x8c50('0x37'),'where':_0x51d144,'limit':0x1,'order':[[_0x8c50('0x38'),'DESC']]}]},{'model':db[_0x8c50('0x39')],'as':'Applications'},{'model':db[_0x8c50('0x3a')],'as':_0x8c50('0x3b')}]})[_0x8c50('0x10')](function(_0x4814f4){if(_0x4814f4&&_0x4814f4[_0x8c50('0x36')]){var _0x596030=_0x4814f4[_0x8c50('0x3c')]({'plain':!![]});_0x24dbfd[_0x8c50('0x34')]=_[_0x8c50('0x3d')](_0x596030,[_0x8c50('0x3e'),_0x8c50('0x36')]);_0x24dbfd[_0x8c50('0x3f')]=_0x596030[_0x8c50('0x3e')];_0x24dbfd['list']=_0x596030[_0x8c50('0x36')];_0x24dbfd[_0x8c50('0x3f')]=_[_0x8c50('0x40')](_0x24dbfd['applications'],[_0x8c50('0x41')],['asc']);if(_0x24dbfd[_0x8c50('0x34')]&&_0x24dbfd[_0x8c50('0x34')][_0x8c50('0x42')]){_0x24dbfd[_0x8c50('0x3f')][_0x8c50('0x43')]({'id':0x0,'priority':_0x24dbfd[_0x8c50('0x3f')][_0x8c50('0x44')]+0x1,'app':_0x8c50('0x45'),'appdata':'autoclose','interval':_0x8c50('0x46')});}if(_0x24dbfd[_0x8c50('0x34')]['Applications']){delete _0x24dbfd['account'][_0x8c50('0x3e')];}if(_0x24dbfd[_0x8c50('0x34')][_0x8c50('0x36')]){delete _0x24dbfd[_0x8c50('0x34')]['List'];}if(_0x596030[_0x8c50('0x36')][_0x8c50('0x37')][_0x8c50('0x44')]){return _0x596030[_0x8c50('0x36')][_0x8c50('0x37')][0x0];}var _0x2055af=_['defaults'](_0x1356df[_0x8c50('0x28')],{'firstName':_0x1356df[_0x8c50('0x28')]['from'],'ListId':_0x596030[_0x8c50('0x47')]});_0x2055af[_0x1356df[_0x8c50('0x28')][_0x8c50('0x31')]]=_0x1356df[_0x8c50('0x28')]['from'];return db[_0x8c50('0x2b')][_0x8c50('0x48')](_0x2055af);}else{throw new Error(_0x8c50('0x49'));}})[_0x8c50('0x10')](function(_0x351ea0){_0x24dbfd[_0x8c50('0x4a')]=_0x351ea0;if(_0x351ea0){if(!_0x1356df['body'][_0x8c50('0x17')][_0x8c50('0x4b')]){_0x1356df['body']['message'][_0x8c50('0x4b')]=rs[_0x8c50('0x4c')]()+'\x20'+_0x1356df['body'][_0x8c50('0x17')][_0x8c50('0x2f')];}var _0x16ec19={'ContactId':_0x351ea0['id'],'MailAccountId':_0x1356df['account']['id'],'inReplyTo':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')][_0x8c50('0x4b')],'to':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')][_0x8c50('0x2f')],'cc':_0x1356df['body']['message']['cc'],'subject':_0x1356df[_0x8c50('0x28')]['message'][_0x8c50('0x4d')],'attach':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')][_0x8c50('0x4e')],'lastMsgAt':moment()['format'](_0x8c50('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x1356df[_0x8c50('0x28')][_0x8c50('0x28')]};return db[_0x8c50('0x50')][_0x8c50('0x25')]({'where':{'closed':![],'MailAccountId':_0x1356df['account']['id']},'include':[{'model':db[_0x8c50('0x51')],'as':_0x8c50('0x52'),'attributes':['messageId'],'where':{'messageId':_0x1356df[_0x8c50('0x28')]['message'][_0x8c50('0x53')]}}]})[_0x8c50('0x10')](function(_0x5a5e58){if(_0x5a5e58){return[_0x5a5e58,![]];}return db['MailInteraction'][_0x8c50('0x48')](_0x16ec19)['then'](function(_0x33a2a0){return[_0x33a2a0,!![]];});});}else{throw new Error(_0x8c50('0x54'));}})[_0x8c50('0x55')](function(_0x2e1eea,_0x51feb0){if(_0x2e1eea){_0x15b86d=_0x51feb0;if(!_0x51feb0){return _0x2e1eea[_0x8c50('0x56')]({'inReplyTo':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')][_0x8c50('0x4b')],'to':_0x1356df['body'][_0x8c50('0x17')]['from'],'cc':_0x1356df['body'][_0x8c50('0x17')]['cc'],'subject':_0x1356df['body'][_0x8c50('0x17')][_0x8c50('0x4d')],'attach':_0x2e1eea['attach']?_0x2e1eea[_0x8c50('0x4e')]:_0x1356df['body'][_0x8c50('0x17')][_0x8c50('0x4e')],'substatus':null,'substatusAt':moment()['format'](_0x8c50('0x4f')),'lastMsgAt':moment()[_0x8c50('0x57')](_0x8c50('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x1356df[_0x8c50('0x28')]['body']});}else{return _0x2e1eea;}}})[_0x8c50('0x10')](function(_0x49596f){_0x24dbfd[_0x8c50('0x58')]=_0x49596f[_0x8c50('0x3c')]({'plain':!![]});_0x24dbfd['interaction'][_0x8c50('0x59')]=_0x15b86d;return db[_0x8c50('0x51')][_0x8c50('0x48')]({'body':_0x1356df[_0x8c50('0x28')][_0x8c50('0x28')],'MailAccountId':_0x1356df[_0x8c50('0x34')]['id'],'MailInteractionId':_0x49596f['id'],'direction':'in','ContactId':_0x24dbfd[_0x8c50('0x4a')]['id'],'messageId':_0x1356df['body']['message'][_0x8c50('0x4b')],'from':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')]['from'],'to':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')]['to'],'cc':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')]['cc'],'subject':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')]['subject'],'attach':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')][_0x8c50('0x4e')],'Attachments':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')]['attachments'],'originTo':_0x1356df[_0x8c50('0x28')]['message'][_0x8c50('0x5a')],'originCc':_0x1356df[_0x8c50('0x28')][_0x8c50('0x17')]['originCc'],'bcc':_0x1356df['body']['message']['bcc']},{'include':[{'model':db[_0x8c50('0x5b')],'as':_0x8c50('0x5c')}]});})['then'](function(_0x1ce9be){_0x24dbfd[_0x8c50('0x17')]=_0x1ce9be;if(_0x24dbfd[_0x8c50('0x58')][_0x8c50('0x5d')]){return db[_0x8c50('0x5e')][_0x8c50('0x25')]({'attributes':['id',_0x8c50('0x5f')],'where':{'id':_0x24dbfd[_0x8c50('0x58')][_0x8c50('0x5d')]}})[_0x8c50('0x10')](function(_0xb342ee){if(_0xb342ee){_0x24dbfd[_0x8c50('0x3f')]['unshift']({'id':0x0,'priority':0x0,'app':_0x8c50('0x60'),'appdata':_0xb342ee[_0x8c50('0x5f')]+','+(_0x24dbfd['account'][_0x8c50('0x61')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x8c50('0x62'),_0x8c50('0x63'),_0x24dbfd);});}return respondWithRpcPromise('Start','startRouting',_0x24dbfd);})[_0x8c50('0x10')](function(_0x53e40e){_0x30bf45(_0x53e40e);})[_0x8c50('0x1a')](function(_0xbb6330){_0x56ccbb(_0x202517['error'](0x1f4,_0xbb6330['message']));});});};