Built motion from commit 10af8726.|2.6.34
[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 _0x6363=['localhost','register','request','then','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','MailAccount,\x20%s,\x20%s','message','info','result','GetMailAccount','options','raw','where','attributes','map','include','model','ShowMailAccount','MailAccount','find','smtp','smtpOptions','getSmtpOptions','debug','catch','NotifyMailAccount','body','mail','difference','keys','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','account','List','CmContact','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','CloudProvider','get','omit','applications','list','autoclose','length','close','*,*,*,*','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','inReplyTo','create','spread','interaction','MailMessage','attachments','originTo','originCc','ChatWebsiteId','originChannel','ChatOfflineMessageId','Attachment','Attachments','UserId','User','agent','queueId','MailQueue','name','unshift','queue','waitForTheAssignedQueue','Start','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6363,0x13a));var _0x3636=function(_0x19b655,_0x376716){_0x19b655=_0x19b655-0x0;var _0x1a3e6e=_0x6363[_0x19b655];return _0x1a3e6e;};'use strict';var _=require(_0x3636('0x0'));var moment=require('moment');var BPromise=require(_0x3636('0x1'));var rs=require(_0x3636('0x2'));var Redis=require(_0x3636('0x3'));var db=require(_0x3636('0x4'))['db'];var logger=require(_0x3636('0x5'))(_0x3636('0x6'));var config=require(_0x3636('0x7'));var jayson=require(_0x3636('0x8'));var client=jayson[_0x3636('0x9')][_0x3636('0xa')]({'port':0x232c});config[_0x3636('0xb')]=_[_0x3636('0xc')](config[_0x3636('0xb')],{'host':_0x3636('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3636('0xb')]));require('./mailAccount.socket')[_0x3636('0xe')](socket);function respondWithRpcPromise(_0x3c23e2,_0x23869b,_0x1936b7){return new BPromise(function(_0x1a6c8d,_0x2c9bdd){return client[_0x3636('0xf')](_0x3c23e2,_0x1936b7)[_0x3636('0x10')](function(_0x18f3dc){logger['info']('MailAccount,\x20%s,\x20%s',_0x23869b,_0x3636('0x11'));logger['debug'](_0x3636('0x12'),_0x23869b,_0x3636('0x11'),JSON[_0x3636('0x13')](_0x18f3dc));if(_0x18f3dc[_0x3636('0x14')]){if(_0x18f3dc[_0x3636('0x14')][_0x3636('0x15')]===0x1f4){logger[_0x3636('0x14')](_0x3636('0x16'),_0x23869b,_0x18f3dc[_0x3636('0x14')][_0x3636('0x17')]);return _0x2c9bdd(_0x18f3dc[_0x3636('0x14')][_0x3636('0x17')]);}logger[_0x3636('0x14')](_0x3636('0x16'),_0x23869b,_0x18f3dc[_0x3636('0x14')][_0x3636('0x17')]);return _0x1a6c8d(_0x18f3dc[_0x3636('0x14')]['message']);}else{logger[_0x3636('0x18')](_0x3636('0x16'),_0x23869b,'request\x20sent');_0x1a6c8d(_0x18f3dc[_0x3636('0x19')]['message']);}})['catch'](function(_0xae6469){logger[_0x3636('0x14')](_0x3636('0x16'),_0x23869b,_0xae6469);_0x2c9bdd(_0xae6469);});});}exports[_0x3636('0x1a')]=function(_0xe0e633){var _0x39e367=this;return new Promise(function(_0xa2b8fe,_0x122aae){return db['MailAccount']['findAll']({'raw':_0xe0e633[_0x3636('0x1b')]?_0xe0e633[_0x3636('0x1b')][_0x3636('0x1c')]===undefined?!![]:![]:!![],'where':_0xe0e633['options']?_0xe0e633[_0x3636('0x1b')][_0x3636('0x1d')]||null:null,'attributes':_0xe0e633[_0x3636('0x1b')]?_0xe0e633[_0x3636('0x1b')][_0x3636('0x1e')]||null:null,'limit':_0xe0e633[_0x3636('0x1b')]?_0xe0e633['options']['limit']||null:null,'include':_0xe0e633[_0x3636('0x1b')]?_0xe0e633['options']['include']?_[_0x3636('0x1f')](_0xe0e633['options'][_0x3636('0x20')],function(_0x4c24cf){return{'model':db[_0x4c24cf[_0x3636('0x21')]],'as':_0x4c24cf['as'],'attributes':_0x4c24cf[_0x3636('0x1e')],'include':_0x4c24cf[_0x3636('0x20')]?_[_0x3636('0x1f')](_0x4c24cf[_0x3636('0x20')],function(_0x20ca8b){return{'model':db[_0x20ca8b[_0x3636('0x21')]],'as':_0x20ca8b['as'],'attributes':_0x20ca8b[_0x3636('0x1e')],'include':_0x20ca8b[_0x3636('0x20')]?_[_0x3636('0x1f')](_0x20ca8b[_0x3636('0x20')],function(_0x550443){return{'model':db[_0x550443[_0x3636('0x21')]],'as':_0x550443['as'],'attributes':_0x550443[_0x3636('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x3636('0x10')](function(_0x22b12f){logger[_0x3636('0x18')](_0x3636('0x1a'),_0xe0e633);logger['debug'](_0x3636('0x1a'),_0xe0e633,JSON[_0x3636('0x13')](_0x22b12f));_0xa2b8fe(_0x22b12f);})['catch'](function(_0x8fffb0){logger[_0x3636('0x14')](_0x3636('0x1a'),_0x8fffb0[_0x3636('0x17')],_0xe0e633);_0x122aae(_0x39e367[_0x3636('0x14')](0x1f4,_0x8fffb0['message']));});});};exports[_0x3636('0x22')]=function(_0x1fc07c){var _0x143139=this;return new Promise(function(_0x2887de,_0x184fa8){return db[_0x3636('0x23')][_0x3636('0x24')]({'raw':_0x1fc07c[_0x3636('0x1b')]?_0x1fc07c[_0x3636('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x1fc07c['options']?_0x1fc07c[_0x3636('0x1b')]['where']||null:null,'attributes':_0x1fc07c['options']?_0x1fc07c[_0x3636('0x1b')][_0x3636('0x1e')]||null:null,'include':_0x1fc07c[_0x3636('0x1b')]?_0x1fc07c['options'][_0x3636('0x20')]?_[_0x3636('0x1f')](_0x1fc07c[_0x3636('0x1b')][_0x3636('0x20')],function(_0x24e873){return{'model':db[_0x24e873[_0x3636('0x21')]],'as':_0x24e873['as'],'attributes':_0x24e873[_0x3636('0x1e')],'include':_0x24e873[_0x3636('0x20')]?_[_0x3636('0x1f')](_0x24e873[_0x3636('0x20')],function(_0x21eb9a){return{'model':db[_0x21eb9a[_0x3636('0x21')]],'as':_0x21eb9a['as'],'attributes':_0x21eb9a[_0x3636('0x1e')],'include':_0x21eb9a['include']?_[_0x3636('0x1f')](_0x21eb9a[_0x3636('0x20')],function(_0x12edf8){return{'model':db[_0x12edf8[_0x3636('0x21')]],'as':_0x12edf8['as'],'attributes':_0x12edf8['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x1e5831){if(_0x1fc07c[_0x3636('0x1b')][_0x3636('0x25')]===!![])_0x1e5831['setDataValue'](_0x3636('0x26'),_0x1e5831[_0x3636('0x27')]());logger['info']('ShowMailAccount',_0x1fc07c);logger[_0x3636('0x28')]('ShowMailAccount',_0x1fc07c,JSON[_0x3636('0x13')](_0x1e5831));_0x2887de(_0x1e5831);})[_0x3636('0x29')](function(_0x195240){logger[_0x3636('0x14')](_0x3636('0x22'),_0x195240[_0x3636('0x17')],_0x1fc07c);_0x184fa8(_0x143139[_0x3636('0x14')](0x1f4,_0x195240[_0x3636('0x17')]));});});};exports[_0x3636('0x2a')]=function(_0x4bdade){var _0x30cf4e=this;return new Promise(function(_0x44cb9c,_0x261f67){var _0x9aa815={'body':_0x4bdade[_0x3636('0x2b')],'channel':_0x3636('0x2c')};var _0x28d6fb=_[_0x3636('0x2d')](_[_0x3636('0x2e')](db['CmContact'][_0x3636('0x2f')]),[_0x3636('0x30'),_0x3636('0x31'),_0x3636('0x32'),_0x3636('0x33')]);var _0x122cb2=![];if(_0x4bdade[_0x3636('0x2b')]['id']){delete _0x4bdade[_0x3636('0x2b')]['id'];}if(_[_0x3636('0x34')](_0x4bdade[_0x3636('0x2b')][_0x3636('0x35')])){return _0x261f67(_0x30cf4e[_0x3636('0x14')](0x1f4,_0x3636('0x36')));}if(_[_0x3636('0x34')](_0x4bdade[_0x3636('0x2b')]['body'])||_0x4bdade[_0x3636('0x2b')][_0x3636('0x2b')]===''){return _0x261f67(_0x30cf4e[_0x3636('0x14')](0x1f4,_0x3636('0x37')));}if(_[_0x3636('0x34')](_0x4bdade[_0x3636('0x2b')][_0x3636('0x38')])){return _0x261f67(_0x30cf4e[_0x3636('0x14')](0x1f4,_0x3636('0x39')+_0x28d6fb));}if(!_[_0x3636('0x3a')](_0x28d6fb,_0x4bdade[_0x3636('0x2b')][_0x3636('0x38')])){return _0x261f67(_0x30cf4e[_0x3636('0x14')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x28d6fb));}var _0x4ed1d7={};_0x4ed1d7[_0x4bdade['body'][_0x3636('0x38')]]=_0x4bdade['body']['from'];return db[_0x3636('0x23')][_0x3636('0x24')]({'where':{'id':_0x4bdade[_0x3636('0x3b')]['id']},'include':[{'model':db['CmList'],'as':_0x3636('0x3c'),'include':[{'model':db[_0x3636('0x3d')],'as':_0x3636('0x3e'),'where':_0x4ed1d7,'limit':0x1,'order':[[_0x3636('0x31'),_0x3636('0x3f')]]}]},{'model':db[_0x3636('0x40')],'as':_0x3636('0x41')},{'model':db[_0x3636('0x42')],'as':_0x3636('0x43'),'include':[{'model':db['CloudProvider'],'as':_0x3636('0x44')}]}]})[_0x3636('0x10')](function(_0x16b65a){if(_0x16b65a&&_0x16b65a[_0x3636('0x3c')]){var _0x12be53=_0x16b65a[_0x3636('0x45')]({'plain':!![]});_0x9aa815['account']=_[_0x3636('0x46')](_0x12be53,[_0x3636('0x41'),_0x3636('0x3c')]);_0x9aa815[_0x3636('0x3b')][_0x3636('0x26')]=_0x16b65a['getSmtpOptions']();_0x9aa815[_0x3636('0x47')]=_0x12be53[_0x3636('0x41')];_0x9aa815[_0x3636('0x48')]=_0x12be53[_0x3636('0x3c')];_0x9aa815[_0x3636('0x47')]=_['orderBy'](_0x9aa815[_0x3636('0x47')],['priority'],['asc']);if(_0x9aa815[_0x3636('0x3b')]&&_0x9aa815[_0x3636('0x3b')][_0x3636('0x49')]){_0x9aa815[_0x3636('0x47')]['push']({'id':0x0,'priority':_0x9aa815['applications'][_0x3636('0x4a')]+0x1,'app':_0x3636('0x4b'),'appdata':_0x3636('0x49'),'interval':_0x3636('0x4c')});}if(_0x9aa815[_0x3636('0x3b')][_0x3636('0x41')]){delete _0x9aa815['account'][_0x3636('0x41')];}if(_0x9aa815[_0x3636('0x3b')][_0x3636('0x3c')]){delete _0x9aa815[_0x3636('0x3b')][_0x3636('0x3c')];}if(_0x12be53[_0x3636('0x3c')][_0x3636('0x3e')][_0x3636('0x4a')]){return _0x12be53['List'][_0x3636('0x3e')][0x0];}var _0x5b2b74=_[_0x3636('0xc')](_0x4bdade['body'],{'firstName':_0x4bdade[_0x3636('0x2b')][_0x3636('0x35')],'ListId':_0x12be53[_0x3636('0x33')]});_0x5b2b74[_0x4bdade[_0x3636('0x2b')][_0x3636('0x38')]]=_0x4bdade[_0x3636('0x2b')]['from'];return db[_0x3636('0x3d')]['create'](_0x5b2b74);}else{throw new Error(_0x3636('0x4d'));}})[_0x3636('0x10')](function(_0x442ff2){_0x9aa815[_0x3636('0x4e')]=_0x442ff2;if(_0x442ff2){if(!_0x4bdade['body'][_0x3636('0x17')][_0x3636('0x4f')]){_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x4f')]=rs[_0x3636('0x50')]()+'\x20'+_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x35')];}var _0x58f7d2={'ContactId':_0x442ff2['id'],'MailAccountId':_0x4bdade[_0x3636('0x3b')]['id'],'inReplyTo':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x4f')],'to':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x35')],'cc':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')]['cc'],'subject':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x51')],'attach':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x52')],'lastMsgAt':moment()[_0x3636('0x53')](_0x3636('0x54')),'lastMsgDirection':'in'};return db[_0x3636('0x55')][_0x3636('0x24')]({'where':{'closed':![],'MailAccountId':_0x4bdade[_0x3636('0x3b')]['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':[_0x3636('0x4f')],'where':{'messageId':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x56')]}}]})[_0x3636('0x10')](function(_0xb77e30){if(_0xb77e30){return[_0xb77e30,![]];}return db[_0x3636('0x55')][_0x3636('0x57')](_0x58f7d2)['then'](function(_0x1df426){return[_0x1df426,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x3636('0x58')](function(_0x2115e4,_0x228716){if(_0x2115e4){_0x122cb2=_0x228716;if(!_0x228716){return _0x2115e4['update']({'inReplyTo':_0x4bdade[_0x3636('0x2b')]['message'][_0x3636('0x4f')],'to':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x35')],'cc':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')]['cc'],'subject':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x51')],'attach':_0x2115e4[_0x3636('0x52')]?_0x2115e4['attach']:_0x4bdade['body']['message'][_0x3636('0x52')],'substatus':null,'substatusAt':moment()['format'](_0x3636('0x54')),'lastMsgAt':moment()[_0x3636('0x53')](_0x3636('0x54')),'lastMsgDirection':'in'});}else{return _0x2115e4;}}})['then'](function(_0x30e757){_0x9aa815[_0x3636('0x59')]=_0x30e757[_0x3636('0x45')]({'plain':!![]});_0x9aa815[_0x3636('0x59')]['created']=_0x122cb2;return db[_0x3636('0x5a')]['create']({'body':_0x4bdade[_0x3636('0x2b')]['body'],'MailAccountId':_0x4bdade['account']['id'],'MailInteractionId':_0x30e757['id'],'direction':'in','ContactId':_0x9aa815[_0x3636('0x4e')]['id'],'messageId':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x4f')],'from':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')]['from'],'to':_0x4bdade['body'][_0x3636('0x17')]['to'],'cc':_0x4bdade['body'][_0x3636('0x17')]['cc'],'subject':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x51')],'attach':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x52')],'Attachments':_0x4bdade[_0x3636('0x2b')]['message'][_0x3636('0x5b')],'originTo':_0x4bdade['body']['message'][_0x3636('0x5c')],'originCc':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x5d')],'bcc':_0x4bdade['body'][_0x3636('0x17')]['bcc'],'ChatWebsiteId':_0x4bdade['body'][_0x3636('0x17')][_0x3636('0x5e')]||null,'originChannel':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x5f')]||'Email','ChatOfflineMessageId':_0x4bdade[_0x3636('0x2b')][_0x3636('0x17')][_0x3636('0x60')]||null},{'include':[{'model':db[_0x3636('0x61')],'as':_0x3636('0x62')}]});})[_0x3636('0x10')](function(_0xb4ff3){_0x9aa815[_0x3636('0x17')]=_0xb4ff3;if(!_0x9aa815[_0x3636('0x59')][_0x3636('0x63')]){return;}return db[_0x3636('0x64')][_0x3636('0x24')]({'attributes':['id','name'],'where':{'id':_0x9aa815['interaction']['UserId']}});})[_0x3636('0x10')](function(_0x3501a8){if(_0x3501a8){_0x9aa815[_0x3636('0x47')]['unshift']({'id':0x0,'priority':0x0,'app':_0x3636('0x65'),'appdata':_0x3501a8['name']+','+(_0x9aa815[_0x3636('0x3b')]['waitForTheAssignedAgent']||0xa),'interval':_0x3636('0x4c')});}if(!_0x9aa815['interaction'][_0x3636('0x66')]){return;}return db[_0x3636('0x67')]['find']({'attributes':['id',_0x3636('0x68')],'where':{'id':_0x9aa815['interaction']['queueId']}});})[_0x3636('0x10')](function(_0x38f6ac){if(_0x38f6ac){_0x9aa815[_0x3636('0x47')][_0x3636('0x69')]({'id':0x0,'priority':0x1,'app':_0x3636('0x6a'),'appdata':_0x38f6ac[_0x3636('0x68')]+','+(_0x9aa815[_0x3636('0x3b')][_0x3636('0x6b')]||0x12c),'interval':_0x3636('0x4c')});}return respondWithRpcPromise(_0x3636('0x6c'),'startRouting',_0x9aa815);})[_0x3636('0x10')](function(_0x212b86){_0x44cb9c(_0x212b86);})[_0x3636('0x29')](function(_0x5816f5){_0x261f67(_0x30cf4e[_0x3636('0x14')](0x1f4,_0x5816f5[_0x3636('0x17')]));});});};