Built motion from commit (unavailable).|2.5.0
[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 _0xdeb7=['spread','subject','interaction','get','attachments','originTo','originCc','bcc','Attachments','User','name','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','GetMailAccount','findAll','options','raw','where','attributes','include','map','model','ShowMailAccount','MailAccount','NotifyMailAccount','body','rawAttributes','createdAt','CompanyId','ListId','from','from\x20is\x20mandatory','isNil','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','CmContact','Contacts','updatedAt','DESC','MailApplication','Applications','MailServerOut','Smtp','applications','list','List','orderBy','priority','asc','autoclose','length','close','*,*,*,*','create','List\x20not\x20found','contact','messageId','generate','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found'];(function(_0x5ea24f,_0x3bd868){var _0x112afb=function(_0x530fda){while(--_0x530fda){_0x5ea24f['push'](_0x5ea24f['shift']());}};_0x112afb(++_0x3bd868);}(_0xdeb7,0x77));var _0x7deb=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xdeb7[_0x2641f9];return _0x585741;};'use strict';var _=require(_0x7deb('0x0'));var util=require(_0x7deb('0x1'));var moment=require(_0x7deb('0x2'));var BPromise=require('bluebird');var rs=require(_0x7deb('0x3'));var fs=require('fs');var Redis=require(_0x7deb('0x4'));var db=require(_0x7deb('0x5'))['db'];var utils=require(_0x7deb('0x6'));var logger=require(_0x7deb('0x7'))('rpc');var config=require(_0x7deb('0x8'));var jayson=require(_0x7deb('0x9'));var client=jayson[_0x7deb('0xa')][_0x7deb('0xb')]({'port':0x232c});config[_0x7deb('0xc')]=_[_0x7deb('0xd')](config['redis'],{'host':_0x7deb('0xe'),'port':0x18eb});var socket=require(_0x7deb('0xf'))(new Redis(config[_0x7deb('0xc')]));require(_0x7deb('0x10'))['register'](socket);function respondWithRpcPromise(_0x1c771d,_0x5e37c9,_0x49b193){return new BPromise(function(_0x453eaf,_0x51019e){return client[_0x7deb('0x11')](_0x1c771d,_0x49b193)[_0x7deb('0x12')](function(_0x2b749e){logger['info'](_0x7deb('0x13'),_0x5e37c9,_0x7deb('0x14'));logger[_0x7deb('0x15')](_0x7deb('0x16'),_0x5e37c9,'request\x20sent',JSON[_0x7deb('0x17')](_0x2b749e));if(_0x2b749e[_0x7deb('0x18')]){if(_0x2b749e[_0x7deb('0x18')][_0x7deb('0x19')]===0x1f4){logger[_0x7deb('0x18')](_0x7deb('0x13'),_0x5e37c9,_0x2b749e[_0x7deb('0x18')][_0x7deb('0x1a')]);return _0x51019e(_0x2b749e[_0x7deb('0x18')][_0x7deb('0x1a')]);}logger[_0x7deb('0x18')](_0x7deb('0x13'),_0x5e37c9,_0x2b749e[_0x7deb('0x18')][_0x7deb('0x1a')]);return _0x453eaf(_0x2b749e[_0x7deb('0x18')]['message']);}else{logger[_0x7deb('0x1b')]('MailAccount,\x20%s,\x20%s',_0x5e37c9,_0x7deb('0x14'));_0x453eaf(_0x2b749e[_0x7deb('0x1c')]['message']);}})[_0x7deb('0x1d')](function(_0x42605d){logger[_0x7deb('0x18')](_0x7deb('0x13'),_0x5e37c9,_0x42605d);_0x51019e(_0x42605d);});});}exports[_0x7deb('0x1e')]=function(_0x11fbd0){var _0xfdeba4=this;return new Promise(function(_0x2ab72e,_0x27a448){return db['MailAccount'][_0x7deb('0x1f')]({'raw':_0x11fbd0[_0x7deb('0x20')]?_0x11fbd0[_0x7deb('0x20')][_0x7deb('0x21')]===undefined?!![]:![]:!![],'where':_0x11fbd0[_0x7deb('0x20')]?_0x11fbd0[_0x7deb('0x20')][_0x7deb('0x22')]||null:null,'attributes':_0x11fbd0[_0x7deb('0x20')]?_0x11fbd0['options'][_0x7deb('0x23')]||null:null,'limit':_0x11fbd0[_0x7deb('0x20')]?_0x11fbd0[_0x7deb('0x20')]['limit']||null:null,'include':_0x11fbd0[_0x7deb('0x20')]?_0x11fbd0[_0x7deb('0x20')][_0x7deb('0x24')]?_[_0x7deb('0x25')](_0x11fbd0['options'][_0x7deb('0x24')],function(_0x28023c){return{'model':db[_0x28023c[_0x7deb('0x26')]],'as':_0x28023c['as'],'attributes':_0x28023c[_0x7deb('0x23')],'include':_0x28023c[_0x7deb('0x24')]?_[_0x7deb('0x25')](_0x28023c[_0x7deb('0x24')],function(_0x659b9){return{'model':db[_0x659b9[_0x7deb('0x26')]],'as':_0x659b9['as'],'attributes':_0x659b9[_0x7deb('0x23')],'include':_0x659b9[_0x7deb('0x24')]?_[_0x7deb('0x25')](_0x659b9[_0x7deb('0x24')],function(_0x14ec6f){return{'model':db[_0x14ec6f['model']],'as':_0x14ec6f['as'],'attributes':_0x14ec6f[_0x7deb('0x23')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1ce28d){logger['info'](_0x7deb('0x1e'),_0x11fbd0);logger[_0x7deb('0x15')]('GetMailAccount',_0x11fbd0,JSON['stringify'](_0x1ce28d));_0x2ab72e(_0x1ce28d);})[_0x7deb('0x1d')](function(_0x298831){logger['error']('GetMailAccount',_0x298831[_0x7deb('0x1a')],_0x11fbd0);_0x27a448(_0xfdeba4[_0x7deb('0x18')](0x1f4,_0x298831[_0x7deb('0x1a')]));});});};exports[_0x7deb('0x27')]=function(_0x3a334b){var _0x6d5e8f=this;return new Promise(function(_0x12e0ac,_0x21c945){return db[_0x7deb('0x28')]['find']({'raw':_0x3a334b[_0x7deb('0x20')]?_0x3a334b['options'][_0x7deb('0x21')]===undefined?!![]:![]:!![],'where':_0x3a334b[_0x7deb('0x20')]?_0x3a334b[_0x7deb('0x20')][_0x7deb('0x22')]||null:null,'attributes':_0x3a334b[_0x7deb('0x20')]?_0x3a334b[_0x7deb('0x20')][_0x7deb('0x23')]||null:null,'include':_0x3a334b[_0x7deb('0x20')]?_0x3a334b[_0x7deb('0x20')][_0x7deb('0x24')]?_['map'](_0x3a334b[_0x7deb('0x20')][_0x7deb('0x24')],function(_0x4c2120){return{'model':db[_0x4c2120['model']],'as':_0x4c2120['as'],'attributes':_0x4c2120['attributes'],'include':_0x4c2120[_0x7deb('0x24')]?_['map'](_0x4c2120[_0x7deb('0x24')],function(_0x36d875){return{'model':db[_0x36d875[_0x7deb('0x26')]],'as':_0x36d875['as'],'attributes':_0x36d875[_0x7deb('0x23')],'include':_0x36d875['include']?_['map'](_0x36d875['include'],function(_0x326163){return{'model':db[_0x326163[_0x7deb('0x26')]],'as':_0x326163['as'],'attributes':_0x326163[_0x7deb('0x23')]};}):[]};}):[]};}):[]:[]})[_0x7deb('0x12')](function(_0x27f541){logger[_0x7deb('0x1b')]('ShowMailAccount',_0x3a334b);logger['debug'](_0x7deb('0x27'),_0x3a334b,JSON[_0x7deb('0x17')](_0x27f541));_0x12e0ac(_0x27f541);})['catch'](function(_0x35d033){logger['error'](_0x7deb('0x27'),_0x35d033[_0x7deb('0x1a')],_0x3a334b);_0x21c945(_0x6d5e8f[_0x7deb('0x18')](0x1f4,_0x35d033[_0x7deb('0x1a')]));});});};exports[_0x7deb('0x29')]=function(_0x15452d){var _0x5ecca3=this;return new Promise(function(_0x2f7018,_0xccae33){var _0x1b7bbe={'body':_0x15452d[_0x7deb('0x2a')],'channel':'mail'};var _0x37b574=_['difference'](_['keys'](db['CmContact'][_0x7deb('0x2b')]),[_0x7deb('0x2c'),'updatedAt',_0x7deb('0x2d'),_0x7deb('0x2e')]);var _0x5c9e57=![];if(_0x15452d[_0x7deb('0x2a')]['id']){delete _0x15452d['body']['id'];}if(_['isNil'](_0x15452d[_0x7deb('0x2a')][_0x7deb('0x2f')])){return _0xccae33(_0x5ecca3[_0x7deb('0x18')](0x1f4,_0x7deb('0x30')));}if(_[_0x7deb('0x31')](_0x15452d[_0x7deb('0x2a')]['body'])||_0x15452d[_0x7deb('0x2a')][_0x7deb('0x2a')]===''){return _0xccae33(_0x5ecca3[_0x7deb('0x18')](0x1f4,_0x7deb('0x32')));}if(_[_0x7deb('0x31')](_0x15452d[_0x7deb('0x2a')][_0x7deb('0x33')])){return _0xccae33(_0x5ecca3['error'](0x1f4,_0x7deb('0x34')+_0x37b574));}if(!_[_0x7deb('0x35')](_0x37b574,_0x15452d[_0x7deb('0x2a')][_0x7deb('0x33')])){return _0xccae33(_0x5ecca3[_0x7deb('0x18')](0x1f4,_0x7deb('0x36')+_0x37b574));}var _0x4e8169={};_0x4e8169[_0x15452d['body'][_0x7deb('0x33')]]=_0x15452d[_0x7deb('0x2a')][_0x7deb('0x2f')];return db[_0x7deb('0x28')][_0x7deb('0x37')]({'where':{'id':_0x15452d[_0x7deb('0x38')]['id']},'include':[{'model':db[_0x7deb('0x39')],'as':'List','include':[{'model':db[_0x7deb('0x3a')],'as':_0x7deb('0x3b'),'where':_0x4e8169,'limit':0x1,'order':[[_0x7deb('0x3c'),_0x7deb('0x3d')]]}]},{'model':db[_0x7deb('0x3e')],'as':_0x7deb('0x3f')},{'model':db[_0x7deb('0x40')],'as':_0x7deb('0x41')}]})['then'](function(_0x3f4abc){if(_0x3f4abc&&_0x3f4abc['List']){var _0x16b998=_0x3f4abc['get']({'plain':!![]});_0x1b7bbe['account']=_['omit'](_0x16b998,[_0x7deb('0x3f'),'List']);_0x1b7bbe[_0x7deb('0x42')]=_0x16b998['Applications'];_0x1b7bbe[_0x7deb('0x43')]=_0x16b998[_0x7deb('0x44')];_0x1b7bbe[_0x7deb('0x42')]=_[_0x7deb('0x45')](_0x1b7bbe[_0x7deb('0x42')],[_0x7deb('0x46')],[_0x7deb('0x47')]);if(_0x1b7bbe['account']&&_0x1b7bbe[_0x7deb('0x38')][_0x7deb('0x48')]){_0x1b7bbe['applications']['push']({'id':0x0,'priority':_0x1b7bbe['applications'][_0x7deb('0x49')]+0x1,'app':_0x7deb('0x4a'),'appdata':'autoclose','interval':_0x7deb('0x4b')});}if(_0x1b7bbe[_0x7deb('0x38')][_0x7deb('0x3f')]){delete _0x1b7bbe[_0x7deb('0x38')][_0x7deb('0x3f')];}if(_0x1b7bbe[_0x7deb('0x38')]['List']){delete _0x1b7bbe[_0x7deb('0x38')]['List'];}if(_0x16b998[_0x7deb('0x44')][_0x7deb('0x3b')][_0x7deb('0x49')]){return _0x16b998[_0x7deb('0x44')][_0x7deb('0x3b')][0x0];}var _0x1a71f2=_[_0x7deb('0xd')](_0x15452d[_0x7deb('0x2a')],{'firstName':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x2f')],'ListId':_0x16b998[_0x7deb('0x2e')]});_0x1a71f2[_0x15452d['body']['mapKey']]=_0x15452d[_0x7deb('0x2a')][_0x7deb('0x2f')];return db[_0x7deb('0x3a')][_0x7deb('0x4c')](_0x1a71f2);}else{throw new Error(_0x7deb('0x4d'));}})['then'](function(_0x107bb5){_0x1b7bbe[_0x7deb('0x4e')]=_0x107bb5;if(_0x107bb5){if(!_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')]['messageId']){_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')][_0x7deb('0x4f')]=rs[_0x7deb('0x50')]()+'\x20'+_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')][_0x7deb('0x2f')];}var _0x4aa1c7={'ContactId':_0x107bb5['id'],'MailAccountId':_0x15452d[_0x7deb('0x38')]['id'],'inReplyTo':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')]['messageId'],'to':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')]['from'],'cc':_0x15452d[_0x7deb('0x2a')]['message']['cc'],'subject':_0x15452d[_0x7deb('0x2a')]['message']['subject'],'attach':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')][_0x7deb('0x51')],'lastMsgAt':moment()[_0x7deb('0x52')](_0x7deb('0x53')),'lastMsgDirection':'in','lastMsgBody':_0x15452d['body'][_0x7deb('0x2a')]};return db[_0x7deb('0x54')][_0x7deb('0x37')]({'where':{'closed':![],'MailAccountId':_0x15452d[_0x7deb('0x38')]['id']},'include':[{'model':db[_0x7deb('0x55')],'as':_0x7deb('0x56'),'attributes':[_0x7deb('0x4f')],'where':{'messageId':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')][_0x7deb('0x57')]}}]})['then'](function(_0x2d593e){if(_0x2d593e){return[_0x2d593e,![]];}return db[_0x7deb('0x54')][_0x7deb('0x4c')](_0x4aa1c7)[_0x7deb('0x12')](function(_0x5aa27a){return[_0x5aa27a,!![]];});});}else{throw new Error(_0x7deb('0x58'));}})[_0x7deb('0x59')](function(_0x96ea16,_0x3aed0f){if(_0x96ea16){_0x5c9e57=_0x3aed0f;if(!_0x3aed0f){return _0x96ea16['update']({'inReplyTo':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')][_0x7deb('0x4f')],'to':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')][_0x7deb('0x2f')],'cc':_0x15452d['body']['message']['cc'],'subject':_0x15452d[_0x7deb('0x2a')]['message'][_0x7deb('0x5a')],'attach':_0x96ea16[_0x7deb('0x51')]?_0x96ea16[_0x7deb('0x51')]:_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')]['attach'],'substatus':null,'substatusAt':moment()[_0x7deb('0x52')](_0x7deb('0x53')),'lastMsgAt':moment()[_0x7deb('0x52')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x2a')]});}else{return _0x96ea16;}}})['then'](function(_0x20bb1c){_0x1b7bbe[_0x7deb('0x5b')]=_0x20bb1c[_0x7deb('0x5c')]({'plain':!![]});_0x1b7bbe[_0x7deb('0x5b')]['created']=_0x5c9e57;return db[_0x7deb('0x55')][_0x7deb('0x4c')]({'body':_0x15452d['body'][_0x7deb('0x2a')],'MailAccountId':_0x15452d[_0x7deb('0x38')]['id'],'MailInteractionId':_0x20bb1c['id'],'direction':'in','ContactId':_0x1b7bbe[_0x7deb('0x4e')]['id'],'messageId':_0x15452d['body'][_0x7deb('0x1a')][_0x7deb('0x4f')],'from':_0x15452d['body'][_0x7deb('0x1a')]['from'],'to':_0x15452d['body'][_0x7deb('0x1a')]['to'],'cc':_0x15452d[_0x7deb('0x2a')]['message']['cc'],'subject':_0x15452d[_0x7deb('0x2a')]['message']['subject'],'attach':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')][_0x7deb('0x51')],'Attachments':_0x15452d[_0x7deb('0x2a')][_0x7deb('0x1a')][_0x7deb('0x5d')],'originTo':_0x15452d[_0x7deb('0x2a')]['message'][_0x7deb('0x5e')],'originCc':_0x15452d['body'][_0x7deb('0x1a')][_0x7deb('0x5f')],'bcc':_0x15452d['body'][_0x7deb('0x1a')][_0x7deb('0x60')]},{'include':[{'model':db['Attachment'],'as':_0x7deb('0x61')}]});})[_0x7deb('0x12')](function(_0x471152){_0x1b7bbe[_0x7deb('0x1a')]=_0x471152;if(_0x1b7bbe[_0x7deb('0x5b')]['UserId']){return db[_0x7deb('0x62')]['find']({'attributes':['id',_0x7deb('0x63')],'where':{'id':_0x1b7bbe['interaction']['UserId']}})['then'](function(_0x577e89){if(_0x577e89){_0x1b7bbe[_0x7deb('0x42')]['unshift']({'id':0x0,'priority':0x0,'app':_0x7deb('0x64'),'appdata':_0x577e89[_0x7deb('0x63')]+','+(_0x1b7bbe[_0x7deb('0x38')][_0x7deb('0x65')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x7deb('0x66'),_0x7deb('0x67'),_0x1b7bbe);});}return respondWithRpcPromise(_0x7deb('0x66'),'startRouting',_0x1b7bbe);})[_0x7deb('0x12')](function(_0x1e9a59){_0x2f7018(_0x1e9a59);})[_0x7deb('0x1d')](function(_0x54f1b5){_0xccae33(_0x5ecca3[_0x7deb('0x18')](0x1f4,_0x54f1b5[_0x7deb('0x1a')]));});});};