Built motion from commit (unavailable).|2.4.19
[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 _0x4899=['originCc','bcc','Attachment','UserId','User','name','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start','lodash','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','socket.io-emitter','./mailAccount.socket','register','request','then','info','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','code','MailAccount,\x20%s,\x20%s','message','result','MailAccount','findAll','options','raw','attributes','limit','include','map','model','GetMailAccount','stringify','ShowMailAccount','find','where','catch','body','mail','difference','keys','CmContact','rawAttributes','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','get','omit','applications','list','orderBy','priority','asc','autoclose','push','length','close','create','contact','messageId','generate','subject','attach','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','update','format','YYYY-MM-DD\x20HH:mm:ss','interaction','created'];(function(_0x33a3ca,_0xea9d34){var _0x2be7a6=function(_0x5397af){while(--_0x5397af){_0x33a3ca['push'](_0x33a3ca['shift']());}};_0x2be7a6(++_0xea9d34);}(_0x4899,0x74));var _0x9489=function(_0x3712db,_0x4d845f){_0x3712db=_0x3712db-0x0;var _0x20629c=_0x4899[_0x3712db];return _0x20629c;};'use strict';var _=require(_0x9489('0x0'));var util=require('util');var moment=require(_0x9489('0x1'));var BPromise=require('bluebird');var rs=require(_0x9489('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9489('0x3'))['db'];var utils=require(_0x9489('0x4'));var logger=require(_0x9489('0x5'))(_0x9489('0x6'));var config=require(_0x9489('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x9489('0x8')][_0x9489('0x9')]({'port':0x232c});config[_0x9489('0xa')]=_[_0x9489('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x9489('0xc'))(new Redis(config['redis']));require(_0x9489('0xd'))[_0x9489('0xe')](socket);function respondWithRpcPromise(_0x52f169,_0x1dac7c,_0x12480e){return new BPromise(function(_0x141c15,_0x91d101){return client[_0x9489('0xf')](_0x52f169,_0x12480e)[_0x9489('0x10')](function(_0x3808a1){logger[_0x9489('0x11')]('MailAccount,\x20%s,\x20%s',_0x1dac7c,_0x9489('0x12'));logger[_0x9489('0x13')](_0x9489('0x14'),_0x1dac7c,'request\x20sent',JSON['stringify'](_0x3808a1));if(_0x3808a1[_0x9489('0x15')]){if(_0x3808a1[_0x9489('0x15')][_0x9489('0x16')]===0x1f4){logger['error'](_0x9489('0x17'),_0x1dac7c,_0x3808a1['error'][_0x9489('0x18')]);return _0x91d101(_0x3808a1['error'][_0x9489('0x18')]);}logger[_0x9489('0x15')](_0x9489('0x17'),_0x1dac7c,_0x3808a1[_0x9489('0x15')][_0x9489('0x18')]);return _0x141c15(_0x3808a1['error'][_0x9489('0x18')]);}else{logger['info']('MailAccount,\x20%s,\x20%s',_0x1dac7c,_0x9489('0x12'));_0x141c15(_0x3808a1[_0x9489('0x19')][_0x9489('0x18')]);}})['catch'](function(_0x23ef8f){logger[_0x9489('0x15')]('MailAccount,\x20%s,\x20%s',_0x1dac7c,_0x23ef8f);_0x91d101(_0x23ef8f);});});}exports['GetMailAccount']=function(_0x10a638){var _0xf4b083=this;return new Promise(function(_0x362ec7,_0x2430a6){return db[_0x9489('0x1a')][_0x9489('0x1b')]({'raw':_0x10a638[_0x9489('0x1c')]?_0x10a638['options'][_0x9489('0x1d')]===undefined?!![]:![]:!![],'where':_0x10a638[_0x9489('0x1c')]?_0x10a638[_0x9489('0x1c')]['where']||null:null,'attributes':_0x10a638[_0x9489('0x1c')]?_0x10a638[_0x9489('0x1c')][_0x9489('0x1e')]||null:null,'limit':_0x10a638[_0x9489('0x1c')]?_0x10a638[_0x9489('0x1c')][_0x9489('0x1f')]||null:null,'include':_0x10a638['options']?_0x10a638[_0x9489('0x1c')][_0x9489('0x20')]?_[_0x9489('0x21')](_0x10a638[_0x9489('0x1c')][_0x9489('0x20')],function(_0x1ede2f){return{'model':db[_0x1ede2f[_0x9489('0x22')]],'as':_0x1ede2f['as'],'attributes':_0x1ede2f[_0x9489('0x1e')],'include':_0x1ede2f[_0x9489('0x20')]?_[_0x9489('0x21')](_0x1ede2f[_0x9489('0x20')],function(_0x2f54e7){return{'model':db[_0x2f54e7[_0x9489('0x22')]],'as':_0x2f54e7['as'],'attributes':_0x2f54e7[_0x9489('0x1e')],'include':_0x2f54e7[_0x9489('0x20')]?_[_0x9489('0x21')](_0x2f54e7['include'],function(_0x21b370){return{'model':db[_0x21b370['model']],'as':_0x21b370['as'],'attributes':_0x21b370['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x42ff88){logger[_0x9489('0x11')]('GetMailAccount',_0x10a638);logger[_0x9489('0x13')](_0x9489('0x23'),_0x10a638,JSON[_0x9489('0x24')](_0x42ff88));_0x362ec7(_0x42ff88);})['catch'](function(_0x590f2b){logger[_0x9489('0x15')]('GetMailAccount',_0x590f2b[_0x9489('0x18')],_0x10a638);_0x2430a6(_0xf4b083[_0x9489('0x15')](0x1f4,_0x590f2b[_0x9489('0x18')]));});});};exports[_0x9489('0x25')]=function(_0x3b7827){var _0x4edaed=this;return new Promise(function(_0x55f4b4,_0x17fee8){return db[_0x9489('0x1a')][_0x9489('0x26')]({'raw':_0x3b7827['options']?_0x3b7827[_0x9489('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x3b7827[_0x9489('0x1c')]?_0x3b7827[_0x9489('0x1c')][_0x9489('0x27')]||null:null,'attributes':_0x3b7827[_0x9489('0x1c')]?_0x3b7827['options'][_0x9489('0x1e')]||null:null,'include':_0x3b7827[_0x9489('0x1c')]?_0x3b7827[_0x9489('0x1c')]['include']?_[_0x9489('0x21')](_0x3b7827['options'][_0x9489('0x20')],function(_0x97f7f2){return{'model':db[_0x97f7f2['model']],'as':_0x97f7f2['as'],'attributes':_0x97f7f2[_0x9489('0x1e')],'include':_0x97f7f2[_0x9489('0x20')]?_[_0x9489('0x21')](_0x97f7f2['include'],function(_0x33199d){return{'model':db[_0x33199d[_0x9489('0x22')]],'as':_0x33199d['as'],'attributes':_0x33199d[_0x9489('0x1e')],'include':_0x33199d[_0x9489('0x20')]?_[_0x9489('0x21')](_0x33199d[_0x9489('0x20')],function(_0x29e2bf){return{'model':db[_0x29e2bf[_0x9489('0x22')]],'as':_0x29e2bf['as'],'attributes':_0x29e2bf[_0x9489('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x9489('0x10')](function(_0x29a288){logger[_0x9489('0x11')](_0x9489('0x25'),_0x3b7827);logger[_0x9489('0x13')](_0x9489('0x25'),_0x3b7827,JSON[_0x9489('0x24')](_0x29a288));_0x55f4b4(_0x29a288);})[_0x9489('0x28')](function(_0x1019bd){logger[_0x9489('0x15')](_0x9489('0x25'),_0x1019bd[_0x9489('0x18')],_0x3b7827);_0x17fee8(_0x4edaed[_0x9489('0x15')](0x1f4,_0x1019bd['message']));});});};exports['NotifyMailAccount']=function(_0x543bed){var _0x453cd2=this;return new Promise(function(_0x28d721,_0x18272e){var _0x154cc7={'body':_0x543bed[_0x9489('0x29')],'channel':_0x9489('0x2a')};var _0x37df2b=_[_0x9489('0x2b')](_[_0x9489('0x2c')](db[_0x9489('0x2d')][_0x9489('0x2e')]),['createdAt',_0x9489('0x2f'),_0x9489('0x30'),_0x9489('0x31')]);var _0x1b6f3e=![];if(_0x543bed[_0x9489('0x29')]['id']){delete _0x543bed[_0x9489('0x29')]['id'];}if(_[_0x9489('0x32')](_0x543bed[_0x9489('0x29')][_0x9489('0x33')])){return _0x18272e(_0x453cd2['error'](0x1f4,_0x9489('0x34')));}if(_[_0x9489('0x32')](_0x543bed[_0x9489('0x29')][_0x9489('0x29')])||_0x543bed[_0x9489('0x29')][_0x9489('0x29')]===''){return _0x18272e(_0x453cd2[_0x9489('0x15')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x9489('0x32')](_0x543bed[_0x9489('0x29')][_0x9489('0x35')])){return _0x18272e(_0x453cd2[_0x9489('0x15')](0x1f4,_0x9489('0x36')+_0x37df2b));}if(!_[_0x9489('0x37')](_0x37df2b,_0x543bed['body']['mapKey'])){return _0x18272e(_0x453cd2['error'](0x1f4,_0x9489('0x38')+_0x37df2b));}var _0x3ef6ca={};_0x3ef6ca[_0x543bed[_0x9489('0x29')][_0x9489('0x35')]]=_0x543bed[_0x9489('0x29')][_0x9489('0x33')];return db[_0x9489('0x1a')][_0x9489('0x26')]({'where':{'id':_0x543bed[_0x9489('0x39')]['id']},'include':[{'model':db[_0x9489('0x3a')],'as':_0x9489('0x3b'),'include':[{'model':db[_0x9489('0x2d')],'as':_0x9489('0x3c'),'where':_0x3ef6ca,'limit':0x1,'order':[['updatedAt',_0x9489('0x3d')]]}]},{'model':db[_0x9489('0x3e')],'as':_0x9489('0x3f')},{'model':db[_0x9489('0x40')],'as':_0x9489('0x41')}]})['then'](function(_0x51b486){if(_0x51b486&&_0x51b486[_0x9489('0x3b')]){var _0x70372=_0x51b486[_0x9489('0x42')]({'plain':!![]});_0x154cc7[_0x9489('0x39')]=_[_0x9489('0x43')](_0x70372,[_0x9489('0x3f'),_0x9489('0x3b')]);_0x154cc7[_0x9489('0x44')]=_0x70372[_0x9489('0x3f')];_0x154cc7[_0x9489('0x45')]=_0x70372[_0x9489('0x3b')];_0x154cc7[_0x9489('0x44')]=_[_0x9489('0x46')](_0x154cc7[_0x9489('0x44')],[_0x9489('0x47')],[_0x9489('0x48')]);if(_0x154cc7[_0x9489('0x39')]&&_0x154cc7[_0x9489('0x39')][_0x9489('0x49')]){_0x154cc7[_0x9489('0x44')][_0x9489('0x4a')]({'id':0x0,'priority':_0x154cc7[_0x9489('0x44')][_0x9489('0x4b')]+0x1,'app':_0x9489('0x4c'),'appdata':_0x9489('0x49'),'interval':'*,*,*,*'});}if(_0x154cc7[_0x9489('0x39')][_0x9489('0x3f')]){delete _0x154cc7[_0x9489('0x39')][_0x9489('0x3f')];}if(_0x154cc7[_0x9489('0x39')][_0x9489('0x3b')]){delete _0x154cc7[_0x9489('0x39')][_0x9489('0x3b')];}if(_0x70372['List']['Contacts'][_0x9489('0x4b')]){return _0x70372['List'][_0x9489('0x3c')][0x0];}var _0x52f059=_[_0x9489('0xb')](_0x543bed[_0x9489('0x29')],{'firstName':_0x543bed[_0x9489('0x29')][_0x9489('0x33')],'ListId':_0x70372[_0x9489('0x31')]});_0x52f059[_0x543bed['body']['mapKey']]=_0x543bed['body']['from'];return db['CmContact'][_0x9489('0x4d')](_0x52f059);}else{throw new Error('List\x20not\x20found');}})[_0x9489('0x10')](function(_0x29c78f){_0x154cc7[_0x9489('0x4e')]=_0x29c78f;if(_0x29c78f){if(!_0x543bed[_0x9489('0x29')][_0x9489('0x18')][_0x9489('0x4f')]){_0x543bed[_0x9489('0x29')][_0x9489('0x18')]['messageId']=rs[_0x9489('0x50')]()+'\x20'+_0x543bed['body'][_0x9489('0x18')]['from'];}var _0x5db6ec={'ContactId':_0x29c78f['id'],'MailAccountId':_0x543bed[_0x9489('0x39')]['id'],'inReplyTo':_0x543bed[_0x9489('0x29')][_0x9489('0x18')][_0x9489('0x4f')],'to':_0x543bed[_0x9489('0x29')][_0x9489('0x18')][_0x9489('0x33')],'cc':_0x543bed[_0x9489('0x29')][_0x9489('0x18')]['cc'],'subject':_0x543bed[_0x9489('0x29')][_0x9489('0x18')][_0x9489('0x51')],'attach':_0x543bed[_0x9489('0x29')]['message'][_0x9489('0x52')],'lastMsgAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x543bed[_0x9489('0x29')][_0x9489('0x29')]};return db[_0x9489('0x53')][_0x9489('0x26')]({'where':{'closed':![],'MailAccountId':_0x543bed[_0x9489('0x39')]['id']},'include':[{'model':db[_0x9489('0x54')],'as':_0x9489('0x55'),'attributes':[_0x9489('0x4f')],'where':{'messageId':_0x543bed[_0x9489('0x29')][_0x9489('0x18')][_0x9489('0x56')]}}]})['then'](function(_0xfd8751){if(_0xfd8751){return[_0xfd8751,![]];}return db[_0x9489('0x53')][_0x9489('0x4d')](_0x5db6ec)['then'](function(_0x4044cb){return[_0x4044cb,!![]];});});}else{throw new Error(_0x9489('0x57'));}})[_0x9489('0x58')](function(_0x3435e4,_0x299238){if(_0x3435e4){_0x1b6f3e=_0x299238;if(!_0x299238){return _0x3435e4[_0x9489('0x59')]({'inReplyTo':_0x543bed[_0x9489('0x29')][_0x9489('0x18')]['messageId'],'to':_0x543bed['body'][_0x9489('0x18')][_0x9489('0x33')],'cc':_0x543bed[_0x9489('0x29')][_0x9489('0x18')]['cc'],'subject':_0x543bed['body'][_0x9489('0x18')][_0x9489('0x51')],'attach':_0x3435e4[_0x9489('0x52')]?_0x3435e4[_0x9489('0x52')]:_0x543bed[_0x9489('0x29')][_0x9489('0x18')]['attach'],'substatus':null,'substatusAt':moment()[_0x9489('0x5a')](_0x9489('0x5b')),'lastMsgAt':moment()[_0x9489('0x5a')](_0x9489('0x5b')),'lastMsgDirection':'in','lastMsgBody':_0x543bed[_0x9489('0x29')][_0x9489('0x29')]});}else{return _0x3435e4;}}})[_0x9489('0x10')](function(_0x3af2f7){_0x154cc7['interaction']=_0x3af2f7['get']({'plain':!![]});_0x154cc7[_0x9489('0x5c')][_0x9489('0x5d')]=_0x1b6f3e;return db['MailMessage'][_0x9489('0x4d')]({'body':_0x543bed[_0x9489('0x29')][_0x9489('0x29')],'MailAccountId':_0x543bed[_0x9489('0x39')]['id'],'MailInteractionId':_0x3af2f7['id'],'direction':'in','ContactId':_0x154cc7[_0x9489('0x4e')]['id'],'messageId':_0x543bed[_0x9489('0x29')][_0x9489('0x18')][_0x9489('0x4f')],'from':_0x543bed[_0x9489('0x29')][_0x9489('0x18')]['from'],'to':_0x543bed[_0x9489('0x29')][_0x9489('0x18')]['to'],'cc':_0x543bed[_0x9489('0x29')][_0x9489('0x18')]['cc'],'subject':_0x543bed[_0x9489('0x29')]['message'][_0x9489('0x51')],'attach':_0x543bed['body'][_0x9489('0x18')][_0x9489('0x52')],'Attachments':_0x543bed['body'][_0x9489('0x18')]['attachments'],'originTo':_0x543bed[_0x9489('0x29')][_0x9489('0x18')]['originTo'],'originCc':_0x543bed[_0x9489('0x29')][_0x9489('0x18')][_0x9489('0x5e')],'bcc':_0x543bed['body'][_0x9489('0x18')][_0x9489('0x5f')]},{'include':[{'model':db[_0x9489('0x60')],'as':'Attachments'}]});})[_0x9489('0x10')](function(_0x58f106){_0x154cc7[_0x9489('0x18')]=_0x58f106;if(_0x154cc7[_0x9489('0x5c')][_0x9489('0x61')]){return db[_0x9489('0x62')]['find']({'attributes':['id',_0x9489('0x63')],'where':{'id':_0x154cc7[_0x9489('0x5c')][_0x9489('0x61')]}})[_0x9489('0x10')](function(_0x34c0e5){if(_0x34c0e5){_0x154cc7[_0x9489('0x44')][_0x9489('0x64')]({'id':0x0,'priority':0x0,'app':_0x9489('0x65'),'appdata':_0x34c0e5[_0x9489('0x63')]+','+(_0x154cc7['account'][_0x9489('0x66')]||0xa),'interval':_0x9489('0x67')});}return respondWithRpcPromise(_0x9489('0x68'),'startRouting',_0x154cc7);});}return respondWithRpcPromise(_0x9489('0x68'),'startRouting',_0x154cc7);})['then'](function(_0x313891){_0x28d721(_0x313891);})[_0x9489('0x28')](function(_0x2205ca){_0x18272e(_0x453cd2['error'](0x1f4,_0x2205ca[_0x9489('0x18')]));});});};