dee57de2c9a9d51b477f8c16cc7bff881cdb7dc4
[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 _0xd5b6=['UserId','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','redis','defaults','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetMailAccount','findAll','options','raw','where','attributes','limit','include','model','map','ShowMailAccount','MailAccount','find','NotifyMailAccount','body','mail','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','includes','mapKey','account','CmList','List','Contacts','DESC','MailApplication','MailServerOut','Smtp','get','omit','Applications','list','applications','orderBy','priority','asc','autoclose','push','length','close','*,*,*,*','create','List\x20not\x20found','messageId','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','Messages','inReplyTo','spread','update','created','MailMessage','contact','attachments','originTo','originCc','bcc','Attachment','Attachments','interaction','User','name'];(function(_0x165a7f,_0x1a0735){var _0x47dd0f=function(_0x433931){while(--_0x433931){_0x165a7f['push'](_0x165a7f['shift']());}};_0x47dd0f(++_0x1a0735);}(_0xd5b6,0x73));var _0x6d5b=function(_0x25fa57,_0x124ece){_0x25fa57=_0x25fa57-0x0;var _0x78b70=_0xd5b6[_0x25fa57];return _0x78b70;};'use strict';var _=require(_0x6d5b('0x0'));var util=require(_0x6d5b('0x1'));var moment=require(_0x6d5b('0x2'));var BPromise=require(_0x6d5b('0x3'));var rs=require(_0x6d5b('0x4'));var fs=require('fs');var Redis=require(_0x6d5b('0x5'));var db=require(_0x6d5b('0x6'))['db'];var utils=require(_0x6d5b('0x7'));var logger=require('../../config/logger')(_0x6d5b('0x8'));var config=require(_0x6d5b('0x9'));var jayson=require(_0x6d5b('0xa'));var client=jayson['client'][_0x6d5b('0xb')]({'port':0x232c});config[_0x6d5b('0xc')]=_[_0x6d5b('0xd')](config[_0x6d5b('0xc')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6d5b('0xc')]));require(_0x6d5b('0xe'))[_0x6d5b('0xf')](socket);function respondWithRpcPromise(_0xee20ae,_0x79d24,_0x3c4e93){return new BPromise(function(_0x47314e,_0x391450){return client[_0x6d5b('0x10')](_0xee20ae,_0x3c4e93)[_0x6d5b('0x11')](function(_0x354f5c){logger[_0x6d5b('0x12')](_0x6d5b('0x13'),_0x79d24,_0x6d5b('0x14'));logger[_0x6d5b('0x15')](_0x6d5b('0x16'),_0x79d24,_0x6d5b('0x14'),JSON[_0x6d5b('0x17')](_0x354f5c));if(_0x354f5c['error']){if(_0x354f5c[_0x6d5b('0x18')][_0x6d5b('0x19')]===0x1f4){logger[_0x6d5b('0x18')](_0x6d5b('0x13'),_0x79d24,_0x354f5c[_0x6d5b('0x18')]['message']);return _0x391450(_0x354f5c[_0x6d5b('0x18')][_0x6d5b('0x1a')]);}logger['error'](_0x6d5b('0x13'),_0x79d24,_0x354f5c['error'][_0x6d5b('0x1a')]);return _0x47314e(_0x354f5c['error']['message']);}else{logger['info'](_0x6d5b('0x13'),_0x79d24,_0x6d5b('0x14'));_0x47314e(_0x354f5c[_0x6d5b('0x1b')]['message']);}})[_0x6d5b('0x1c')](function(_0x25f8cc){logger[_0x6d5b('0x18')]('MailAccount,\x20%s,\x20%s',_0x79d24,_0x25f8cc);_0x391450(_0x25f8cc);});});}exports[_0x6d5b('0x1d')]=function(_0x485c2d){var _0x40348a=this;return new Promise(function(_0x2e1ecf,_0x26b175){return db['MailAccount'][_0x6d5b('0x1e')]({'raw':_0x485c2d[_0x6d5b('0x1f')]?_0x485c2d[_0x6d5b('0x1f')][_0x6d5b('0x20')]===undefined?!![]:![]:!![],'where':_0x485c2d[_0x6d5b('0x1f')]?_0x485c2d[_0x6d5b('0x1f')][_0x6d5b('0x21')]||null:null,'attributes':_0x485c2d[_0x6d5b('0x1f')]?_0x485c2d[_0x6d5b('0x1f')][_0x6d5b('0x22')]||null:null,'limit':_0x485c2d[_0x6d5b('0x1f')]?_0x485c2d[_0x6d5b('0x1f')][_0x6d5b('0x23')]||null:null,'include':_0x485c2d[_0x6d5b('0x1f')]?_0x485c2d['options'][_0x6d5b('0x24')]?_['map'](_0x485c2d[_0x6d5b('0x1f')][_0x6d5b('0x24')],function(_0x322c57){return{'model':db[_0x322c57[_0x6d5b('0x25')]],'as':_0x322c57['as'],'attributes':_0x322c57[_0x6d5b('0x22')],'include':_0x322c57[_0x6d5b('0x24')]?_[_0x6d5b('0x26')](_0x322c57[_0x6d5b('0x24')],function(_0x1fac80){return{'model':db[_0x1fac80[_0x6d5b('0x25')]],'as':_0x1fac80['as'],'attributes':_0x1fac80[_0x6d5b('0x22')],'include':_0x1fac80[_0x6d5b('0x24')]?_[_0x6d5b('0x26')](_0x1fac80['include'],function(_0x597e06){return{'model':db[_0x597e06['model']],'as':_0x597e06['as'],'attributes':_0x597e06[_0x6d5b('0x22')]};}):[]};}):[]};}):[]:[]})[_0x6d5b('0x11')](function(_0x2d0da5){logger['info'](_0x6d5b('0x1d'),_0x485c2d);logger[_0x6d5b('0x15')]('GetMailAccount',_0x485c2d,JSON['stringify'](_0x2d0da5));_0x2e1ecf(_0x2d0da5);})[_0x6d5b('0x1c')](function(_0x38befc){logger[_0x6d5b('0x18')](_0x6d5b('0x1d'),_0x38befc[_0x6d5b('0x1a')],_0x485c2d);_0x26b175(_0x40348a['error'](0x1f4,_0x38befc['message']));});});};exports[_0x6d5b('0x27')]=function(_0x5d09c0){var _0x2c9d97=this;return new Promise(function(_0x1649b1,_0x3bf78d){return db[_0x6d5b('0x28')][_0x6d5b('0x29')]({'raw':_0x5d09c0[_0x6d5b('0x1f')]?_0x5d09c0[_0x6d5b('0x1f')][_0x6d5b('0x20')]===undefined?!![]:![]:!![],'where':_0x5d09c0['options']?_0x5d09c0[_0x6d5b('0x1f')][_0x6d5b('0x21')]||null:null,'attributes':_0x5d09c0[_0x6d5b('0x1f')]?_0x5d09c0[_0x6d5b('0x1f')][_0x6d5b('0x22')]||null:null,'include':_0x5d09c0[_0x6d5b('0x1f')]?_0x5d09c0[_0x6d5b('0x1f')][_0x6d5b('0x24')]?_['map'](_0x5d09c0[_0x6d5b('0x1f')][_0x6d5b('0x24')],function(_0x476689){return{'model':db[_0x476689[_0x6d5b('0x25')]],'as':_0x476689['as'],'attributes':_0x476689[_0x6d5b('0x22')],'include':_0x476689[_0x6d5b('0x24')]?_['map'](_0x476689['include'],function(_0x40d95e){return{'model':db[_0x40d95e[_0x6d5b('0x25')]],'as':_0x40d95e['as'],'attributes':_0x40d95e[_0x6d5b('0x22')],'include':_0x40d95e[_0x6d5b('0x24')]?_[_0x6d5b('0x26')](_0x40d95e[_0x6d5b('0x24')],function(_0x10c50d){return{'model':db[_0x10c50d[_0x6d5b('0x25')]],'as':_0x10c50d['as'],'attributes':_0x10c50d[_0x6d5b('0x22')]};}):[]};}):[]};}):[]:[]})[_0x6d5b('0x11')](function(_0x5c7753){logger['info']('ShowMailAccount',_0x5d09c0);logger[_0x6d5b('0x15')](_0x6d5b('0x27'),_0x5d09c0,JSON[_0x6d5b('0x17')](_0x5c7753));_0x1649b1(_0x5c7753);})[_0x6d5b('0x1c')](function(_0x500fca){logger[_0x6d5b('0x18')](_0x6d5b('0x27'),_0x500fca[_0x6d5b('0x1a')],_0x5d09c0);_0x3bf78d(_0x2c9d97[_0x6d5b('0x18')](0x1f4,_0x500fca[_0x6d5b('0x1a')]));});});};exports[_0x6d5b('0x2a')]=function(_0x346769){var _0x1e989d=this;return new Promise(function(_0x40ac5c,_0x1b5973){var _0x2bafe2={'body':_0x346769[_0x6d5b('0x2b')],'channel':_0x6d5b('0x2c')};var _0x4e91a5=_['difference'](_[_0x6d5b('0x2d')](db[_0x6d5b('0x2e')][_0x6d5b('0x2f')]),[_0x6d5b('0x30'),_0x6d5b('0x31'),_0x6d5b('0x32'),_0x6d5b('0x33')]);var _0x39b701=![];if(_0x346769[_0x6d5b('0x2b')]['id']){delete _0x346769['body']['id'];}if(_[_0x6d5b('0x34')](_0x346769['body'][_0x6d5b('0x35')])){return _0x1b5973(_0x1e989d['error'](0x1f4,_0x6d5b('0x36')));}if(_[_0x6d5b('0x34')](_0x346769[_0x6d5b('0x2b')]['body'])||_0x346769['body'][_0x6d5b('0x2b')]===''){return _0x1b5973(_0x1e989d['error'](0x1f4,_0x6d5b('0x37')));}if(_[_0x6d5b('0x34')](_0x346769[_0x6d5b('0x2b')]['mapKey'])){return _0x1b5973(_0x1e989d[_0x6d5b('0x18')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4e91a5));}if(!_[_0x6d5b('0x38')](_0x4e91a5,_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x39')])){return _0x1b5973(_0x1e989d['error'](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4e91a5));}var _0x5a8fab={};_0x5a8fab[_0x346769['body']['mapKey']]=_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x35')];return db['MailAccount'][_0x6d5b('0x29')]({'where':{'id':_0x346769[_0x6d5b('0x3a')]['id']},'include':[{'model':db[_0x6d5b('0x3b')],'as':_0x6d5b('0x3c'),'include':[{'model':db[_0x6d5b('0x2e')],'as':_0x6d5b('0x3d'),'where':_0x5a8fab,'limit':0x1,'order':[[_0x6d5b('0x31'),_0x6d5b('0x3e')]]}]},{'model':db[_0x6d5b('0x3f')],'as':'Applications'},{'model':db[_0x6d5b('0x40')],'as':_0x6d5b('0x41')}]})[_0x6d5b('0x11')](function(_0x2e772c){if(_0x2e772c&&_0x2e772c[_0x6d5b('0x3c')]){var _0x286618=_0x2e772c[_0x6d5b('0x42')]({'plain':!![]});_0x2bafe2[_0x6d5b('0x3a')]=_[_0x6d5b('0x43')](_0x286618,[_0x6d5b('0x44'),_0x6d5b('0x3c')]);_0x2bafe2['applications']=_0x286618['Applications'];_0x2bafe2[_0x6d5b('0x45')]=_0x286618[_0x6d5b('0x3c')];_0x2bafe2[_0x6d5b('0x46')]=_[_0x6d5b('0x47')](_0x2bafe2[_0x6d5b('0x46')],[_0x6d5b('0x48')],[_0x6d5b('0x49')]);if(_0x2bafe2[_0x6d5b('0x3a')]&&_0x2bafe2[_0x6d5b('0x3a')][_0x6d5b('0x4a')]){_0x2bafe2[_0x6d5b('0x46')][_0x6d5b('0x4b')]({'id':0x0,'priority':_0x2bafe2['applications'][_0x6d5b('0x4c')]+0x1,'app':_0x6d5b('0x4d'),'appdata':'autoclose','interval':_0x6d5b('0x4e')});}if(_0x2bafe2['account'][_0x6d5b('0x44')]){delete _0x2bafe2['account'][_0x6d5b('0x44')];}if(_0x2bafe2[_0x6d5b('0x3a')]['List']){delete _0x2bafe2[_0x6d5b('0x3a')]['List'];}if(_0x286618[_0x6d5b('0x3c')][_0x6d5b('0x3d')][_0x6d5b('0x4c')]){return _0x286618[_0x6d5b('0x3c')][_0x6d5b('0x3d')][0x0];}var _0x489ea3=_[_0x6d5b('0xd')](_0x346769[_0x6d5b('0x2b')],{'firstName':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x35')],'ListId':_0x286618[_0x6d5b('0x33')]});_0x489ea3[_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x39')]]=_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x35')];return db['CmContact'][_0x6d5b('0x4f')](_0x489ea3);}else{throw new Error(_0x6d5b('0x50'));}})[_0x6d5b('0x11')](function(_0x4f090d){_0x2bafe2['contact']=_0x4f090d;if(_0x4f090d){if(!_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')][_0x6d5b('0x51')]){_0x346769[_0x6d5b('0x2b')]['message']['messageId']=rs['generate']()+'\x20'+_0x346769['body'][_0x6d5b('0x1a')][_0x6d5b('0x35')];}var _0x18228c={'ContactId':_0x4f090d['id'],'MailAccountId':_0x346769[_0x6d5b('0x3a')]['id'],'inReplyTo':_0x346769['body'][_0x6d5b('0x1a')][_0x6d5b('0x51')],'to':_0x346769[_0x6d5b('0x2b')]['message']['from'],'cc':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')]['cc'],'subject':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')][_0x6d5b('0x52')],'attach':_0x346769['body'][_0x6d5b('0x1a')][_0x6d5b('0x53')],'lastMsgAt':moment()[_0x6d5b('0x54')](_0x6d5b('0x55')),'lastMsgDirection':'in','lastMsgBody':_0x346769[_0x6d5b('0x2b')]['body']};return db[_0x6d5b('0x56')]['find']({'where':{'closed':![],'MailAccountId':_0x346769[_0x6d5b('0x3a')]['id']},'include':[{'model':db['MailMessage'],'as':_0x6d5b('0x57'),'attributes':[_0x6d5b('0x51')],'where':{'messageId':_0x346769[_0x6d5b('0x2b')]['message'][_0x6d5b('0x58')]}}]})['then'](function(_0x20aa2e){if(_0x20aa2e){return[_0x20aa2e,![]];}return db[_0x6d5b('0x56')]['create'](_0x18228c)[_0x6d5b('0x11')](function(_0x4818d4){return[_0x4818d4,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x6d5b('0x59')](function(_0x589706,_0x4728b4){if(_0x589706){_0x39b701=_0x4728b4;if(!_0x4728b4){return _0x589706[_0x6d5b('0x5a')]({'inReplyTo':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')]['messageId'],'to':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')][_0x6d5b('0x35')],'cc':_0x346769['body'][_0x6d5b('0x1a')]['cc'],'subject':_0x346769[_0x6d5b('0x2b')]['message']['subject'],'attach':_0x589706[_0x6d5b('0x53')]?_0x589706['attach']:_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')][_0x6d5b('0x53')],'substatus':null,'substatusAt':moment()[_0x6d5b('0x54')](_0x6d5b('0x55')),'lastMsgAt':moment()[_0x6d5b('0x54')](_0x6d5b('0x55')),'lastMsgDirection':'in','lastMsgBody':_0x346769['body'][_0x6d5b('0x2b')]});}else{return _0x589706;}}})[_0x6d5b('0x11')](function(_0x14be87){_0x2bafe2['interaction']=_0x14be87['get']({'plain':!![]});_0x2bafe2['interaction'][_0x6d5b('0x5b')]=_0x39b701;return db[_0x6d5b('0x5c')][_0x6d5b('0x4f')]({'body':_0x346769[_0x6d5b('0x2b')]['body'],'MailAccountId':_0x346769[_0x6d5b('0x3a')]['id'],'MailInteractionId':_0x14be87['id'],'direction':'in','ContactId':_0x2bafe2[_0x6d5b('0x5d')]['id'],'messageId':_0x346769['body'][_0x6d5b('0x1a')]['messageId'],'from':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')]['from'],'to':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')]['to'],'cc':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')]['cc'],'subject':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')][_0x6d5b('0x52')],'attach':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')][_0x6d5b('0x53')],'Attachments':_0x346769[_0x6d5b('0x2b')]['message'][_0x6d5b('0x5e')],'originTo':_0x346769[_0x6d5b('0x2b')][_0x6d5b('0x1a')][_0x6d5b('0x5f')],'originCc':_0x346769[_0x6d5b('0x2b')]['message'][_0x6d5b('0x60')],'bcc':_0x346769[_0x6d5b('0x2b')]['message'][_0x6d5b('0x61')]},{'include':[{'model':db[_0x6d5b('0x62')],'as':_0x6d5b('0x63')}]});})['then'](function(_0x39b75b){_0x2bafe2[_0x6d5b('0x1a')]=_0x39b75b;if(_0x2bafe2[_0x6d5b('0x64')]['UserId']){return db[_0x6d5b('0x65')][_0x6d5b('0x29')]({'attributes':['id',_0x6d5b('0x66')],'where':{'id':_0x2bafe2[_0x6d5b('0x64')][_0x6d5b('0x67')]}})[_0x6d5b('0x11')](function(_0x333f00){if(_0x333f00){_0x2bafe2['applications'][_0x6d5b('0x68')]({'id':0x0,'priority':0x0,'app':_0x6d5b('0x69'),'appdata':_0x333f00[_0x6d5b('0x66')]+','+(_0x2bafe2[_0x6d5b('0x3a')][_0x6d5b('0x6a')]||0xa),'interval':_0x6d5b('0x4e')});}return respondWithRpcPromise('Start','startRouting',_0x2bafe2);});}return respondWithRpcPromise(_0x6d5b('0x6b'),_0x6d5b('0x6c'),_0x2bafe2);})['then'](function(_0x314702){_0x40ac5c(_0x314702);})[_0x6d5b('0x1c')](function(_0x3bd073){_0x1b5973(_0x1e989d[_0x6d5b('0x18')](0x1f4,_0x3bd073['message']));});});};