Built motion from commit a134ab58.|2.6.29
[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 _0xca9e=['GetMailAccount','MailAccount','smtp','setDataValue','getSmtpOptions','ShowMailAccount','catch','NotifyMailAccount','body','mail','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','Contacts','MailApplication','Applications','MailServerOut','Smtp','CloudProvider','List','get','omit','smtpOptions','list','applications','orderBy','priority','asc','close','autoclose','length','from','ListId','create','List\x20not\x20found','contact','generate','subject','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','messageId','inReplyTo','Contact\x20not\x20found','update','attach','interaction','created','attachments','originTo','bcc','Email','ChatOfflineMessageId','Attachments','UserId','User','unshift','agent','*,*,*,*','queueId','name','waitForTheAssignedQueue','Start','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','info','request\x20sent','debug','error','MailAccount,\x20%s,\x20%s','message','findAll','options','raw','where','attributes','limit','include','map','model','stringify'];(function(_0x23d6c5,_0x19e233){var _0x12a2b4=function(_0x2a8339){while(--_0x2a8339){_0x23d6c5['push'](_0x23d6c5['shift']());}};_0x12a2b4(++_0x19e233);}(_0xca9e,0x136));var _0xeca9=function(_0x25b9ea,_0x5b4c6d){_0x25b9ea=_0x25b9ea-0x0;var _0xe85dd6=_0xca9e[_0x25b9ea];return _0xe85dd6;};'use strict';var _=require(_0xeca9('0x0'));var moment=require(_0xeca9('0x1'));var BPromise=require(_0xeca9('0x2'));var rs=require(_0xeca9('0x3'));var Redis=require(_0xeca9('0x4'));var db=require(_0xeca9('0x5'))['db'];var logger=require(_0xeca9('0x6'))(_0xeca9('0x7'));var config=require(_0xeca9('0x8'));var jayson=require(_0xeca9('0x9'));var client=jayson[_0xeca9('0xa')][_0xeca9('0xb')]({'port':0x232c});config[_0xeca9('0xc')]=_[_0xeca9('0xd')](config['redis'],{'host':_0xeca9('0xe'),'port':0x18eb});var socket=require(_0xeca9('0xf'))(new Redis(config['redis']));require('./mailAccount.socket')[_0xeca9('0x10')](socket);function respondWithRpcPromise(_0x239e92,_0x1673b6,_0x5305ce){return new BPromise(function(_0x2dba50,_0x364eb2){return client[_0xeca9('0x11')](_0x239e92,_0x5305ce)[_0xeca9('0x12')](function(_0x19584d){logger[_0xeca9('0x13')]('MailAccount,\x20%s,\x20%s',_0x1673b6,_0xeca9('0x14'));logger[_0xeca9('0x15')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x1673b6,_0xeca9('0x14'),JSON['stringify'](_0x19584d));if(_0x19584d[_0xeca9('0x16')]){if(_0x19584d[_0xeca9('0x16')]['code']===0x1f4){logger[_0xeca9('0x16')](_0xeca9('0x17'),_0x1673b6,_0x19584d[_0xeca9('0x16')]['message']);return _0x364eb2(_0x19584d[_0xeca9('0x16')][_0xeca9('0x18')]);}logger[_0xeca9('0x16')](_0xeca9('0x17'),_0x1673b6,_0x19584d['error']['message']);return _0x2dba50(_0x19584d[_0xeca9('0x16')][_0xeca9('0x18')]);}else{logger['info'](_0xeca9('0x17'),_0x1673b6,_0xeca9('0x14'));_0x2dba50(_0x19584d['result']['message']);}})['catch'](function(_0x132008){logger[_0xeca9('0x16')](_0xeca9('0x17'),_0x1673b6,_0x132008);_0x364eb2(_0x132008);});});}exports['GetMailAccount']=function(_0xf1ef9f){var _0x5a5c52=this;return new Promise(function(_0x5bbdce,_0x317159){return db['MailAccount'][_0xeca9('0x19')]({'raw':_0xf1ef9f[_0xeca9('0x1a')]?_0xf1ef9f['options'][_0xeca9('0x1b')]===undefined?!![]:![]:!![],'where':_0xf1ef9f[_0xeca9('0x1a')]?_0xf1ef9f['options'][_0xeca9('0x1c')]||null:null,'attributes':_0xf1ef9f['options']?_0xf1ef9f[_0xeca9('0x1a')][_0xeca9('0x1d')]||null:null,'limit':_0xf1ef9f[_0xeca9('0x1a')]?_0xf1ef9f['options'][_0xeca9('0x1e')]||null:null,'include':_0xf1ef9f[_0xeca9('0x1a')]?_0xf1ef9f['options'][_0xeca9('0x1f')]?_[_0xeca9('0x20')](_0xf1ef9f[_0xeca9('0x1a')][_0xeca9('0x1f')],function(_0x498f4a){return{'model':db[_0x498f4a[_0xeca9('0x21')]],'as':_0x498f4a['as'],'attributes':_0x498f4a['attributes'],'include':_0x498f4a[_0xeca9('0x1f')]?_[_0xeca9('0x20')](_0x498f4a[_0xeca9('0x1f')],function(_0x3e41df){return{'model':db[_0x3e41df[_0xeca9('0x21')]],'as':_0x3e41df['as'],'attributes':_0x3e41df[_0xeca9('0x1d')],'include':_0x3e41df[_0xeca9('0x1f')]?_[_0xeca9('0x20')](_0x3e41df[_0xeca9('0x1f')],function(_0x271720){return{'model':db[_0x271720[_0xeca9('0x21')]],'as':_0x271720['as'],'attributes':_0x271720[_0xeca9('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xeca9('0x12')](function(_0x1436d0){logger[_0xeca9('0x13')]('GetMailAccount',_0xf1ef9f);logger['debug']('GetMailAccount',_0xf1ef9f,JSON[_0xeca9('0x22')](_0x1436d0));_0x5bbdce(_0x1436d0);})['catch'](function(_0x2ca943){logger[_0xeca9('0x16')](_0xeca9('0x23'),_0x2ca943[_0xeca9('0x18')],_0xf1ef9f);_0x317159(_0x5a5c52[_0xeca9('0x16')](0x1f4,_0x2ca943[_0xeca9('0x18')]));});});};exports['ShowMailAccount']=function(_0x3b60c3){var _0x5d2451=this;return new Promise(function(_0x43fbff,_0x23a5fe){return db[_0xeca9('0x24')]['find']({'raw':_0x3b60c3[_0xeca9('0x1a')]?_0x3b60c3[_0xeca9('0x1a')][_0xeca9('0x1b')]===undefined?!![]:![]:!![],'where':_0x3b60c3[_0xeca9('0x1a')]?_0x3b60c3['options'][_0xeca9('0x1c')]||null:null,'attributes':_0x3b60c3['options']?_0x3b60c3[_0xeca9('0x1a')][_0xeca9('0x1d')]||null:null,'include':_0x3b60c3[_0xeca9('0x1a')]?_0x3b60c3[_0xeca9('0x1a')][_0xeca9('0x1f')]?_[_0xeca9('0x20')](_0x3b60c3['options'][_0xeca9('0x1f')],function(_0x2424df){return{'model':db[_0x2424df[_0xeca9('0x21')]],'as':_0x2424df['as'],'attributes':_0x2424df[_0xeca9('0x1d')],'include':_0x2424df[_0xeca9('0x1f')]?_[_0xeca9('0x20')](_0x2424df[_0xeca9('0x1f')],function(_0x54d9cf){return{'model':db[_0x54d9cf[_0xeca9('0x21')]],'as':_0x54d9cf['as'],'attributes':_0x54d9cf[_0xeca9('0x1d')],'include':_0x54d9cf[_0xeca9('0x1f')]?_[_0xeca9('0x20')](_0x54d9cf[_0xeca9('0x1f')],function(_0x1eeb0a){return{'model':db[_0x1eeb0a['model']],'as':_0x1eeb0a['as'],'attributes':_0x1eeb0a[_0xeca9('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2fbd69){if(_0x3b60c3['options'][_0xeca9('0x25')]===!![])_0x2fbd69[_0xeca9('0x26')]('smtpOptions',_0x2fbd69[_0xeca9('0x27')]());logger['info'](_0xeca9('0x28'),_0x3b60c3);logger['debug'](_0xeca9('0x28'),_0x3b60c3,JSON['stringify'](_0x2fbd69));_0x43fbff(_0x2fbd69);})[_0xeca9('0x29')](function(_0xd6d935){logger['error'](_0xeca9('0x28'),_0xd6d935[_0xeca9('0x18')],_0x3b60c3);_0x23a5fe(_0x5d2451['error'](0x1f4,_0xd6d935[_0xeca9('0x18')]));});});};exports[_0xeca9('0x2a')]=function(_0x3fd0d2){var _0x1a5768=this;return new Promise(function(_0xb1f2fc,_0x2d72e3){var _0x34c502={'body':_0x3fd0d2[_0xeca9('0x2b')],'channel':_0xeca9('0x2c')};var _0x5b1194=_[_0xeca9('0x2d')](_[_0xeca9('0x2e')](db[_0xeca9('0x2f')][_0xeca9('0x30')]),[_0xeca9('0x31'),_0xeca9('0x32'),_0xeca9('0x33'),'ListId']);var _0x1d3338=![];if(_0x3fd0d2[_0xeca9('0x2b')]['id']){delete _0x3fd0d2[_0xeca9('0x2b')]['id'];}if(_[_0xeca9('0x34')](_0x3fd0d2[_0xeca9('0x2b')]['from'])){return _0x2d72e3(_0x1a5768[_0xeca9('0x16')](0x1f4,_0xeca9('0x35')));}if(_[_0xeca9('0x34')](_0x3fd0d2[_0xeca9('0x2b')]['body'])||_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x2b')]===''){return _0x2d72e3(_0x1a5768['error'](0x1f4,_0xeca9('0x36')));}if(_[_0xeca9('0x34')](_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x37')])){return _0x2d72e3(_0x1a5768[_0xeca9('0x16')](0x1f4,_0xeca9('0x38')+_0x5b1194));}if(!_[_0xeca9('0x39')](_0x5b1194,_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x37')])){return _0x2d72e3(_0x1a5768[_0xeca9('0x16')](0x1f4,_0xeca9('0x3a')+_0x5b1194));}var _0x22599e={};_0x22599e[_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x37')]]=_0x3fd0d2[_0xeca9('0x2b')]['from'];return db[_0xeca9('0x24')][_0xeca9('0x3b')]({'where':{'id':_0x3fd0d2[_0xeca9('0x3c')]['id']},'include':[{'model':db[_0xeca9('0x3d')],'as':'List','include':[{'model':db[_0xeca9('0x2f')],'as':_0xeca9('0x3e'),'where':_0x22599e,'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0xeca9('0x3f')],'as':_0xeca9('0x40')},{'model':db[_0xeca9('0x41')],'as':_0xeca9('0x42'),'include':[{'model':db['CloudProvider'],'as':_0xeca9('0x43')}]}]})[_0xeca9('0x12')](function(_0x346c62){if(_0x346c62&&_0x346c62[_0xeca9('0x44')]){var _0x2b024b=_0x346c62[_0xeca9('0x45')]({'plain':!![]});_0x34c502[_0xeca9('0x3c')]=_[_0xeca9('0x46')](_0x2b024b,[_0xeca9('0x40'),'List']);_0x34c502['account'][_0xeca9('0x47')]=_0x346c62[_0xeca9('0x27')]();_0x34c502['applications']=_0x2b024b[_0xeca9('0x40')];_0x34c502[_0xeca9('0x48')]=_0x2b024b[_0xeca9('0x44')];_0x34c502[_0xeca9('0x49')]=_[_0xeca9('0x4a')](_0x34c502[_0xeca9('0x49')],[_0xeca9('0x4b')],[_0xeca9('0x4c')]);if(_0x34c502[_0xeca9('0x3c')]&&_0x34c502['account']['autoclose']){_0x34c502['applications']['push']({'id':0x0,'priority':_0x34c502[_0xeca9('0x49')]['length']+0x1,'app':_0xeca9('0x4d'),'appdata':_0xeca9('0x4e'),'interval':'*,*,*,*'});}if(_0x34c502[_0xeca9('0x3c')][_0xeca9('0x40')]){delete _0x34c502[_0xeca9('0x3c')]['Applications'];}if(_0x34c502['account'][_0xeca9('0x44')]){delete _0x34c502[_0xeca9('0x3c')][_0xeca9('0x44')];}if(_0x2b024b[_0xeca9('0x44')]['Contacts'][_0xeca9('0x4f')]){return _0x2b024b[_0xeca9('0x44')][_0xeca9('0x3e')][0x0];}var _0x1a046d=_[_0xeca9('0xd')](_0x3fd0d2[_0xeca9('0x2b')],{'firstName':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x50')],'ListId':_0x2b024b[_0xeca9('0x51')]});_0x1a046d[_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x37')]]=_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x50')];return db[_0xeca9('0x2f')][_0xeca9('0x52')](_0x1a046d);}else{throw new Error(_0xeca9('0x53'));}})['then'](function(_0x22d1b9){_0x34c502[_0xeca9('0x54')]=_0x22d1b9;if(_0x22d1b9){if(!_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')]['messageId']){_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')]['messageId']=rs[_0xeca9('0x55')]()+'\x20'+_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x50')];}var _0x35be0f={'ContactId':_0x22d1b9['id'],'MailAccountId':_0x3fd0d2['account']['id'],'inReplyTo':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')]['messageId'],'to':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x50')],'cc':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')]['cc'],'subject':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x56')],'attach':_0x3fd0d2['body']['message']['attach'],'lastMsgAt':moment()[_0xeca9('0x57')](_0xeca9('0x58')),'lastMsgDirection':'in'};return db[_0xeca9('0x59')]['find']({'where':{'closed':![],'MailAccountId':_0x3fd0d2[_0xeca9('0x3c')]['id']},'include':[{'model':db[_0xeca9('0x5a')],'as':_0xeca9('0x5b'),'attributes':[_0xeca9('0x5c')],'where':{'messageId':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x5d')]}}]})['then'](function(_0x5e1049){if(_0x5e1049){return[_0x5e1049,![]];}return db['MailInteraction'][_0xeca9('0x52')](_0x35be0f)[_0xeca9('0x12')](function(_0x5be034){return[_0x5be034,!![]];});});}else{throw new Error(_0xeca9('0x5e'));}})['spread'](function(_0x33760f,_0x28bbf7){if(_0x33760f){_0x1d3338=_0x28bbf7;if(!_0x28bbf7){return _0x33760f[_0xeca9('0x5f')]({'inReplyTo':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')]['messageId'],'to':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x50')],'cc':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')]['cc'],'subject':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x56')],'attach':_0x33760f['attach']?_0x33760f[_0xeca9('0x60')]:_0x3fd0d2['body'][_0xeca9('0x18')][_0xeca9('0x60')],'substatus':null,'substatusAt':moment()[_0xeca9('0x57')](_0xeca9('0x58')),'lastMsgAt':moment()[_0xeca9('0x57')](_0xeca9('0x58')),'lastMsgDirection':'in'});}else{return _0x33760f;}}})['then'](function(_0x1c2821){_0x34c502[_0xeca9('0x61')]=_0x1c2821[_0xeca9('0x45')]({'plain':!![]});_0x34c502['interaction'][_0xeca9('0x62')]=_0x1d3338;return db[_0xeca9('0x5a')][_0xeca9('0x52')]({'body':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x2b')],'MailAccountId':_0x3fd0d2[_0xeca9('0x3c')]['id'],'MailInteractionId':_0x1c2821['id'],'direction':'in','ContactId':_0x34c502[_0xeca9('0x54')]['id'],'messageId':_0x3fd0d2[_0xeca9('0x2b')]['message'][_0xeca9('0x5c')],'from':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x50')],'to':_0x3fd0d2[_0xeca9('0x2b')]['message']['to'],'cc':_0x3fd0d2['body'][_0xeca9('0x18')]['cc'],'subject':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x56')],'attach':_0x3fd0d2['body'][_0xeca9('0x18')][_0xeca9('0x60')],'Attachments':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x63')],'originTo':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x64')],'originCc':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')]['originCc'],'bcc':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x65')],'ChatWebsiteId':_0x3fd0d2['body']['message']['ChatWebsiteId']||null,'originChannel':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')]['originChannel']||_0xeca9('0x66'),'ChatOfflineMessageId':_0x3fd0d2[_0xeca9('0x2b')][_0xeca9('0x18')][_0xeca9('0x67')]||null},{'include':[{'model':db['Attachment'],'as':_0xeca9('0x68')}]});})[_0xeca9('0x12')](function(_0x48a310){_0x34c502['message']=_0x48a310;if(!_0x34c502['interaction'][_0xeca9('0x69')]){return;}return db[_0xeca9('0x6a')][_0xeca9('0x3b')]({'attributes':['id','name'],'where':{'id':_0x34c502[_0xeca9('0x61')]['UserId']}});})[_0xeca9('0x12')](function(_0xbc11b7){if(_0xbc11b7){_0x34c502[_0xeca9('0x49')][_0xeca9('0x6b')]({'id':0x0,'priority':0x0,'app':_0xeca9('0x6c'),'appdata':_0xbc11b7['name']+','+(_0x34c502[_0xeca9('0x3c')]['waitForTheAssignedAgent']||0xa),'interval':_0xeca9('0x6d')});}if(!_0x34c502['interaction']['queueId']){return;}return db['MailQueue'][_0xeca9('0x3b')]({'attributes':['id','name'],'where':{'id':_0x34c502[_0xeca9('0x61')][_0xeca9('0x6e')]}});})[_0xeca9('0x12')](function(_0x30e115){if(_0x30e115){_0x34c502[_0xeca9('0x49')][_0xeca9('0x6b')]({'id':0x0,'priority':0x1,'app':'queue','appdata':_0x30e115[_0xeca9('0x6f')]+','+(_0x34c502[_0xeca9('0x3c')][_0xeca9('0x70')]||0x12c),'interval':_0xeca9('0x6d')});}return respondWithRpcPromise(_0xeca9('0x71'),_0xeca9('0x72'),_0x34c502);})[_0xeca9('0x12')](function(_0x368128){_0xb1f2fc(_0x368128);})['catch'](function(_0x3bc532){_0x2d72e3(_0x1a5768[_0xeca9('0x16')](0x1f4,_0x3bc532[_0xeca9('0x18')]));});});};