Built motion from commit 56a37f2a.|2.6.21
[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 _0x6b8f=['queueId','MailQueue','queue','waitForTheAssignedQueue','moment','randomstring','../../config/logger','rpc','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','register','request','then','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','code','MailAccount,\x20%s,\x20%s','message','catch','GetMailAccount','findAll','options','where','attributes','limit','include','map','model','info','stringify','ShowMailAccount','MailAccount','find','raw','smtp','setDataValue','smtpOptions','getSmtpOptions','NotifyMailAccount','body','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','mapKey','includes','account','CmList','List','Contacts','MailApplication','MailServerOut','Smtp','CloudProvider','get','omit','Applications','applications','list','priority','autoclose','push','close','*,*,*,*','length','List\x20not\x20found','messageId','generate','subject','attach','format','MailMessage','Messages','inReplyTo','MailInteraction','create','Contact\x20not\x20found','spread','update','YYYY-MM-DD\x20HH:mm:ss','interaction','created','contact','attachments','originCc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','Attachments','User','UserId','unshift','agent','name','waitForTheAssignedAgent'];(function(_0x3ed091,_0x3491d4){var _0x49f07c=function(_0x296cbc){while(--_0x296cbc){_0x3ed091['push'](_0x3ed091['shift']());}};_0x49f07c(++_0x3491d4);}(_0x6b8f,0x1bc));var _0xf6b8=function(_0x2764c5,_0x4e4520){_0x2764c5=_0x2764c5-0x0;var _0x3c1a2d=_0x6b8f[_0x2764c5];return _0x3c1a2d;};'use strict';var _=require('lodash');var moment=require(_0xf6b8('0x0'));var BPromise=require('bluebird');var rs=require(_0xf6b8('0x1'));var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var logger=require(_0xf6b8('0x2'))(_0xf6b8('0x3'));var config=require('../../config/environment');var jayson=require(_0xf6b8('0x4'));var client=jayson[_0xf6b8('0x5')][_0xf6b8('0x6')]({'port':0x232c});config['redis']=_[_0xf6b8('0x7')](config[_0xf6b8('0x8')],{'host':_0xf6b8('0x9'),'port':0x18eb});var socket=require(_0xf6b8('0xa'))(new Redis(config['redis']));require('./mailAccount.socket')[_0xf6b8('0xb')](socket);function respondWithRpcPromise(_0x577c92,_0x24458c,_0x7ac5fd){return new BPromise(function(_0x16a799,_0x3e6712){return client[_0xf6b8('0xc')](_0x577c92,_0x7ac5fd)[_0xf6b8('0xd')](function(_0x55dad4){logger['info']('MailAccount,\x20%s,\x20%s',_0x24458c,_0xf6b8('0xe'));logger[_0xf6b8('0xf')](_0xf6b8('0x10'),_0x24458c,_0xf6b8('0xe'),JSON['stringify'](_0x55dad4));if(_0x55dad4['error']){if(_0x55dad4[_0xf6b8('0x11')][_0xf6b8('0x12')]===0x1f4){logger['error'](_0xf6b8('0x13'),_0x24458c,_0x55dad4[_0xf6b8('0x11')][_0xf6b8('0x14')]);return _0x3e6712(_0x55dad4['error'][_0xf6b8('0x14')]);}logger['error'](_0xf6b8('0x13'),_0x24458c,_0x55dad4[_0xf6b8('0x11')][_0xf6b8('0x14')]);return _0x16a799(_0x55dad4[_0xf6b8('0x11')][_0xf6b8('0x14')]);}else{logger['info']('MailAccount,\x20%s,\x20%s',_0x24458c,_0xf6b8('0xe'));_0x16a799(_0x55dad4['result'][_0xf6b8('0x14')]);}})[_0xf6b8('0x15')](function(_0x4a93a8){logger['error'](_0xf6b8('0x13'),_0x24458c,_0x4a93a8);_0x3e6712(_0x4a93a8);});});}exports[_0xf6b8('0x16')]=function(_0x3081db){var _0x2cac60=this;return new Promise(function(_0x4df5f4,_0x59f9df){return db['MailAccount'][_0xf6b8('0x17')]({'raw':_0x3081db[_0xf6b8('0x18')]?_0x3081db[_0xf6b8('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x3081db[_0xf6b8('0x18')]?_0x3081db[_0xf6b8('0x18')][_0xf6b8('0x19')]||null:null,'attributes':_0x3081db[_0xf6b8('0x18')]?_0x3081db['options'][_0xf6b8('0x1a')]||null:null,'limit':_0x3081db['options']?_0x3081db[_0xf6b8('0x18')][_0xf6b8('0x1b')]||null:null,'include':_0x3081db[_0xf6b8('0x18')]?_0x3081db[_0xf6b8('0x18')][_0xf6b8('0x1c')]?_[_0xf6b8('0x1d')](_0x3081db['options'][_0xf6b8('0x1c')],function(_0x1ebfea){return{'model':db[_0x1ebfea['model']],'as':_0x1ebfea['as'],'attributes':_0x1ebfea[_0xf6b8('0x1a')],'include':_0x1ebfea[_0xf6b8('0x1c')]?_[_0xf6b8('0x1d')](_0x1ebfea[_0xf6b8('0x1c')],function(_0x3365b8){return{'model':db[_0x3365b8['model']],'as':_0x3365b8['as'],'attributes':_0x3365b8['attributes'],'include':_0x3365b8[_0xf6b8('0x1c')]?_[_0xf6b8('0x1d')](_0x3365b8['include'],function(_0x459ed0){return{'model':db[_0x459ed0[_0xf6b8('0x1e')]],'as':_0x459ed0['as'],'attributes':_0x459ed0[_0xf6b8('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x458935){logger[_0xf6b8('0x1f')]('GetMailAccount',_0x3081db);logger[_0xf6b8('0xf')](_0xf6b8('0x16'),_0x3081db,JSON[_0xf6b8('0x20')](_0x458935));_0x4df5f4(_0x458935);})[_0xf6b8('0x15')](function(_0x51ffcf){logger[_0xf6b8('0x11')](_0xf6b8('0x16'),_0x51ffcf[_0xf6b8('0x14')],_0x3081db);_0x59f9df(_0x2cac60['error'](0x1f4,_0x51ffcf[_0xf6b8('0x14')]));});});};exports[_0xf6b8('0x21')]=function(_0x20af96){var _0x50c0ce=this;return new Promise(function(_0x14a0be,_0x11b040){return db[_0xf6b8('0x22')][_0xf6b8('0x23')]({'raw':_0x20af96['options']?_0x20af96[_0xf6b8('0x18')][_0xf6b8('0x24')]===undefined?!![]:![]:!![],'where':_0x20af96[_0xf6b8('0x18')]?_0x20af96['options']['where']||null:null,'attributes':_0x20af96[_0xf6b8('0x18')]?_0x20af96[_0xf6b8('0x18')][_0xf6b8('0x1a')]||null:null,'include':_0x20af96[_0xf6b8('0x18')]?_0x20af96[_0xf6b8('0x18')][_0xf6b8('0x1c')]?_[_0xf6b8('0x1d')](_0x20af96[_0xf6b8('0x18')][_0xf6b8('0x1c')],function(_0x3b9493){return{'model':db[_0x3b9493[_0xf6b8('0x1e')]],'as':_0x3b9493['as'],'attributes':_0x3b9493[_0xf6b8('0x1a')],'include':_0x3b9493[_0xf6b8('0x1c')]?_[_0xf6b8('0x1d')](_0x3b9493[_0xf6b8('0x1c')],function(_0xad9285){return{'model':db[_0xad9285[_0xf6b8('0x1e')]],'as':_0xad9285['as'],'attributes':_0xad9285[_0xf6b8('0x1a')],'include':_0xad9285['include']?_['map'](_0xad9285[_0xf6b8('0x1c')],function(_0x296d10){return{'model':db[_0x296d10[_0xf6b8('0x1e')]],'as':_0x296d10['as'],'attributes':_0x296d10[_0xf6b8('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xf6b8('0xd')](function(_0x374aa7){if(_0x20af96[_0xf6b8('0x18')][_0xf6b8('0x25')]===!![])_0x374aa7[_0xf6b8('0x26')](_0xf6b8('0x27'),_0x374aa7[_0xf6b8('0x28')]());logger[_0xf6b8('0x1f')]('ShowMailAccount',_0x20af96);logger[_0xf6b8('0xf')](_0xf6b8('0x21'),_0x20af96,JSON['stringify'](_0x374aa7));_0x14a0be(_0x374aa7);})[_0xf6b8('0x15')](function(_0x2e1c69){logger[_0xf6b8('0x11')](_0xf6b8('0x21'),_0x2e1c69[_0xf6b8('0x14')],_0x20af96);_0x11b040(_0x50c0ce[_0xf6b8('0x11')](0x1f4,_0x2e1c69[_0xf6b8('0x14')]));});});};exports[_0xf6b8('0x29')]=function(_0x1c42fe){var _0x3238de=this;return new Promise(function(_0x15a63b,_0x3b0554){var _0x1220d7={'body':_0x1c42fe[_0xf6b8('0x2a')],'channel':'mail'};var _0x4fd756=_['difference'](_[_0xf6b8('0x2b')](db[_0xf6b8('0x2c')][_0xf6b8('0x2d')]),[_0xf6b8('0x2e'),_0xf6b8('0x2f'),_0xf6b8('0x30'),_0xf6b8('0x31')]);var _0x48f4cb=![];if(_0x1c42fe[_0xf6b8('0x2a')]['id']){delete _0x1c42fe['body']['id'];}if(_[_0xf6b8('0x32')](_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x33')])){return _0x3b0554(_0x3238de[_0xf6b8('0x11')](0x1f4,_0xf6b8('0x34')));}if(_['isNil'](_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x2a')])||_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x2a')]===''){return _0x3b0554(_0x3238de[_0xf6b8('0x11')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0xf6b8('0x32')](_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x35')])){return _0x3b0554(_0x3238de['error'](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4fd756));}if(!_[_0xf6b8('0x36')](_0x4fd756,_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x35')])){return _0x3b0554(_0x3238de[_0xf6b8('0x11')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4fd756));}var _0x53e9eb={};_0x53e9eb[_0x1c42fe['body'][_0xf6b8('0x35')]]=_0x1c42fe['body'][_0xf6b8('0x33')];return db[_0xf6b8('0x22')][_0xf6b8('0x23')]({'where':{'id':_0x1c42fe[_0xf6b8('0x37')]['id']},'include':[{'model':db[_0xf6b8('0x38')],'as':_0xf6b8('0x39'),'include':[{'model':db[_0xf6b8('0x2c')],'as':_0xf6b8('0x3a'),'where':_0x53e9eb,'limit':0x1,'order':[[_0xf6b8('0x2f'),'DESC']]}]},{'model':db[_0xf6b8('0x3b')],'as':'Applications'},{'model':db[_0xf6b8('0x3c')],'as':_0xf6b8('0x3d'),'include':[{'model':db[_0xf6b8('0x3e')],'as':_0xf6b8('0x3e')}]}]})[_0xf6b8('0xd')](function(_0x291845){if(_0x291845&&_0x291845[_0xf6b8('0x39')]){var _0x524b39=_0x291845[_0xf6b8('0x3f')]({'plain':!![]});_0x1220d7[_0xf6b8('0x37')]=_[_0xf6b8('0x40')](_0x524b39,[_0xf6b8('0x41'),'List']);_0x1220d7[_0xf6b8('0x37')][_0xf6b8('0x27')]=_0x291845['getSmtpOptions']();_0x1220d7[_0xf6b8('0x42')]=_0x524b39[_0xf6b8('0x41')];_0x1220d7[_0xf6b8('0x43')]=_0x524b39[_0xf6b8('0x39')];_0x1220d7[_0xf6b8('0x42')]=_['orderBy'](_0x1220d7[_0xf6b8('0x42')],[_0xf6b8('0x44')],['asc']);if(_0x1220d7['account']&&_0x1220d7['account'][_0xf6b8('0x45')]){_0x1220d7[_0xf6b8('0x42')][_0xf6b8('0x46')]({'id':0x0,'priority':_0x1220d7[_0xf6b8('0x42')]['length']+0x1,'app':_0xf6b8('0x47'),'appdata':_0xf6b8('0x45'),'interval':_0xf6b8('0x48')});}if(_0x1220d7[_0xf6b8('0x37')][_0xf6b8('0x41')]){delete _0x1220d7[_0xf6b8('0x37')][_0xf6b8('0x41')];}if(_0x1220d7['account']['List']){delete _0x1220d7[_0xf6b8('0x37')][_0xf6b8('0x39')];}if(_0x524b39['List']['Contacts'][_0xf6b8('0x49')]){return _0x524b39[_0xf6b8('0x39')][_0xf6b8('0x3a')][0x0];}var _0x25cf3d=_[_0xf6b8('0x7')](_0x1c42fe[_0xf6b8('0x2a')],{'firstName':_0x1c42fe['body'][_0xf6b8('0x33')],'ListId':_0x524b39[_0xf6b8('0x31')]});_0x25cf3d[_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x35')]]=_0x1c42fe['body'][_0xf6b8('0x33')];return db[_0xf6b8('0x2c')]['create'](_0x25cf3d);}else{throw new Error(_0xf6b8('0x4a'));}})[_0xf6b8('0xd')](function(_0x33b639){_0x1220d7['contact']=_0x33b639;if(_0x33b639){if(!_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x4b')]){_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x4b')]=rs[_0xf6b8('0x4c')]()+'\x20'+_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x33')];}var _0x1b3559={'ContactId':_0x33b639['id'],'MailAccountId':_0x1c42fe[_0xf6b8('0x37')]['id'],'inReplyTo':_0x1c42fe['body']['message']['messageId'],'to':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x33')],'cc':_0x1c42fe[_0xf6b8('0x2a')]['message']['cc'],'subject':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x4d')],'attach':_0x1c42fe['body'][_0xf6b8('0x14')][_0xf6b8('0x4e')],'lastMsgAt':moment()[_0xf6b8('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db['MailInteraction'][_0xf6b8('0x23')]({'where':{'closed':![],'MailAccountId':_0x1c42fe[_0xf6b8('0x37')]['id']},'include':[{'model':db[_0xf6b8('0x50')],'as':_0xf6b8('0x51'),'attributes':['messageId'],'where':{'messageId':_0x1c42fe[_0xf6b8('0x2a')]['message'][_0xf6b8('0x52')]}}]})[_0xf6b8('0xd')](function(_0x1b51bc){if(_0x1b51bc){return[_0x1b51bc,![]];}return db[_0xf6b8('0x53')][_0xf6b8('0x54')](_0x1b3559)['then'](function(_0x2f62f7){return[_0x2f62f7,!![]];});});}else{throw new Error(_0xf6b8('0x55'));}})[_0xf6b8('0x56')](function(_0x28e1d7,_0x1980de){if(_0x28e1d7){_0x48f4cb=_0x1980de;if(!_0x1980de){return _0x28e1d7[_0xf6b8('0x57')]({'inReplyTo':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x4b')],'to':_0x1c42fe[_0xf6b8('0x2a')]['message'][_0xf6b8('0x33')],'cc':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')]['cc'],'subject':_0x1c42fe['body'][_0xf6b8('0x14')]['subject'],'attach':_0x28e1d7[_0xf6b8('0x4e')]?_0x28e1d7['attach']:_0x1c42fe['body'][_0xf6b8('0x14')][_0xf6b8('0x4e')],'substatus':null,'substatusAt':moment()[_0xf6b8('0x4f')](_0xf6b8('0x58')),'lastMsgAt':moment()[_0xf6b8('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x28e1d7;}}})[_0xf6b8('0xd')](function(_0x2af21e){_0x1220d7['interaction']=_0x2af21e['get']({'plain':!![]});_0x1220d7[_0xf6b8('0x59')][_0xf6b8('0x5a')]=_0x48f4cb;return db[_0xf6b8('0x50')][_0xf6b8('0x54')]({'body':_0x1c42fe[_0xf6b8('0x2a')]['body'],'MailAccountId':_0x1c42fe['account']['id'],'MailInteractionId':_0x2af21e['id'],'direction':'in','ContactId':_0x1220d7[_0xf6b8('0x5b')]['id'],'messageId':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x4b')],'from':_0x1c42fe['body'][_0xf6b8('0x14')][_0xf6b8('0x33')],'to':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')]['to'],'cc':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')]['cc'],'subject':_0x1c42fe[_0xf6b8('0x2a')]['message']['subject'],'attach':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x4e')],'Attachments':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x5c')],'originTo':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')]['originTo'],'originCc':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x5d')],'bcc':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')]['bcc'],'ChatWebsiteId':_0x1c42fe[_0xf6b8('0x2a')]['message'][_0xf6b8('0x5e')]||null,'originChannel':_0x1c42fe[_0xf6b8('0x2a')][_0xf6b8('0x14')][_0xf6b8('0x5f')]||_0xf6b8('0x60'),'ChatOfflineMessageId':_0x1c42fe[_0xf6b8('0x2a')]['message'][_0xf6b8('0x61')]||null},{'include':[{'model':db[_0xf6b8('0x62')],'as':_0xf6b8('0x63')}]});})[_0xf6b8('0xd')](function(_0x396a7c){_0x1220d7[_0xf6b8('0x14')]=_0x396a7c;if(!_0x1220d7[_0xf6b8('0x59')]['UserId']){return;}return db[_0xf6b8('0x64')][_0xf6b8('0x23')]({'attributes':['id','name'],'where':{'id':_0x1220d7[_0xf6b8('0x59')][_0xf6b8('0x65')]}});})[_0xf6b8('0xd')](function(_0x288b94){if(_0x288b94){_0x1220d7['applications'][_0xf6b8('0x66')]({'id':0x0,'priority':0x0,'app':_0xf6b8('0x67'),'appdata':_0x288b94[_0xf6b8('0x68')]+','+(_0x1220d7['account'][_0xf6b8('0x69')]||0xa),'interval':'*,*,*,*'});}if(!_0x1220d7['interaction'][_0xf6b8('0x6a')]){return;}return db[_0xf6b8('0x6b')][_0xf6b8('0x23')]({'attributes':['id',_0xf6b8('0x68')],'where':{'id':_0x1220d7[_0xf6b8('0x59')][_0xf6b8('0x6a')]}});})[_0xf6b8('0xd')](function(_0x2e66bf){if(_0x2e66bf){_0x1220d7[_0xf6b8('0x42')][_0xf6b8('0x66')]({'id':0x0,'priority':0x1,'app':_0xf6b8('0x6c'),'appdata':_0x2e66bf[_0xf6b8('0x68')]+','+(_0x1220d7[_0xf6b8('0x37')][_0xf6b8('0x6d')]||0x12c),'interval':_0xf6b8('0x48')});}return respondWithRpcPromise('Start','startRouting',_0x1220d7);})[_0xf6b8('0xd')](function(_0x4463e5){_0x15a63b(_0x4463e5);})['catch'](function(_0x171db9){_0x3b0554(_0x3238de[_0xf6b8('0x11')](0x1f4,_0x171db9[_0xf6b8('0x14')]));});});};