Built motion from commit 43538d75.|2.5.35
[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 _0x1b5a=['model','MailAccount','find','raw','ShowMailAccount','NotifyMailAccount','body','mail','difference','CmContact','rawAttributes','updatedAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','from','account','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','List','get','omit','applications','list','orderBy','priority','asc','push','length','close','autoclose','defaults','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','create','Contact\x20not\x20found','spread','interaction','originTo','originCc','bcc','ChatWebsiteId','ChatOfflineMessageId','UserId','User','unshift','agent','name','waitForTheAssignedAgent','*,*,*,*','startRouting','Start','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','localhost','./mailAccount.socket','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','where','limit','include','map','attributes'];(function(_0x19a7d3,_0x487155){var _0x569a8e=function(_0x456e99){while(--_0x456e99){_0x19a7d3['push'](_0x19a7d3['shift']());}};_0x569a8e(++_0x487155);}(_0x1b5a,0xb2));var _0xa1b5=function(_0x451104,_0x410e92){_0x451104=_0x451104-0x0;var _0x3a48b6=_0x1b5a[_0x451104];return _0x3a48b6;};'use strict';var _=require(_0xa1b5('0x0'));var util=require(_0xa1b5('0x1'));var moment=require(_0xa1b5('0x2'));var BPromise=require('bluebird');var rs=require(_0xa1b5('0x3'));var fs=require('fs');var Redis=require(_0xa1b5('0x4'));var db=require(_0xa1b5('0x5'))['db'];var utils=require(_0xa1b5('0x6'));var logger=require(_0xa1b5('0x7'))(_0xa1b5('0x8'));var config=require(_0xa1b5('0x9'));var jayson=require(_0xa1b5('0xa'));var client=jayson['client'][_0xa1b5('0xb')]({'port':0x232c});config[_0xa1b5('0xc')]=_['defaults'](config[_0xa1b5('0xc')],{'host':_0xa1b5('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa1b5('0xc')]));require(_0xa1b5('0xe'))['register'](socket);function respondWithRpcPromise(_0x474dda,_0x5b5cbf,_0x15a401){return new BPromise(function(_0x3d9ff7,_0x1d8819){return client[_0xa1b5('0xf')](_0x474dda,_0x15a401)[_0xa1b5('0x10')](function(_0x2a26fb){logger[_0xa1b5('0x11')](_0xa1b5('0x12'),_0x5b5cbf,_0xa1b5('0x13'));logger[_0xa1b5('0x14')](_0xa1b5('0x15'),_0x5b5cbf,'request\x20sent',JSON[_0xa1b5('0x16')](_0x2a26fb));if(_0x2a26fb[_0xa1b5('0x17')]){if(_0x2a26fb[_0xa1b5('0x17')][_0xa1b5('0x18')]===0x1f4){logger[_0xa1b5('0x17')](_0xa1b5('0x12'),_0x5b5cbf,_0x2a26fb['error'][_0xa1b5('0x19')]);return _0x1d8819(_0x2a26fb['error'][_0xa1b5('0x19')]);}logger[_0xa1b5('0x17')](_0xa1b5('0x12'),_0x5b5cbf,_0x2a26fb[_0xa1b5('0x17')][_0xa1b5('0x19')]);return _0x3d9ff7(_0x2a26fb[_0xa1b5('0x17')][_0xa1b5('0x19')]);}else{logger[_0xa1b5('0x11')]('MailAccount,\x20%s,\x20%s',_0x5b5cbf,_0xa1b5('0x13'));_0x3d9ff7(_0x2a26fb[_0xa1b5('0x1a')][_0xa1b5('0x19')]);}})[_0xa1b5('0x1b')](function(_0x4f5e62){logger[_0xa1b5('0x17')]('MailAccount,\x20%s,\x20%s',_0x5b5cbf,_0x4f5e62);_0x1d8819(_0x4f5e62);});});}exports[_0xa1b5('0x1c')]=function(_0x240461){var _0x3f4657=this;return new Promise(function(_0x1abc23,_0x2c96d2){return db['MailAccount'][_0xa1b5('0x1d')]({'raw':_0x240461['options']?_0x240461[_0xa1b5('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x240461[_0xa1b5('0x1e')]?_0x240461[_0xa1b5('0x1e')][_0xa1b5('0x1f')]||null:null,'attributes':_0x240461['options']?_0x240461['options']['attributes']||null:null,'limit':_0x240461[_0xa1b5('0x1e')]?_0x240461[_0xa1b5('0x1e')][_0xa1b5('0x20')]||null:null,'include':_0x240461[_0xa1b5('0x1e')]?_0x240461['options'][_0xa1b5('0x21')]?_[_0xa1b5('0x22')](_0x240461['options'][_0xa1b5('0x21')],function(_0x20e72a){return{'model':db[_0x20e72a['model']],'as':_0x20e72a['as'],'attributes':_0x20e72a[_0xa1b5('0x23')],'include':_0x20e72a[_0xa1b5('0x21')]?_[_0xa1b5('0x22')](_0x20e72a[_0xa1b5('0x21')],function(_0x7681c9){return{'model':db[_0x7681c9['model']],'as':_0x7681c9['as'],'attributes':_0x7681c9[_0xa1b5('0x23')],'include':_0x7681c9[_0xa1b5('0x21')]?_[_0xa1b5('0x22')](_0x7681c9[_0xa1b5('0x21')],function(_0x1c153e){return{'model':db[_0x1c153e[_0xa1b5('0x24')]],'as':_0x1c153e['as'],'attributes':_0x1c153e[_0xa1b5('0x23')]};}):[]};}):[]};}):[]:[]})[_0xa1b5('0x10')](function(_0x20e535){logger['info'](_0xa1b5('0x1c'),_0x240461);logger[_0xa1b5('0x14')]('GetMailAccount',_0x240461,JSON['stringify'](_0x20e535));_0x1abc23(_0x20e535);})[_0xa1b5('0x1b')](function(_0x3edac3){logger[_0xa1b5('0x17')](_0xa1b5('0x1c'),_0x3edac3['message'],_0x240461);_0x2c96d2(_0x3f4657[_0xa1b5('0x17')](0x1f4,_0x3edac3[_0xa1b5('0x19')]));});});};exports['ShowMailAccount']=function(_0x2e0b00){var _0x1e7316=this;return new Promise(function(_0x379984,_0x3d3838){return db[_0xa1b5('0x25')][_0xa1b5('0x26')]({'raw':_0x2e0b00[_0xa1b5('0x1e')]?_0x2e0b00[_0xa1b5('0x1e')][_0xa1b5('0x27')]===undefined?!![]:![]:!![],'where':_0x2e0b00[_0xa1b5('0x1e')]?_0x2e0b00[_0xa1b5('0x1e')][_0xa1b5('0x1f')]||null:null,'attributes':_0x2e0b00[_0xa1b5('0x1e')]?_0x2e0b00[_0xa1b5('0x1e')]['attributes']||null:null,'include':_0x2e0b00['options']?_0x2e0b00[_0xa1b5('0x1e')][_0xa1b5('0x21')]?_[_0xa1b5('0x22')](_0x2e0b00['options']['include'],function(_0x2b04d7){return{'model':db[_0x2b04d7[_0xa1b5('0x24')]],'as':_0x2b04d7['as'],'attributes':_0x2b04d7[_0xa1b5('0x23')],'include':_0x2b04d7[_0xa1b5('0x21')]?_[_0xa1b5('0x22')](_0x2b04d7[_0xa1b5('0x21')],function(_0x18ad5d){return{'model':db[_0x18ad5d[_0xa1b5('0x24')]],'as':_0x18ad5d['as'],'attributes':_0x18ad5d[_0xa1b5('0x23')],'include':_0x18ad5d[_0xa1b5('0x21')]?_[_0xa1b5('0x22')](_0x18ad5d['include'],function(_0x3f438a){return{'model':db[_0x3f438a[_0xa1b5('0x24')]],'as':_0x3f438a['as'],'attributes':_0x3f438a[_0xa1b5('0x23')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x95cbda){logger[_0xa1b5('0x11')]('ShowMailAccount',_0x2e0b00);logger[_0xa1b5('0x14')](_0xa1b5('0x28'),_0x2e0b00,JSON['stringify'](_0x95cbda));_0x379984(_0x95cbda);})[_0xa1b5('0x1b')](function(_0x394a97){logger[_0xa1b5('0x17')](_0xa1b5('0x28'),_0x394a97[_0xa1b5('0x19')],_0x2e0b00);_0x3d3838(_0x1e7316[_0xa1b5('0x17')](0x1f4,_0x394a97[_0xa1b5('0x19')]));});});};exports[_0xa1b5('0x29')]=function(_0x384ff3){var _0x276388=this;return new Promise(function(_0x2d9575,_0x17e845){var _0x509a64={'body':_0x384ff3[_0xa1b5('0x2a')],'channel':_0xa1b5('0x2b')};var _0x2223b4=_[_0xa1b5('0x2c')](_['keys'](db[_0xa1b5('0x2d')][_0xa1b5('0x2e')]),['createdAt',_0xa1b5('0x2f'),_0xa1b5('0x30'),_0xa1b5('0x31')]);var _0x8e3340=![];if(_0x384ff3[_0xa1b5('0x2a')]['id']){delete _0x384ff3[_0xa1b5('0x2a')]['id'];}if(_[_0xa1b5('0x32')](_0x384ff3[_0xa1b5('0x2a')]['from'])){return _0x17e845(_0x276388['error'](0x1f4,_0xa1b5('0x33')));}if(_[_0xa1b5('0x32')](_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x2a')])||_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x2a')]===''){return _0x17e845(_0x276388['error'](0x1f4,_0xa1b5('0x34')));}if(_[_0xa1b5('0x32')](_0x384ff3[_0xa1b5('0x2a')]['mapKey'])){return _0x17e845(_0x276388['error'](0x1f4,_0xa1b5('0x35')+_0x2223b4));}if(!_[_0xa1b5('0x36')](_0x2223b4,_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x37')])){return _0x17e845(_0x276388[_0xa1b5('0x17')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2223b4));}var _0x19f850={};_0x19f850[_0x384ff3['body'][_0xa1b5('0x37')]]=_0x384ff3['body'][_0xa1b5('0x38')];return db[_0xa1b5('0x25')][_0xa1b5('0x26')]({'where':{'id':_0x384ff3[_0xa1b5('0x39')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db['CmContact'],'as':_0xa1b5('0x3a'),'where':_0x19f850,'limit':0x1,'order':[[_0xa1b5('0x2f'),_0xa1b5('0x3b')]]}]},{'model':db[_0xa1b5('0x3c')],'as':_0xa1b5('0x3d')},{'model':db[_0xa1b5('0x3e')],'as':_0xa1b5('0x3f')}]})[_0xa1b5('0x10')](function(_0x43a62d){if(_0x43a62d&&_0x43a62d[_0xa1b5('0x40')]){var _0x564684=_0x43a62d[_0xa1b5('0x41')]({'plain':!![]});_0x509a64[_0xa1b5('0x39')]=_[_0xa1b5('0x42')](_0x564684,[_0xa1b5('0x3d'),'List']);_0x509a64[_0xa1b5('0x43')]=_0x564684['Applications'];_0x509a64[_0xa1b5('0x44')]=_0x564684[_0xa1b5('0x40')];_0x509a64[_0xa1b5('0x43')]=_[_0xa1b5('0x45')](_0x509a64['applications'],[_0xa1b5('0x46')],[_0xa1b5('0x47')]);if(_0x509a64[_0xa1b5('0x39')]&&_0x509a64[_0xa1b5('0x39')]['autoclose']){_0x509a64[_0xa1b5('0x43')][_0xa1b5('0x48')]({'id':0x0,'priority':_0x509a64[_0xa1b5('0x43')][_0xa1b5('0x49')]+0x1,'app':_0xa1b5('0x4a'),'appdata':_0xa1b5('0x4b'),'interval':'*,*,*,*'});}if(_0x509a64[_0xa1b5('0x39')][_0xa1b5('0x3d')]){delete _0x509a64[_0xa1b5('0x39')][_0xa1b5('0x3d')];}if(_0x509a64['account'][_0xa1b5('0x40')]){delete _0x509a64['account'][_0xa1b5('0x40')];}if(_0x564684['List'][_0xa1b5('0x3a')]['length']){return _0x564684['List'][_0xa1b5('0x3a')][0x0];}var _0x391e18=_[_0xa1b5('0x4c')](_0x384ff3[_0xa1b5('0x2a')],{'firstName':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x38')],'ListId':_0x564684['ListId']});_0x391e18[_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x37')]]=_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x38')];return db[_0xa1b5('0x2d')]['create'](_0x391e18);}else{throw new Error(_0xa1b5('0x4d'));}})[_0xa1b5('0x10')](function(_0x14397c){_0x509a64[_0xa1b5('0x4e')]=_0x14397c;if(_0x14397c){if(!_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')]['messageId']){_0x384ff3['body'][_0xa1b5('0x19')][_0xa1b5('0x4f')]=rs[_0xa1b5('0x50')]()+'\x20'+_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')]['from'];}var _0x43a53b={'ContactId':_0x14397c['id'],'MailAccountId':_0x384ff3['account']['id'],'inReplyTo':_0x384ff3[_0xa1b5('0x2a')]['message'][_0xa1b5('0x4f')],'to':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x38')],'cc':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')]['cc'],'subject':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x51')],'attach':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x52')],'lastMsgAt':moment()[_0xa1b5('0x53')](_0xa1b5('0x54')),'lastMsgDirection':'in'};return db[_0xa1b5('0x55')][_0xa1b5('0x26')]({'where':{'closed':![],'MailAccountId':_0x384ff3[_0xa1b5('0x39')]['id']},'include':[{'model':db[_0xa1b5('0x56')],'as':_0xa1b5('0x57'),'attributes':[_0xa1b5('0x4f')],'where':{'messageId':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x58')]}}]})[_0xa1b5('0x10')](function(_0x18e246){if(_0x18e246){return[_0x18e246,![]];}return db[_0xa1b5('0x55')][_0xa1b5('0x59')](_0x43a53b)['then'](function(_0x5661bf){return[_0x5661bf,!![]];});});}else{throw new Error(_0xa1b5('0x5a'));}})[_0xa1b5('0x5b')](function(_0x2434ac,_0x5dae49){if(_0x2434ac){_0x8e3340=_0x5dae49;if(!_0x5dae49){return _0x2434ac['update']({'inReplyTo':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x4f')],'to':_0x384ff3['body'][_0xa1b5('0x19')][_0xa1b5('0x38')],'cc':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')]['cc'],'subject':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x51')],'attach':_0x2434ac['attach']?_0x2434ac[_0xa1b5('0x52')]:_0x384ff3['body'][_0xa1b5('0x19')][_0xa1b5('0x52')],'substatus':null,'substatusAt':moment()['format'](_0xa1b5('0x54')),'lastMsgAt':moment()[_0xa1b5('0x53')](_0xa1b5('0x54')),'lastMsgDirection':'in'});}else{return _0x2434ac;}}})[_0xa1b5('0x10')](function(_0x42f800){_0x509a64[_0xa1b5('0x5c')]=_0x42f800[_0xa1b5('0x41')]({'plain':!![]});_0x509a64[_0xa1b5('0x5c')]['created']=_0x8e3340;return db[_0xa1b5('0x56')][_0xa1b5('0x59')]({'body':_0x384ff3['body'][_0xa1b5('0x2a')],'MailAccountId':_0x384ff3[_0xa1b5('0x39')]['id'],'MailInteractionId':_0x42f800['id'],'direction':'in','ContactId':_0x509a64[_0xa1b5('0x4e')]['id'],'messageId':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')]['messageId'],'from':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x38')],'to':_0x384ff3['body'][_0xa1b5('0x19')]['to'],'cc':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')]['cc'],'subject':_0x384ff3['body'][_0xa1b5('0x19')][_0xa1b5('0x51')],'attach':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')]['attach'],'Attachments':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')]['attachments'],'originTo':_0x384ff3['body'][_0xa1b5('0x19')][_0xa1b5('0x5d')],'originCc':_0x384ff3['body']['message'][_0xa1b5('0x5e')],'bcc':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x5f')],'ChatWebsiteId':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x60')]||null,'originChannel':_0x384ff3[_0xa1b5('0x2a')]['message']['originChannel']||'Email','ChatOfflineMessageId':_0x384ff3[_0xa1b5('0x2a')][_0xa1b5('0x19')][_0xa1b5('0x61')]||null},{'include':[{'model':db['Attachment'],'as':'Attachments'}]});})[_0xa1b5('0x10')](function(_0x2cf6bd){_0x509a64[_0xa1b5('0x19')]=_0x2cf6bd;if(_0x509a64[_0xa1b5('0x5c')][_0xa1b5('0x62')]){return db[_0xa1b5('0x63')][_0xa1b5('0x26')]({'attributes':['id','name'],'where':{'id':_0x509a64[_0xa1b5('0x5c')][_0xa1b5('0x62')]}})[_0xa1b5('0x10')](function(_0x170341){if(_0x170341){_0x509a64[_0xa1b5('0x43')][_0xa1b5('0x64')]({'id':0x0,'priority':0x0,'app':_0xa1b5('0x65'),'appdata':_0x170341[_0xa1b5('0x66')]+','+(_0x509a64['account'][_0xa1b5('0x67')]||0xa),'interval':_0xa1b5('0x68')});}return respondWithRpcPromise('Start',_0xa1b5('0x69'),_0x509a64);});}return respondWithRpcPromise(_0xa1b5('0x6a'),_0xa1b5('0x69'),_0x509a64);})[_0xa1b5('0x10')](function(_0x495280){_0x2d9575(_0x495280);})[_0xa1b5('0x1b')](function(_0x1b2f57){_0x17e845(_0x276388['error'](0x1f4,_0x1b2f57['message']));});});};