661a5df9417fd13ed569df28818713f9a69f8465
[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 _0x0c07=['push','*,*,*,*','length','create','contact','messageId','generate','subject','attach','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','Messages','Contact\x20not\x20found','update','format','interaction','created','originTo','originCc','bcc','ChatWebsiteId','originChannel','Attachment','Attachments','UserId','name','agent','Start','startRouting','util','moment','bluebird','ioredis','../../mysqldb','../../config/environment','client','http','redis','socket.io-emitter','./mailAccount.socket','request','info','MailAccount,\x20%s,\x20%s','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','GetMailAccount','MailAccount','findAll','options','where','limit','map','model','attributes','include','then','debug','stringify','catch','ShowMailAccount','find','raw','NotifyMailAccount','mail','difference','keys','rawAttributes','createdAt','CompanyId','ListId','body','isNil','from','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','CmContact','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','get','omit','applications','orderBy','priority','autoclose'];(function(_0x19e120,_0x3fc34a){var _0x6e9933=function(_0x4982bf){while(--_0x4982bf){_0x19e120['push'](_0x19e120['shift']());}};_0x6e9933(++_0x3fc34a);}(_0x0c07,0x199));var _0x70c0=function(_0xf39273,_0x15899a){_0xf39273=_0xf39273-0x0;var _0x27cc53=_0x0c07[_0xf39273];return _0x27cc53;};'use strict';var _=require('lodash');var util=require(_0x70c0('0x0'));var moment=require(_0x70c0('0x1'));var BPromise=require(_0x70c0('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x70c0('0x3'));var db=require(_0x70c0('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x70c0('0x5'));var jayson=require('jayson/promise');var client=jayson[_0x70c0('0x6')][_0x70c0('0x7')]({'port':0x232c});config[_0x70c0('0x8')]=_['defaults'](config[_0x70c0('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0x70c0('0x9'))(new Redis(config['redis']));require(_0x70c0('0xa'))['register'](socket);function respondWithRpcPromise(_0x551482,_0xb62669,_0x13e9ef){return new BPromise(function(_0x39a500,_0x5dab56){return client[_0x70c0('0xb')](_0x551482,_0x13e9ef)['then'](function(_0x30bc49){logger[_0x70c0('0xc')](_0x70c0('0xd'),_0xb62669,_0x70c0('0xe'));logger['debug'](_0x70c0('0xf'),_0xb62669,'request\x20sent',JSON['stringify'](_0x30bc49));if(_0x30bc49[_0x70c0('0x10')]){if(_0x30bc49[_0x70c0('0x10')][_0x70c0('0x11')]===0x1f4){logger[_0x70c0('0x10')](_0x70c0('0xd'),_0xb62669,_0x30bc49['error'][_0x70c0('0x12')]);return _0x5dab56(_0x30bc49['error']['message']);}logger[_0x70c0('0x10')]('MailAccount,\x20%s,\x20%s',_0xb62669,_0x30bc49[_0x70c0('0x10')][_0x70c0('0x12')]);return _0x39a500(_0x30bc49['error'][_0x70c0('0x12')]);}else{logger[_0x70c0('0xc')](_0x70c0('0xd'),_0xb62669,_0x70c0('0xe'));_0x39a500(_0x30bc49[_0x70c0('0x13')]['message']);}})['catch'](function(_0x38e191){logger[_0x70c0('0x10')](_0x70c0('0xd'),_0xb62669,_0x38e191);_0x5dab56(_0x38e191);});});}exports[_0x70c0('0x14')]=function(_0x2203fe){var _0x482076=this;return new Promise(function(_0x56ea96,_0x42725b){return db[_0x70c0('0x15')][_0x70c0('0x16')]({'raw':_0x2203fe[_0x70c0('0x17')]?_0x2203fe[_0x70c0('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x2203fe[_0x70c0('0x17')]?_0x2203fe['options'][_0x70c0('0x18')]||null:null,'attributes':_0x2203fe[_0x70c0('0x17')]?_0x2203fe['options']['attributes']||null:null,'limit':_0x2203fe[_0x70c0('0x17')]?_0x2203fe['options'][_0x70c0('0x19')]||null:null,'include':_0x2203fe[_0x70c0('0x17')]?_0x2203fe[_0x70c0('0x17')]['include']?_[_0x70c0('0x1a')](_0x2203fe[_0x70c0('0x17')]['include'],function(_0xf29132){return{'model':db[_0xf29132[_0x70c0('0x1b')]],'as':_0xf29132['as'],'attributes':_0xf29132[_0x70c0('0x1c')],'include':_0xf29132[_0x70c0('0x1d')]?_[_0x70c0('0x1a')](_0xf29132[_0x70c0('0x1d')],function(_0x19a4ed){return{'model':db[_0x19a4ed[_0x70c0('0x1b')]],'as':_0x19a4ed['as'],'attributes':_0x19a4ed['attributes'],'include':_0x19a4ed[_0x70c0('0x1d')]?_[_0x70c0('0x1a')](_0x19a4ed[_0x70c0('0x1d')],function(_0x102362){return{'model':db[_0x102362[_0x70c0('0x1b')]],'as':_0x102362['as'],'attributes':_0x102362['attributes']};}):[]};}):[]};}):[]:[]})[_0x70c0('0x1e')](function(_0x36e89c){logger[_0x70c0('0xc')]('GetMailAccount',_0x2203fe);logger[_0x70c0('0x1f')](_0x70c0('0x14'),_0x2203fe,JSON[_0x70c0('0x20')](_0x36e89c));_0x56ea96(_0x36e89c);})[_0x70c0('0x21')](function(_0x307523){logger[_0x70c0('0x10')](_0x70c0('0x14'),_0x307523[_0x70c0('0x12')],_0x2203fe);_0x42725b(_0x482076['error'](0x1f4,_0x307523[_0x70c0('0x12')]));});});};exports[_0x70c0('0x22')]=function(_0x211d72){var _0x420ecd=this;return new Promise(function(_0x512739,_0x1212be){return db['MailAccount'][_0x70c0('0x23')]({'raw':_0x211d72[_0x70c0('0x17')]?_0x211d72[_0x70c0('0x17')][_0x70c0('0x24')]===undefined?!![]:![]:!![],'where':_0x211d72[_0x70c0('0x17')]?_0x211d72[_0x70c0('0x17')]['where']||null:null,'attributes':_0x211d72[_0x70c0('0x17')]?_0x211d72['options'][_0x70c0('0x1c')]||null:null,'include':_0x211d72[_0x70c0('0x17')]?_0x211d72[_0x70c0('0x17')][_0x70c0('0x1d')]?_[_0x70c0('0x1a')](_0x211d72[_0x70c0('0x17')][_0x70c0('0x1d')],function(_0x20cb5e){return{'model':db[_0x20cb5e['model']],'as':_0x20cb5e['as'],'attributes':_0x20cb5e['attributes'],'include':_0x20cb5e[_0x70c0('0x1d')]?_['map'](_0x20cb5e['include'],function(_0x539cd2){return{'model':db[_0x539cd2[_0x70c0('0x1b')]],'as':_0x539cd2['as'],'attributes':_0x539cd2[_0x70c0('0x1c')],'include':_0x539cd2[_0x70c0('0x1d')]?_[_0x70c0('0x1a')](_0x539cd2[_0x70c0('0x1d')],function(_0x1dbdba){return{'model':db[_0x1dbdba[_0x70c0('0x1b')]],'as':_0x1dbdba['as'],'attributes':_0x1dbdba['attributes']};}):[]};}):[]};}):[]:[]})[_0x70c0('0x1e')](function(_0x4baed3){logger[_0x70c0('0xc')](_0x70c0('0x22'),_0x211d72);logger[_0x70c0('0x1f')](_0x70c0('0x22'),_0x211d72,JSON[_0x70c0('0x20')](_0x4baed3));_0x512739(_0x4baed3);})[_0x70c0('0x21')](function(_0x3b8b93){logger[_0x70c0('0x10')]('ShowMailAccount',_0x3b8b93[_0x70c0('0x12')],_0x211d72);_0x1212be(_0x420ecd['error'](0x1f4,_0x3b8b93[_0x70c0('0x12')]));});});};exports[_0x70c0('0x25')]=function(_0x148102){var _0xb1e84b=this;return new Promise(function(_0x4fbf17,_0x6a8062){var _0x1f747d={'body':_0x148102['body'],'channel':_0x70c0('0x26')};var _0x4baf9d=_[_0x70c0('0x27')](_[_0x70c0('0x28')](db['CmContact'][_0x70c0('0x29')]),[_0x70c0('0x2a'),'updatedAt',_0x70c0('0x2b'),_0x70c0('0x2c')]);var _0xa11100=![];if(_0x148102[_0x70c0('0x2d')]['id']){delete _0x148102['body']['id'];}if(_[_0x70c0('0x2e')](_0x148102[_0x70c0('0x2d')][_0x70c0('0x2f')])){return _0x6a8062(_0xb1e84b[_0x70c0('0x10')](0x1f4,'from\x20is\x20mandatory'));}if(_[_0x70c0('0x2e')](_0x148102[_0x70c0('0x2d')][_0x70c0('0x2d')])||_0x148102['body']['body']===''){return _0x6a8062(_0xb1e84b[_0x70c0('0x10')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x70c0('0x2e')](_0x148102[_0x70c0('0x2d')][_0x70c0('0x30')])){return _0x6a8062(_0xb1e84b[_0x70c0('0x10')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4baf9d));}if(!_['includes'](_0x4baf9d,_0x148102['body'][_0x70c0('0x30')])){return _0x6a8062(_0xb1e84b[_0x70c0('0x10')](0x1f4,_0x70c0('0x31')+_0x4baf9d));}var _0x31fc0e={};_0x31fc0e[_0x148102[_0x70c0('0x2d')]['mapKey']]=_0x148102[_0x70c0('0x2d')]['from'];return db['MailAccount'][_0x70c0('0x23')]({'where':{'id':_0x148102[_0x70c0('0x32')]['id']},'include':[{'model':db[_0x70c0('0x33')],'as':_0x70c0('0x34'),'include':[{'model':db[_0x70c0('0x35')],'as':_0x70c0('0x36'),'where':_0x31fc0e,'limit':0x1,'order':[['updatedAt',_0x70c0('0x37')]]}]},{'model':db[_0x70c0('0x38')],'as':_0x70c0('0x39')},{'model':db[_0x70c0('0x3a')],'as':_0x70c0('0x3b')}]})['then'](function(_0x400166){if(_0x400166&&_0x400166[_0x70c0('0x34')]){var _0x39dd9d=_0x400166[_0x70c0('0x3c')]({'plain':!![]});_0x1f747d[_0x70c0('0x32')]=_[_0x70c0('0x3d')](_0x39dd9d,[_0x70c0('0x39'),_0x70c0('0x34')]);_0x1f747d[_0x70c0('0x3e')]=_0x39dd9d[_0x70c0('0x39')];_0x1f747d['list']=_0x39dd9d['List'];_0x1f747d[_0x70c0('0x3e')]=_[_0x70c0('0x3f')](_0x1f747d[_0x70c0('0x3e')],[_0x70c0('0x40')],['asc']);if(_0x1f747d[_0x70c0('0x32')]&&_0x1f747d[_0x70c0('0x32')][_0x70c0('0x41')]){_0x1f747d[_0x70c0('0x3e')][_0x70c0('0x42')]({'id':0x0,'priority':_0x1f747d[_0x70c0('0x3e')]['length']+0x1,'app':'close','appdata':'autoclose','interval':_0x70c0('0x43')});}if(_0x1f747d['account'][_0x70c0('0x39')]){delete _0x1f747d[_0x70c0('0x32')][_0x70c0('0x39')];}if(_0x1f747d[_0x70c0('0x32')][_0x70c0('0x34')]){delete _0x1f747d[_0x70c0('0x32')]['List'];}if(_0x39dd9d[_0x70c0('0x34')][_0x70c0('0x36')][_0x70c0('0x44')]){return _0x39dd9d[_0x70c0('0x34')][_0x70c0('0x36')][0x0];}var _0x367f5a=_['defaults'](_0x148102[_0x70c0('0x2d')],{'firstName':_0x148102[_0x70c0('0x2d')][_0x70c0('0x2f')],'ListId':_0x39dd9d['ListId']});_0x367f5a[_0x148102[_0x70c0('0x2d')][_0x70c0('0x30')]]=_0x148102[_0x70c0('0x2d')][_0x70c0('0x2f')];return db['CmContact'][_0x70c0('0x45')](_0x367f5a);}else{throw new Error('List\x20not\x20found');}})[_0x70c0('0x1e')](function(_0x3f1986){_0x1f747d[_0x70c0('0x46')]=_0x3f1986;if(_0x3f1986){if(!_0x148102[_0x70c0('0x2d')]['message'][_0x70c0('0x47')]){_0x148102['body'][_0x70c0('0x12')][_0x70c0('0x47')]=rs[_0x70c0('0x48')]()+'\x20'+_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x2f')];}var _0x2a28da={'ContactId':_0x3f1986['id'],'MailAccountId':_0x148102['account']['id'],'inReplyTo':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x47')],'to':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')]['from'],'cc':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')]['cc'],'subject':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x49')],'attach':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x4a')],'lastMsgAt':moment()['format'](_0x70c0('0x4b')),'lastMsgDirection':'in','lastMsgBody':_0x148102[_0x70c0('0x2d')][_0x70c0('0x2d')]};return db[_0x70c0('0x4c')][_0x70c0('0x23')]({'where':{'closed':![],'MailAccountId':_0x148102['account']['id']},'include':[{'model':db['MailMessage'],'as':_0x70c0('0x4d'),'attributes':[_0x70c0('0x47')],'where':{'messageId':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')]['inReplyTo']}}]})[_0x70c0('0x1e')](function(_0x1a9f74){if(_0x1a9f74){return[_0x1a9f74,![]];}return db[_0x70c0('0x4c')][_0x70c0('0x45')](_0x2a28da)[_0x70c0('0x1e')](function(_0x3b0af2){return[_0x3b0af2,!![]];});});}else{throw new Error(_0x70c0('0x4e'));}})['spread'](function(_0x27cb29,_0x1b6a0e){if(_0x27cb29){_0xa11100=_0x1b6a0e;if(!_0x1b6a0e){return _0x27cb29[_0x70c0('0x4f')]({'inReplyTo':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')]['messageId'],'to':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x2f')],'cc':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')]['cc'],'subject':_0x148102['body'][_0x70c0('0x12')][_0x70c0('0x49')],'attach':_0x27cb29['attach']?_0x27cb29[_0x70c0('0x4a')]:_0x148102[_0x70c0('0x2d')]['message'][_0x70c0('0x4a')],'substatus':null,'substatusAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0x70c0('0x50')](_0x70c0('0x4b')),'lastMsgDirection':'in','lastMsgBody':_0x148102[_0x70c0('0x2d')][_0x70c0('0x2d')]});}else{return _0x27cb29;}}})[_0x70c0('0x1e')](function(_0x269f42){_0x1f747d[_0x70c0('0x51')]=_0x269f42[_0x70c0('0x3c')]({'plain':!![]});_0x1f747d[_0x70c0('0x51')][_0x70c0('0x52')]=_0xa11100;return db['MailMessage'][_0x70c0('0x45')]({'body':_0x148102[_0x70c0('0x2d')]['body'],'MailAccountId':_0x148102[_0x70c0('0x32')]['id'],'MailInteractionId':_0x269f42['id'],'direction':'in','ContactId':_0x1f747d[_0x70c0('0x46')]['id'],'messageId':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x47')],'from':_0x148102[_0x70c0('0x2d')]['message'][_0x70c0('0x2f')],'to':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')]['to'],'cc':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')]['cc'],'subject':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x49')],'attach':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x4a')],'Attachments':_0x148102['body']['message']['attachments'],'originTo':_0x148102[_0x70c0('0x2d')]['message'][_0x70c0('0x53')],'originCc':_0x148102[_0x70c0('0x2d')]['message'][_0x70c0('0x54')],'bcc':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x55')],'ChatWebsiteId':_0x148102[_0x70c0('0x2d')]['message'][_0x70c0('0x56')]||null,'originChannel':_0x148102[_0x70c0('0x2d')][_0x70c0('0x12')][_0x70c0('0x57')]||'Email','ChatOfflineMessageId':_0x148102['body'][_0x70c0('0x12')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0x70c0('0x58')],'as':_0x70c0('0x59')}]});})[_0x70c0('0x1e')](function(_0x26a8ee){_0x1f747d[_0x70c0('0x12')]=_0x26a8ee;if(_0x1f747d[_0x70c0('0x51')][_0x70c0('0x5a')]){return db['User'][_0x70c0('0x23')]({'attributes':['id',_0x70c0('0x5b')],'where':{'id':_0x1f747d[_0x70c0('0x51')][_0x70c0('0x5a')]}})[_0x70c0('0x1e')](function(_0x567b3e){if(_0x567b3e){_0x1f747d[_0x70c0('0x3e')]['unshift']({'id':0x0,'priority':0x0,'app':_0x70c0('0x5c'),'appdata':_0x567b3e[_0x70c0('0x5b')]+','+(_0x1f747d['account']['waitForTheAssignedAgent']||0xa),'interval':_0x70c0('0x43')});}return respondWithRpcPromise(_0x70c0('0x5d'),_0x70c0('0x5e'),_0x1f747d);});}return respondWithRpcPromise(_0x70c0('0x5d'),_0x70c0('0x5e'),_0x1f747d);})[_0x70c0('0x1e')](function(_0x5271bb){_0x4fbf17(_0x5271bb);})[_0x70c0('0x21')](function(_0x4b2a4b){_0x6a8062(_0xb1e84b['error'](0x1f4,_0x4b2a4b[_0x70c0('0x12')]));});});};