Built motion from commit 449495f6.|2.6.27
[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 _0x24ca=['YYYY-MM-DD\x20HH:mm:ss','interaction','created','contact','subject','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','Attachments','UserId','User','name','agent','waitForTheAssignedAgent','queueId','MailQueue','unshift','queue','waitForTheAssignedQueue','Start','startRouting','lodash','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','localhost','socket.io-emitter','redis','./mailAccount.socket','register','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetMailAccount','MailAccount','findAll','options','raw','where','limit','include','map','attributes','model','then','stringify','find','smtp','setDataValue','getSmtpOptions','ShowMailAccount','NotifyMailAccount','body','mail','difference','keys','createdAt','CompanyId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','CmContact','Contacts','updatedAt','DESC','Applications','Smtp','CloudProvider','get','omit','applications','list','orderBy','push','length','*,*,*,*','ListId','messageId','generate','format','MailInteraction','MailMessage','Messages','inReplyTo','create','Contact\x20not\x20found','spread','update','attach'];(function(_0x18b191,_0x4e0684){var _0x43e146=function(_0x4b464e){while(--_0x4b464e){_0x18b191['push'](_0x18b191['shift']());}};_0x43e146(++_0x4e0684);}(_0x24ca,0x8c));var _0xa24c=function(_0x10291b,_0x518773){_0x10291b=_0x10291b-0x0;var _0x1d5fbe=_0x24ca[_0x10291b];return _0x1d5fbe;};'use strict';var _=require(_0xa24c('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xa24c('0x1'));var Redis=require('ioredis');var db=require(_0xa24c('0x2'))['db'];var logger=require(_0xa24c('0x3'))(_0xa24c('0x4'));var config=require('../../config/environment');var jayson=require(_0xa24c('0x5'));var client=jayson[_0xa24c('0x6')][_0xa24c('0x7')]({'port':0x232c});config['redis']=_['defaults'](config['redis'],{'host':_0xa24c('0x8'),'port':0x18eb});var socket=require(_0xa24c('0x9'))(new Redis(config[_0xa24c('0xa')]));require(_0xa24c('0xb'))[_0xa24c('0xc')](socket);function respondWithRpcPromise(_0x87c265,_0x5bedc6,_0x101ca7){return new BPromise(function(_0x413b3d,_0x355882){return client['request'](_0x87c265,_0x101ca7)['then'](function(_0x1331f4){logger[_0xa24c('0xd')](_0xa24c('0xe'),_0x5bedc6,_0xa24c('0xf'));logger[_0xa24c('0x10')](_0xa24c('0x11'),_0x5bedc6,'request\x20sent',JSON['stringify'](_0x1331f4));if(_0x1331f4['error']){if(_0x1331f4[_0xa24c('0x12')][_0xa24c('0x13')]===0x1f4){logger[_0xa24c('0x12')](_0xa24c('0xe'),_0x5bedc6,_0x1331f4[_0xa24c('0x12')]['message']);return _0x355882(_0x1331f4[_0xa24c('0x12')]['message']);}logger['error']('MailAccount,\x20%s,\x20%s',_0x5bedc6,_0x1331f4[_0xa24c('0x12')][_0xa24c('0x14')]);return _0x413b3d(_0x1331f4[_0xa24c('0x12')][_0xa24c('0x14')]);}else{logger[_0xa24c('0xd')](_0xa24c('0xe'),_0x5bedc6,_0xa24c('0xf'));_0x413b3d(_0x1331f4[_0xa24c('0x15')][_0xa24c('0x14')]);}})[_0xa24c('0x16')](function(_0x1970fc){logger[_0xa24c('0x12')](_0xa24c('0xe'),_0x5bedc6,_0x1970fc);_0x355882(_0x1970fc);});});}exports[_0xa24c('0x17')]=function(_0x5276b6){var _0x167a76=this;return new Promise(function(_0x48fb65,_0x98802d){return db[_0xa24c('0x18')][_0xa24c('0x19')]({'raw':_0x5276b6[_0xa24c('0x1a')]?_0x5276b6[_0xa24c('0x1a')][_0xa24c('0x1b')]===undefined?!![]:![]:!![],'where':_0x5276b6[_0xa24c('0x1a')]?_0x5276b6[_0xa24c('0x1a')][_0xa24c('0x1c')]||null:null,'attributes':_0x5276b6[_0xa24c('0x1a')]?_0x5276b6[_0xa24c('0x1a')]['attributes']||null:null,'limit':_0x5276b6['options']?_0x5276b6[_0xa24c('0x1a')][_0xa24c('0x1d')]||null:null,'include':_0x5276b6[_0xa24c('0x1a')]?_0x5276b6[_0xa24c('0x1a')][_0xa24c('0x1e')]?_[_0xa24c('0x1f')](_0x5276b6[_0xa24c('0x1a')][_0xa24c('0x1e')],function(_0x304d6c){return{'model':db[_0x304d6c['model']],'as':_0x304d6c['as'],'attributes':_0x304d6c[_0xa24c('0x20')],'include':_0x304d6c['include']?_[_0xa24c('0x1f')](_0x304d6c[_0xa24c('0x1e')],function(_0x471421){return{'model':db[_0x471421[_0xa24c('0x21')]],'as':_0x471421['as'],'attributes':_0x471421['attributes'],'include':_0x471421['include']?_['map'](_0x471421['include'],function(_0x23fb79){return{'model':db[_0x23fb79[_0xa24c('0x21')]],'as':_0x23fb79['as'],'attributes':_0x23fb79[_0xa24c('0x20')]};}):[]};}):[]};}):[]:[]})[_0xa24c('0x22')](function(_0x37cbd3){logger['info']('GetMailAccount',_0x5276b6);logger[_0xa24c('0x10')](_0xa24c('0x17'),_0x5276b6,JSON[_0xa24c('0x23')](_0x37cbd3));_0x48fb65(_0x37cbd3);})[_0xa24c('0x16')](function(_0x4566dc){logger[_0xa24c('0x12')](_0xa24c('0x17'),_0x4566dc[_0xa24c('0x14')],_0x5276b6);_0x98802d(_0x167a76[_0xa24c('0x12')](0x1f4,_0x4566dc[_0xa24c('0x14')]));});});};exports['ShowMailAccount']=function(_0x2dd4f1){var _0x3b94f0=this;return new Promise(function(_0x56b717,_0x3c9649){return db[_0xa24c('0x18')][_0xa24c('0x24')]({'raw':_0x2dd4f1[_0xa24c('0x1a')]?_0x2dd4f1[_0xa24c('0x1a')][_0xa24c('0x1b')]===undefined?!![]:![]:!![],'where':_0x2dd4f1[_0xa24c('0x1a')]?_0x2dd4f1[_0xa24c('0x1a')][_0xa24c('0x1c')]||null:null,'attributes':_0x2dd4f1[_0xa24c('0x1a')]?_0x2dd4f1['options']['attributes']||null:null,'include':_0x2dd4f1['options']?_0x2dd4f1[_0xa24c('0x1a')]['include']?_[_0xa24c('0x1f')](_0x2dd4f1[_0xa24c('0x1a')][_0xa24c('0x1e')],function(_0x4b8627){return{'model':db[_0x4b8627[_0xa24c('0x21')]],'as':_0x4b8627['as'],'attributes':_0x4b8627[_0xa24c('0x20')],'include':_0x4b8627[_0xa24c('0x1e')]?_['map'](_0x4b8627[_0xa24c('0x1e')],function(_0x16835f){return{'model':db[_0x16835f['model']],'as':_0x16835f['as'],'attributes':_0x16835f[_0xa24c('0x20')],'include':_0x16835f[_0xa24c('0x1e')]?_[_0xa24c('0x1f')](_0x16835f['include'],function(_0x45c429){return{'model':db[_0x45c429[_0xa24c('0x21')]],'as':_0x45c429['as'],'attributes':_0x45c429[_0xa24c('0x20')]};}):[]};}):[]};}):[]:[]})[_0xa24c('0x22')](function(_0x12e184){if(_0x2dd4f1['options'][_0xa24c('0x25')]===!![])_0x12e184[_0xa24c('0x26')]('smtpOptions',_0x12e184[_0xa24c('0x27')]());logger[_0xa24c('0xd')](_0xa24c('0x28'),_0x2dd4f1);logger['debug']('ShowMailAccount',_0x2dd4f1,JSON[_0xa24c('0x23')](_0x12e184));_0x56b717(_0x12e184);})[_0xa24c('0x16')](function(_0x219b2c){logger[_0xa24c('0x12')](_0xa24c('0x28'),_0x219b2c[_0xa24c('0x14')],_0x2dd4f1);_0x3c9649(_0x3b94f0['error'](0x1f4,_0x219b2c[_0xa24c('0x14')]));});});};exports[_0xa24c('0x29')]=function(_0x21e804){var _0x137a1d=this;return new Promise(function(_0x5f3cd4,_0x34026c){var _0x190dfc={'body':_0x21e804[_0xa24c('0x2a')],'channel':_0xa24c('0x2b')};var _0x103b50=_[_0xa24c('0x2c')](_[_0xa24c('0x2d')](db['CmContact']['rawAttributes']),[_0xa24c('0x2e'),'updatedAt',_0xa24c('0x2f'),'ListId']);var _0x32e151=![];if(_0x21e804[_0xa24c('0x2a')]['id']){delete _0x21e804[_0xa24c('0x2a')]['id'];}if(_[_0xa24c('0x30')](_0x21e804[_0xa24c('0x2a')][_0xa24c('0x31')])){return _0x34026c(_0x137a1d[_0xa24c('0x12')](0x1f4,_0xa24c('0x32')));}if(_[_0xa24c('0x30')](_0x21e804[_0xa24c('0x2a')][_0xa24c('0x2a')])||_0x21e804[_0xa24c('0x2a')][_0xa24c('0x2a')]===''){return _0x34026c(_0x137a1d[_0xa24c('0x12')](0x1f4,_0xa24c('0x33')));}if(_[_0xa24c('0x30')](_0x21e804['body'][_0xa24c('0x34')])){return _0x34026c(_0x137a1d[_0xa24c('0x12')](0x1f4,_0xa24c('0x35')+_0x103b50));}if(!_['includes'](_0x103b50,_0x21e804[_0xa24c('0x2a')][_0xa24c('0x34')])){return _0x34026c(_0x137a1d[_0xa24c('0x12')](0x1f4,_0xa24c('0x36')+_0x103b50));}var _0x4d8b8e={};_0x4d8b8e[_0x21e804[_0xa24c('0x2a')][_0xa24c('0x34')]]=_0x21e804[_0xa24c('0x2a')][_0xa24c('0x31')];return db[_0xa24c('0x18')][_0xa24c('0x24')]({'where':{'id':_0x21e804[_0xa24c('0x37')]['id']},'include':[{'model':db[_0xa24c('0x38')],'as':_0xa24c('0x39'),'include':[{'model':db[_0xa24c('0x3a')],'as':_0xa24c('0x3b'),'where':_0x4d8b8e,'limit':0x1,'order':[[_0xa24c('0x3c'),_0xa24c('0x3d')]]}]},{'model':db['MailApplication'],'as':_0xa24c('0x3e')},{'model':db['MailServerOut'],'as':_0xa24c('0x3f'),'include':[{'model':db[_0xa24c('0x40')],'as':_0xa24c('0x40')}]}]})[_0xa24c('0x22')](function(_0xd4761e){if(_0xd4761e&&_0xd4761e[_0xa24c('0x39')]){var _0x338877=_0xd4761e[_0xa24c('0x41')]({'plain':!![]});_0x190dfc[_0xa24c('0x37')]=_[_0xa24c('0x42')](_0x338877,[_0xa24c('0x3e'),_0xa24c('0x39')]);_0x190dfc[_0xa24c('0x37')]['smtpOptions']=_0xd4761e[_0xa24c('0x27')]();_0x190dfc[_0xa24c('0x43')]=_0x338877[_0xa24c('0x3e')];_0x190dfc[_0xa24c('0x44')]=_0x338877['List'];_0x190dfc[_0xa24c('0x43')]=_[_0xa24c('0x45')](_0x190dfc[_0xa24c('0x43')],['priority'],['asc']);if(_0x190dfc[_0xa24c('0x37')]&&_0x190dfc[_0xa24c('0x37')]['autoclose']){_0x190dfc[_0xa24c('0x43')][_0xa24c('0x46')]({'id':0x0,'priority':_0x190dfc['applications'][_0xa24c('0x47')]+0x1,'app':'close','appdata':'autoclose','interval':_0xa24c('0x48')});}if(_0x190dfc['account'][_0xa24c('0x3e')]){delete _0x190dfc[_0xa24c('0x37')]['Applications'];}if(_0x190dfc[_0xa24c('0x37')][_0xa24c('0x39')]){delete _0x190dfc[_0xa24c('0x37')][_0xa24c('0x39')];}if(_0x338877['List'][_0xa24c('0x3b')]['length']){return _0x338877[_0xa24c('0x39')][_0xa24c('0x3b')][0x0];}var _0x53e305=_['defaults'](_0x21e804[_0xa24c('0x2a')],{'firstName':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x31')],'ListId':_0x338877[_0xa24c('0x49')]});_0x53e305[_0x21e804[_0xa24c('0x2a')]['mapKey']]=_0x21e804[_0xa24c('0x2a')]['from'];return db[_0xa24c('0x3a')]['create'](_0x53e305);}else{throw new Error('List\x20not\x20found');}})['then'](function(_0x3fc3d9){_0x190dfc['contact']=_0x3fc3d9;if(_0x3fc3d9){if(!_0x21e804['body'][_0xa24c('0x14')]['messageId']){_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')][_0xa24c('0x4a')]=rs[_0xa24c('0x4b')]()+'\x20'+_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')][_0xa24c('0x31')];}var _0x366505={'ContactId':_0x3fc3d9['id'],'MailAccountId':_0x21e804['account']['id'],'inReplyTo':_0x21e804['body'][_0xa24c('0x14')][_0xa24c('0x4a')],'to':_0x21e804['body'][_0xa24c('0x14')][_0xa24c('0x31')],'cc':_0x21e804['body'][_0xa24c('0x14')]['cc'],'subject':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')]['subject'],'attach':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')]['attach'],'lastMsgAt':moment()[_0xa24c('0x4c')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db[_0xa24c('0x4d')][_0xa24c('0x24')]({'where':{'closed':![],'MailAccountId':_0x21e804[_0xa24c('0x37')]['id']},'include':[{'model':db[_0xa24c('0x4e')],'as':_0xa24c('0x4f'),'attributes':[_0xa24c('0x4a')],'where':{'messageId':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')][_0xa24c('0x50')]}}]})[_0xa24c('0x22')](function(_0x37a9c8){if(_0x37a9c8){return[_0x37a9c8,![]];}return db[_0xa24c('0x4d')][_0xa24c('0x51')](_0x366505)[_0xa24c('0x22')](function(_0xe32b69){return[_0xe32b69,!![]];});});}else{throw new Error(_0xa24c('0x52'));}})[_0xa24c('0x53')](function(_0x46aded,_0x5b5826){if(_0x46aded){_0x32e151=_0x5b5826;if(!_0x5b5826){return _0x46aded[_0xa24c('0x54')]({'inReplyTo':_0x21e804['body'][_0xa24c('0x14')][_0xa24c('0x4a')],'to':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')]['from'],'cc':_0x21e804['body'][_0xa24c('0x14')]['cc'],'subject':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')]['subject'],'attach':_0x46aded[_0xa24c('0x55')]?_0x46aded[_0xa24c('0x55')]:_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')][_0xa24c('0x55')],'substatus':null,'substatusAt':moment()[_0xa24c('0x4c')](_0xa24c('0x56')),'lastMsgAt':moment()[_0xa24c('0x4c')](_0xa24c('0x56')),'lastMsgDirection':'in'});}else{return _0x46aded;}}})[_0xa24c('0x22')](function(_0x2cb64e){_0x190dfc[_0xa24c('0x57')]=_0x2cb64e[_0xa24c('0x41')]({'plain':!![]});_0x190dfc[_0xa24c('0x57')][_0xa24c('0x58')]=_0x32e151;return db[_0xa24c('0x4e')][_0xa24c('0x51')]({'body':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x2a')],'MailAccountId':_0x21e804[_0xa24c('0x37')]['id'],'MailInteractionId':_0x2cb64e['id'],'direction':'in','ContactId':_0x190dfc[_0xa24c('0x59')]['id'],'messageId':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')][_0xa24c('0x4a')],'from':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')][_0xa24c('0x31')],'to':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')]['to'],'cc':_0x21e804[_0xa24c('0x2a')]['message']['cc'],'subject':_0x21e804[_0xa24c('0x2a')]['message'][_0xa24c('0x5a')],'attach':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')][_0xa24c('0x55')],'Attachments':_0x21e804['body'][_0xa24c('0x14')][_0xa24c('0x5b')],'originTo':_0x21e804[_0xa24c('0x2a')]['message'][_0xa24c('0x5c')],'originCc':_0x21e804['body'][_0xa24c('0x14')][_0xa24c('0x5d')],'bcc':_0x21e804[_0xa24c('0x2a')]['message'][_0xa24c('0x5e')],'ChatWebsiteId':_0x21e804[_0xa24c('0x2a')]['message'][_0xa24c('0x5f')]||null,'originChannel':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')][_0xa24c('0x60')]||_0xa24c('0x61'),'ChatOfflineMessageId':_0x21e804[_0xa24c('0x2a')][_0xa24c('0x14')][_0xa24c('0x62')]||null},{'include':[{'model':db[_0xa24c('0x63')],'as':_0xa24c('0x64')}]});})[_0xa24c('0x22')](function(_0x259684){_0x190dfc[_0xa24c('0x14')]=_0x259684;if(!_0x190dfc[_0xa24c('0x57')][_0xa24c('0x65')]){return;}return db[_0xa24c('0x66')]['find']({'attributes':['id',_0xa24c('0x67')],'where':{'id':_0x190dfc[_0xa24c('0x57')][_0xa24c('0x65')]}});})[_0xa24c('0x22')](function(_0xdf074f){if(_0xdf074f){_0x190dfc['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0xa24c('0x68'),'appdata':_0xdf074f[_0xa24c('0x67')]+','+(_0x190dfc[_0xa24c('0x37')][_0xa24c('0x69')]||0xa),'interval':_0xa24c('0x48')});}if(!_0x190dfc['interaction'][_0xa24c('0x6a')]){return;}return db[_0xa24c('0x6b')][_0xa24c('0x24')]({'attributes':['id','name'],'where':{'id':_0x190dfc[_0xa24c('0x57')]['queueId']}});})['then'](function(_0x5d507a){if(_0x5d507a){_0x190dfc[_0xa24c('0x43')][_0xa24c('0x6c')]({'id':0x0,'priority':0x1,'app':_0xa24c('0x6d'),'appdata':_0x5d507a[_0xa24c('0x67')]+','+(_0x190dfc['account'][_0xa24c('0x6e')]||0x12c),'interval':_0xa24c('0x48')});}return respondWithRpcPromise(_0xa24c('0x6f'),_0xa24c('0x70'),_0x190dfc);})[_0xa24c('0x22')](function(_0x4baa40){_0x5f3cd4(_0x4baa40);})[_0xa24c('0x16')](function(_0x157552){_0x34026c(_0x137a1d['error'](0x1f4,_0x157552['message']));});});};