8edd16a1ece1c735c37edbb6d9446de3774896bf
[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 _0xc69f=['ShowMailAccount','where','NotifyMailAccount','body','mail','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','DESC','MailApplication','Applications','MailServerOut','Smtp','get','omit','applications','orderBy','priority','asc','autoclose','push','length','close','*,*,*,*','Contacts','defaults','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','spread','update','interaction','created','attachments','originTo','originCc','Email','Attachment','Attachments','UserId','name','unshift','agent','waitForTheAssignedAgent','startRouting','Start','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','redis','socket.io-emitter','./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','catch','GetMailAccount','MailAccount','findAll','options','raw','limit','include','map','attributes','model'];(function(_0x290232,_0x225df1){var _0x52572c=function(_0x535199){while(--_0x535199){_0x290232['push'](_0x290232['shift']());}};_0x52572c(++_0x225df1);}(_0xc69f,0x182));var _0xfc69=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0xc69f[_0x19e35c];return _0x3e1fe8;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xfc69('0x0'));var fs=require('fs');var Redis=require(_0xfc69('0x1'));var db=require(_0xfc69('0x2'))['db'];var utils=require(_0xfc69('0x3'));var logger=require(_0xfc69('0x4'))('rpc');var config=require(_0xfc69('0x5'));var jayson=require('jayson/promise');var client=jayson[_0xfc69('0x6')][_0xfc69('0x7')]({'port':0x232c});config[_0xfc69('0x8')]=_['defaults'](config[_0xfc69('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xfc69('0x9'))(new Redis(config[_0xfc69('0x8')]));require(_0xfc69('0xa'))[_0xfc69('0xb')](socket);function respondWithRpcPromise(_0x27a9a9,_0x517620,_0x19248d){return new BPromise(function(_0x437547,_0x4a00b2){return client[_0xfc69('0xc')](_0x27a9a9,_0x19248d)[_0xfc69('0xd')](function(_0x206f01){logger[_0xfc69('0xe')](_0xfc69('0xf'),_0x517620,_0xfc69('0x10'));logger[_0xfc69('0x11')](_0xfc69('0x12'),_0x517620,'request\x20sent',JSON[_0xfc69('0x13')](_0x206f01));if(_0x206f01[_0xfc69('0x14')]){if(_0x206f01[_0xfc69('0x14')][_0xfc69('0x15')]===0x1f4){logger[_0xfc69('0x14')]('MailAccount,\x20%s,\x20%s',_0x517620,_0x206f01['error'][_0xfc69('0x16')]);return _0x4a00b2(_0x206f01['error']['message']);}logger['error'](_0xfc69('0xf'),_0x517620,_0x206f01[_0xfc69('0x14')][_0xfc69('0x16')]);return _0x437547(_0x206f01[_0xfc69('0x14')]['message']);}else{logger[_0xfc69('0xe')]('MailAccount,\x20%s,\x20%s',_0x517620,_0xfc69('0x10'));_0x437547(_0x206f01['result']['message']);}})[_0xfc69('0x17')](function(_0x1c1c81){logger[_0xfc69('0x14')](_0xfc69('0xf'),_0x517620,_0x1c1c81);_0x4a00b2(_0x1c1c81);});});}exports[_0xfc69('0x18')]=function(_0x504645){var _0x649999=this;return new Promise(function(_0x4a37a6,_0x54c145){return db[_0xfc69('0x19')][_0xfc69('0x1a')]({'raw':_0x504645[_0xfc69('0x1b')]?_0x504645[_0xfc69('0x1b')][_0xfc69('0x1c')]===undefined?!![]:![]:!![],'where':_0x504645[_0xfc69('0x1b')]?_0x504645[_0xfc69('0x1b')]['where']||null:null,'attributes':_0x504645[_0xfc69('0x1b')]?_0x504645[_0xfc69('0x1b')]['attributes']||null:null,'limit':_0x504645[_0xfc69('0x1b')]?_0x504645[_0xfc69('0x1b')][_0xfc69('0x1d')]||null:null,'include':_0x504645[_0xfc69('0x1b')]?_0x504645[_0xfc69('0x1b')][_0xfc69('0x1e')]?_[_0xfc69('0x1f')](_0x504645[_0xfc69('0x1b')]['include'],function(_0x4c52d8){return{'model':db[_0x4c52d8['model']],'as':_0x4c52d8['as'],'attributes':_0x4c52d8[_0xfc69('0x20')],'include':_0x4c52d8[_0xfc69('0x1e')]?_['map'](_0x4c52d8[_0xfc69('0x1e')],function(_0x2368e8){return{'model':db[_0x2368e8[_0xfc69('0x21')]],'as':_0x2368e8['as'],'attributes':_0x2368e8[_0xfc69('0x20')],'include':_0x2368e8[_0xfc69('0x1e')]?_[_0xfc69('0x1f')](_0x2368e8[_0xfc69('0x1e')],function(_0x1c24ca){return{'model':db[_0x1c24ca[_0xfc69('0x21')]],'as':_0x1c24ca['as'],'attributes':_0x1c24ca[_0xfc69('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1e39a1){logger[_0xfc69('0xe')](_0xfc69('0x18'),_0x504645);logger[_0xfc69('0x11')]('GetMailAccount',_0x504645,JSON[_0xfc69('0x13')](_0x1e39a1));_0x4a37a6(_0x1e39a1);})[_0xfc69('0x17')](function(_0x5b1363){logger[_0xfc69('0x14')](_0xfc69('0x18'),_0x5b1363[_0xfc69('0x16')],_0x504645);_0x54c145(_0x649999[_0xfc69('0x14')](0x1f4,_0x5b1363[_0xfc69('0x16')]));});});};exports[_0xfc69('0x22')]=function(_0x2b7318){var _0x5aa0de=this;return new Promise(function(_0x4a0b1e,_0x282b95){return db[_0xfc69('0x19')]['find']({'raw':_0x2b7318[_0xfc69('0x1b')]?_0x2b7318['options'][_0xfc69('0x1c')]===undefined?!![]:![]:!![],'where':_0x2b7318[_0xfc69('0x1b')]?_0x2b7318[_0xfc69('0x1b')][_0xfc69('0x23')]||null:null,'attributes':_0x2b7318[_0xfc69('0x1b')]?_0x2b7318[_0xfc69('0x1b')]['attributes']||null:null,'include':_0x2b7318[_0xfc69('0x1b')]?_0x2b7318[_0xfc69('0x1b')][_0xfc69('0x1e')]?_['map'](_0x2b7318[_0xfc69('0x1b')][_0xfc69('0x1e')],function(_0x96e3c2){return{'model':db[_0x96e3c2[_0xfc69('0x21')]],'as':_0x96e3c2['as'],'attributes':_0x96e3c2[_0xfc69('0x20')],'include':_0x96e3c2['include']?_[_0xfc69('0x1f')](_0x96e3c2[_0xfc69('0x1e')],function(_0x4fbe44){return{'model':db[_0x4fbe44[_0xfc69('0x21')]],'as':_0x4fbe44['as'],'attributes':_0x4fbe44[_0xfc69('0x20')],'include':_0x4fbe44[_0xfc69('0x1e')]?_[_0xfc69('0x1f')](_0x4fbe44[_0xfc69('0x1e')],function(_0x17295d){return{'model':db[_0x17295d[_0xfc69('0x21')]],'as':_0x17295d['as'],'attributes':_0x17295d[_0xfc69('0x20')]};}):[]};}):[]};}):[]:[]})[_0xfc69('0xd')](function(_0xf55092){logger[_0xfc69('0xe')](_0xfc69('0x22'),_0x2b7318);logger[_0xfc69('0x11')](_0xfc69('0x22'),_0x2b7318,JSON['stringify'](_0xf55092));_0x4a0b1e(_0xf55092);})[_0xfc69('0x17')](function(_0x3df5e2){logger[_0xfc69('0x14')](_0xfc69('0x22'),_0x3df5e2[_0xfc69('0x16')],_0x2b7318);_0x282b95(_0x5aa0de[_0xfc69('0x14')](0x1f4,_0x3df5e2[_0xfc69('0x16')]));});});};exports[_0xfc69('0x24')]=function(_0x73b119){var _0x2f4b11=this;return new Promise(function(_0x1098d7,_0x2a7dbe){var _0x4e83de={'body':_0x73b119[_0xfc69('0x25')],'channel':_0xfc69('0x26')};var _0x61bdd5=_['difference'](_[_0xfc69('0x27')](db[_0xfc69('0x28')][_0xfc69('0x29')]),[_0xfc69('0x2a'),_0xfc69('0x2b'),_0xfc69('0x2c'),_0xfc69('0x2d')]);var _0x35d83a=![];if(_0x73b119[_0xfc69('0x25')]['id']){delete _0x73b119[_0xfc69('0x25')]['id'];}if(_[_0xfc69('0x2e')](_0x73b119[_0xfc69('0x25')][_0xfc69('0x2f')])){return _0x2a7dbe(_0x2f4b11[_0xfc69('0x14')](0x1f4,_0xfc69('0x30')));}if(_[_0xfc69('0x2e')](_0x73b119[_0xfc69('0x25')][_0xfc69('0x25')])||_0x73b119[_0xfc69('0x25')][_0xfc69('0x25')]===''){return _0x2a7dbe(_0x2f4b11[_0xfc69('0x14')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_['isNil'](_0x73b119[_0xfc69('0x25')]['mapKey'])){return _0x2a7dbe(_0x2f4b11['error'](0x1f4,_0xfc69('0x31')+_0x61bdd5));}if(!_[_0xfc69('0x32')](_0x61bdd5,_0x73b119[_0xfc69('0x25')][_0xfc69('0x33')])){return _0x2a7dbe(_0x2f4b11['error'](0x1f4,_0xfc69('0x34')+_0x61bdd5));}var _0x30d68a={};_0x30d68a[_0x73b119[_0xfc69('0x25')][_0xfc69('0x33')]]=_0x73b119[_0xfc69('0x25')]['from'];return db[_0xfc69('0x19')][_0xfc69('0x35')]({'where':{'id':_0x73b119[_0xfc69('0x36')]['id']},'include':[{'model':db[_0xfc69('0x37')],'as':_0xfc69('0x38'),'include':[{'model':db[_0xfc69('0x28')],'as':'Contacts','where':_0x30d68a,'limit':0x1,'order':[['updatedAt',_0xfc69('0x39')]]}]},{'model':db[_0xfc69('0x3a')],'as':_0xfc69('0x3b')},{'model':db[_0xfc69('0x3c')],'as':_0xfc69('0x3d')}]})[_0xfc69('0xd')](function(_0x2cc8d7){if(_0x2cc8d7&&_0x2cc8d7[_0xfc69('0x38')]){var _0x33ee8a=_0x2cc8d7[_0xfc69('0x3e')]({'plain':!![]});_0x4e83de['account']=_[_0xfc69('0x3f')](_0x33ee8a,[_0xfc69('0x3b'),_0xfc69('0x38')]);_0x4e83de[_0xfc69('0x40')]=_0x33ee8a[_0xfc69('0x3b')];_0x4e83de['list']=_0x33ee8a[_0xfc69('0x38')];_0x4e83de[_0xfc69('0x40')]=_[_0xfc69('0x41')](_0x4e83de[_0xfc69('0x40')],[_0xfc69('0x42')],[_0xfc69('0x43')]);if(_0x4e83de[_0xfc69('0x36')]&&_0x4e83de['account'][_0xfc69('0x44')]){_0x4e83de[_0xfc69('0x40')][_0xfc69('0x45')]({'id':0x0,'priority':_0x4e83de[_0xfc69('0x40')][_0xfc69('0x46')]+0x1,'app':_0xfc69('0x47'),'appdata':_0xfc69('0x44'),'interval':_0xfc69('0x48')});}if(_0x4e83de['account'][_0xfc69('0x3b')]){delete _0x4e83de['account']['Applications'];}if(_0x4e83de[_0xfc69('0x36')][_0xfc69('0x38')]){delete _0x4e83de[_0xfc69('0x36')][_0xfc69('0x38')];}if(_0x33ee8a[_0xfc69('0x38')][_0xfc69('0x49')][_0xfc69('0x46')]){return _0x33ee8a['List']['Contacts'][0x0];}var _0x3b3fed=_[_0xfc69('0x4a')](_0x73b119[_0xfc69('0x25')],{'firstName':_0x73b119['body'][_0xfc69('0x2f')],'ListId':_0x33ee8a[_0xfc69('0x2d')]});_0x3b3fed[_0x73b119[_0xfc69('0x25')][_0xfc69('0x33')]]=_0x73b119['body'][_0xfc69('0x2f')];return db[_0xfc69('0x28')][_0xfc69('0x4b')](_0x3b3fed);}else{throw new Error(_0xfc69('0x4c'));}})[_0xfc69('0xd')](function(_0x21730b){_0x4e83de[_0xfc69('0x4d')]=_0x21730b;if(_0x21730b){if(!_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')][_0xfc69('0x4e')]){_0x73b119[_0xfc69('0x25')]['message'][_0xfc69('0x4e')]=rs[_0xfc69('0x4f')]()+'\x20'+_0x73b119[_0xfc69('0x25')]['message'][_0xfc69('0x2f')];}var _0x4924d5={'ContactId':_0x21730b['id'],'MailAccountId':_0x73b119[_0xfc69('0x36')]['id'],'inReplyTo':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')]['messageId'],'to':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')][_0xfc69('0x2f')],'cc':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')]['cc'],'subject':_0x73b119['body'][_0xfc69('0x16')][_0xfc69('0x50')],'attach':_0x73b119[_0xfc69('0x25')]['message'][_0xfc69('0x51')],'lastMsgAt':moment()[_0xfc69('0x52')](_0xfc69('0x53')),'lastMsgDirection':'in'};return db[_0xfc69('0x54')][_0xfc69('0x35')]({'where':{'closed':![],'MailAccountId':_0x73b119[_0xfc69('0x36')]['id']},'include':[{'model':db[_0xfc69('0x55')],'as':_0xfc69('0x56'),'attributes':[_0xfc69('0x4e')],'where':{'messageId':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')][_0xfc69('0x57')]}}]})[_0xfc69('0xd')](function(_0x58246b){if(_0x58246b){return[_0x58246b,![]];}return db['MailInteraction'][_0xfc69('0x4b')](_0x4924d5)[_0xfc69('0xd')](function(_0x4b535d){return[_0x4b535d,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xfc69('0x58')](function(_0x2617c7,_0x1c1f1a){if(_0x2617c7){_0x35d83a=_0x1c1f1a;if(!_0x1c1f1a){return _0x2617c7[_0xfc69('0x59')]({'inReplyTo':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')][_0xfc69('0x4e')],'to':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')]['from'],'cc':_0x73b119[_0xfc69('0x25')]['message']['cc'],'subject':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')][_0xfc69('0x50')],'attach':_0x2617c7[_0xfc69('0x51')]?_0x2617c7[_0xfc69('0x51')]:_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')][_0xfc69('0x51')],'substatus':null,'substatusAt':moment()[_0xfc69('0x52')](_0xfc69('0x53')),'lastMsgAt':moment()['format'](_0xfc69('0x53')),'lastMsgDirection':'in'});}else{return _0x2617c7;}}})[_0xfc69('0xd')](function(_0x5bfb06){_0x4e83de[_0xfc69('0x5a')]=_0x5bfb06[_0xfc69('0x3e')]({'plain':!![]});_0x4e83de[_0xfc69('0x5a')][_0xfc69('0x5b')]=_0x35d83a;return db[_0xfc69('0x55')][_0xfc69('0x4b')]({'body':_0x73b119[_0xfc69('0x25')][_0xfc69('0x25')],'MailAccountId':_0x73b119['account']['id'],'MailInteractionId':_0x5bfb06['id'],'direction':'in','ContactId':_0x4e83de[_0xfc69('0x4d')]['id'],'messageId':_0x73b119['body'][_0xfc69('0x16')][_0xfc69('0x4e')],'from':_0x73b119[_0xfc69('0x25')]['message'][_0xfc69('0x2f')],'to':_0x73b119[_0xfc69('0x25')]['message']['to'],'cc':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')]['cc'],'subject':_0x73b119[_0xfc69('0x25')]['message'][_0xfc69('0x50')],'attach':_0x73b119['body'][_0xfc69('0x16')]['attach'],'Attachments':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')][_0xfc69('0x5c')],'originTo':_0x73b119['body']['message'][_0xfc69('0x5d')],'originCc':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')][_0xfc69('0x5e')],'bcc':_0x73b119[_0xfc69('0x25')]['message']['bcc'],'ChatWebsiteId':_0x73b119['body'][_0xfc69('0x16')]['ChatWebsiteId']||null,'originChannel':_0x73b119[_0xfc69('0x25')]['message']['originChannel']||_0xfc69('0x5f'),'ChatOfflineMessageId':_0x73b119[_0xfc69('0x25')][_0xfc69('0x16')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0xfc69('0x60')],'as':_0xfc69('0x61')}]});})[_0xfc69('0xd')](function(_0x95fa19){_0x4e83de[_0xfc69('0x16')]=_0x95fa19;if(_0x4e83de[_0xfc69('0x5a')][_0xfc69('0x62')]){return db['User'][_0xfc69('0x35')]({'attributes':['id',_0xfc69('0x63')],'where':{'id':_0x4e83de[_0xfc69('0x5a')][_0xfc69('0x62')]}})[_0xfc69('0xd')](function(_0x3d219f){if(_0x3d219f){_0x4e83de[_0xfc69('0x40')][_0xfc69('0x64')]({'id':0x0,'priority':0x0,'app':_0xfc69('0x65'),'appdata':_0x3d219f[_0xfc69('0x63')]+','+(_0x4e83de['account'][_0xfc69('0x66')]||0xa),'interval':_0xfc69('0x48')});}return respondWithRpcPromise('Start',_0xfc69('0x67'),_0x4e83de);});}return respondWithRpcPromise(_0xfc69('0x68'),_0xfc69('0x67'),_0x4e83de);})[_0xfc69('0xd')](function(_0x187f56){_0x1098d7(_0x187f56);})['catch'](function(_0x596428){_0x2a7dbe(_0x2f4b11[_0xfc69('0x14')](0x1f4,_0x596428['message']));});});};