Built motion from commit a61a4a20.|2.5.46
[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 _0xd7b1=['asc','autoclose','push','length','*,*,*,*','Contacts','from','List\x20not\x20found','contact','messageId','generate','attach','format','MailInteraction','MailMessage','Messages','inReplyTo','create','Contact\x20not\x20found','YYYY-MM-DD\x20HH:mm:ss','subject','attachments','originTo','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','Attachments','interaction','UserId','User','name','unshift','agent','Start','startRouting','lodash','util','bluebird','ioredis','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','code','message','catch','GetMailAccount','MailAccount','options','raw','where','attributes','limit','model','include','map','stringify','find','ShowMailAccount','NotifyMailAccount','body','mail','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','CmContact','DESC','MailApplication','MailServerOut','get','account','omit','Applications','applications','priority'];(function(_0x3671a9,_0x32df5b){var _0x42041a=function(_0x3ef2c2){while(--_0x3ef2c2){_0x3671a9['push'](_0x3671a9['shift']());}};_0x42041a(++_0x32df5b);}(_0xd7b1,0xed));var _0x1d7b=function(_0x1a5070,_0x430a84){_0x1a5070=_0x1a5070-0x0;var _0x2f6cdb=_0xd7b1[_0x1a5070];return _0x2f6cdb;};'use strict';var _=require(_0x1d7b('0x0'));var util=require(_0x1d7b('0x1'));var moment=require('moment');var BPromise=require(_0x1d7b('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1d7b('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x1d7b('0x4'))(_0x1d7b('0x5'));var config=require('../../config/environment');var jayson=require(_0x1d7b('0x6'));var client=jayson[_0x1d7b('0x7')][_0x1d7b('0x8')]({'port':0x232c});config[_0x1d7b('0x9')]=_[_0x1d7b('0xa')](config[_0x1d7b('0x9')],{'host':_0x1d7b('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1d7b('0x9')]));require('./mailAccount.socket')[_0x1d7b('0xc')](socket);function respondWithRpcPromise(_0x50ff2e,_0x1b65ce,_0xf81bdf){return new BPromise(function(_0x4a4250,_0x4f5e34){return client[_0x1d7b('0xd')](_0x50ff2e,_0xf81bdf)[_0x1d7b('0xe')](function(_0x24dbcd){logger[_0x1d7b('0xf')](_0x1d7b('0x10'),_0x1b65ce,_0x1d7b('0x11'));logger[_0x1d7b('0x12')](_0x1d7b('0x13'),_0x1b65ce,_0x1d7b('0x11'),JSON['stringify'](_0x24dbcd));if(_0x24dbcd[_0x1d7b('0x14')]){if(_0x24dbcd[_0x1d7b('0x14')][_0x1d7b('0x15')]===0x1f4){logger[_0x1d7b('0x14')](_0x1d7b('0x10'),_0x1b65ce,_0x24dbcd[_0x1d7b('0x14')][_0x1d7b('0x16')]);return _0x4f5e34(_0x24dbcd[_0x1d7b('0x14')][_0x1d7b('0x16')]);}logger[_0x1d7b('0x14')]('MailAccount,\x20%s,\x20%s',_0x1b65ce,_0x24dbcd[_0x1d7b('0x14')][_0x1d7b('0x16')]);return _0x4a4250(_0x24dbcd[_0x1d7b('0x14')][_0x1d7b('0x16')]);}else{logger['info'](_0x1d7b('0x10'),_0x1b65ce,_0x1d7b('0x11'));_0x4a4250(_0x24dbcd['result']['message']);}})[_0x1d7b('0x17')](function(_0x29297e){logger[_0x1d7b('0x14')](_0x1d7b('0x10'),_0x1b65ce,_0x29297e);_0x4f5e34(_0x29297e);});});}exports[_0x1d7b('0x18')]=function(_0x18b59a){var _0x30d84a=this;return new Promise(function(_0x102f5e,_0x513e54){return db[_0x1d7b('0x19')]['findAll']({'raw':_0x18b59a[_0x1d7b('0x1a')]?_0x18b59a[_0x1d7b('0x1a')][_0x1d7b('0x1b')]===undefined?!![]:![]:!![],'where':_0x18b59a['options']?_0x18b59a[_0x1d7b('0x1a')][_0x1d7b('0x1c')]||null:null,'attributes':_0x18b59a[_0x1d7b('0x1a')]?_0x18b59a[_0x1d7b('0x1a')][_0x1d7b('0x1d')]||null:null,'limit':_0x18b59a[_0x1d7b('0x1a')]?_0x18b59a['options'][_0x1d7b('0x1e')]||null:null,'include':_0x18b59a[_0x1d7b('0x1a')]?_0x18b59a['options']['include']?_['map'](_0x18b59a[_0x1d7b('0x1a')]['include'],function(_0x1768a9){return{'model':db[_0x1768a9[_0x1d7b('0x1f')]],'as':_0x1768a9['as'],'attributes':_0x1768a9[_0x1d7b('0x1d')],'include':_0x1768a9[_0x1d7b('0x20')]?_[_0x1d7b('0x21')](_0x1768a9['include'],function(_0x52ffcf){return{'model':db[_0x52ffcf['model']],'as':_0x52ffcf['as'],'attributes':_0x52ffcf['attributes'],'include':_0x52ffcf[_0x1d7b('0x20')]?_['map'](_0x52ffcf[_0x1d7b('0x20')],function(_0x41a8ee){return{'model':db[_0x41a8ee['model']],'as':_0x41a8ee['as'],'attributes':_0x41a8ee[_0x1d7b('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x1d7b('0xe')](function(_0x8b4711){logger[_0x1d7b('0xf')](_0x1d7b('0x18'),_0x18b59a);logger[_0x1d7b('0x12')]('GetMailAccount',_0x18b59a,JSON[_0x1d7b('0x22')](_0x8b4711));_0x102f5e(_0x8b4711);})[_0x1d7b('0x17')](function(_0x1191d5){logger[_0x1d7b('0x14')](_0x1d7b('0x18'),_0x1191d5['message'],_0x18b59a);_0x513e54(_0x30d84a[_0x1d7b('0x14')](0x1f4,_0x1191d5[_0x1d7b('0x16')]));});});};exports['ShowMailAccount']=function(_0x41a4c1){var _0x36f4cc=this;return new Promise(function(_0x4ec1d9,_0x512d10){return db[_0x1d7b('0x19')][_0x1d7b('0x23')]({'raw':_0x41a4c1[_0x1d7b('0x1a')]?_0x41a4c1[_0x1d7b('0x1a')][_0x1d7b('0x1b')]===undefined?!![]:![]:!![],'where':_0x41a4c1['options']?_0x41a4c1[_0x1d7b('0x1a')]['where']||null:null,'attributes':_0x41a4c1['options']?_0x41a4c1['options'][_0x1d7b('0x1d')]||null:null,'include':_0x41a4c1[_0x1d7b('0x1a')]?_0x41a4c1[_0x1d7b('0x1a')]['include']?_[_0x1d7b('0x21')](_0x41a4c1['options'][_0x1d7b('0x20')],function(_0x532de2){return{'model':db[_0x532de2['model']],'as':_0x532de2['as'],'attributes':_0x532de2[_0x1d7b('0x1d')],'include':_0x532de2[_0x1d7b('0x20')]?_['map'](_0x532de2[_0x1d7b('0x20')],function(_0x4c6a75){return{'model':db[_0x4c6a75['model']],'as':_0x4c6a75['as'],'attributes':_0x4c6a75['attributes'],'include':_0x4c6a75['include']?_[_0x1d7b('0x21')](_0x4c6a75[_0x1d7b('0x20')],function(_0x4f0f70){return{'model':db[_0x4f0f70[_0x1d7b('0x1f')]],'as':_0x4f0f70['as'],'attributes':_0x4f0f70[_0x1d7b('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x1d7b('0xe')](function(_0xbd75e0){logger[_0x1d7b('0xf')](_0x1d7b('0x24'),_0x41a4c1);logger[_0x1d7b('0x12')](_0x1d7b('0x24'),_0x41a4c1,JSON[_0x1d7b('0x22')](_0xbd75e0));_0x4ec1d9(_0xbd75e0);})[_0x1d7b('0x17')](function(_0x17083c){logger[_0x1d7b('0x14')](_0x1d7b('0x24'),_0x17083c[_0x1d7b('0x16')],_0x41a4c1);_0x512d10(_0x36f4cc[_0x1d7b('0x14')](0x1f4,_0x17083c[_0x1d7b('0x16')]));});});};exports[_0x1d7b('0x25')]=function(_0x1f9c4a){var _0x7a9f9b=this;return new Promise(function(_0x33b1c5,_0x23e55d){var _0x338455={'body':_0x1f9c4a[_0x1d7b('0x26')],'channel':_0x1d7b('0x27')};var _0x5d7b78=_[_0x1d7b('0x28')](_[_0x1d7b('0x29')](db['CmContact']['rawAttributes']),[_0x1d7b('0x2a'),_0x1d7b('0x2b'),_0x1d7b('0x2c'),_0x1d7b('0x2d')]);var _0x3ffa79=![];if(_0x1f9c4a[_0x1d7b('0x26')]['id']){delete _0x1f9c4a[_0x1d7b('0x26')]['id'];}if(_[_0x1d7b('0x2e')](_0x1f9c4a[_0x1d7b('0x26')]['from'])){return _0x23e55d(_0x7a9f9b[_0x1d7b('0x14')](0x1f4,'from\x20is\x20mandatory'));}if(_[_0x1d7b('0x2e')](_0x1f9c4a[_0x1d7b('0x26')]['body'])||_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x26')]===''){return _0x23e55d(_0x7a9f9b['error'](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x1d7b('0x2e')](_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x2f')])){return _0x23e55d(_0x7a9f9b[_0x1d7b('0x14')](0x1f4,_0x1d7b('0x30')+_0x5d7b78));}if(!_[_0x1d7b('0x31')](_0x5d7b78,_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x2f')])){return _0x23e55d(_0x7a9f9b['error'](0x1f4,_0x1d7b('0x32')+_0x5d7b78));}var _0x5a05e5={};_0x5a05e5[_0x1f9c4a[_0x1d7b('0x26')]['mapKey']]=_0x1f9c4a[_0x1d7b('0x26')]['from'];return db[_0x1d7b('0x19')]['find']({'where':{'id':_0x1f9c4a['account']['id']},'include':[{'model':db[_0x1d7b('0x33')],'as':_0x1d7b('0x34'),'include':[{'model':db[_0x1d7b('0x35')],'as':'Contacts','where':_0x5a05e5,'limit':0x1,'order':[[_0x1d7b('0x2b'),_0x1d7b('0x36')]]}]},{'model':db[_0x1d7b('0x37')],'as':'Applications'},{'model':db[_0x1d7b('0x38')],'as':'Smtp'}]})[_0x1d7b('0xe')](function(_0x3dfcca){if(_0x3dfcca&&_0x3dfcca[_0x1d7b('0x34')]){var _0xb81302=_0x3dfcca[_0x1d7b('0x39')]({'plain':!![]});_0x338455[_0x1d7b('0x3a')]=_[_0x1d7b('0x3b')](_0xb81302,[_0x1d7b('0x3c'),_0x1d7b('0x34')]);_0x338455[_0x1d7b('0x3d')]=_0xb81302[_0x1d7b('0x3c')];_0x338455['list']=_0xb81302[_0x1d7b('0x34')];_0x338455[_0x1d7b('0x3d')]=_['orderBy'](_0x338455[_0x1d7b('0x3d')],[_0x1d7b('0x3e')],[_0x1d7b('0x3f')]);if(_0x338455[_0x1d7b('0x3a')]&&_0x338455[_0x1d7b('0x3a')][_0x1d7b('0x40')]){_0x338455['applications'][_0x1d7b('0x41')]({'id':0x0,'priority':_0x338455['applications'][_0x1d7b('0x42')]+0x1,'app':'close','appdata':'autoclose','interval':_0x1d7b('0x43')});}if(_0x338455[_0x1d7b('0x3a')][_0x1d7b('0x3c')]){delete _0x338455[_0x1d7b('0x3a')][_0x1d7b('0x3c')];}if(_0x338455['account'][_0x1d7b('0x34')]){delete _0x338455['account'][_0x1d7b('0x34')];}if(_0xb81302[_0x1d7b('0x34')][_0x1d7b('0x44')][_0x1d7b('0x42')]){return _0xb81302['List'][_0x1d7b('0x44')][0x0];}var _0x39aab6=_['defaults'](_0x1f9c4a['body'],{'firstName':_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x45')],'ListId':_0xb81302['ListId']});_0x39aab6[_0x1f9c4a['body'][_0x1d7b('0x2f')]]=_0x1f9c4a[_0x1d7b('0x26')]['from'];return db['CmContact']['create'](_0x39aab6);}else{throw new Error(_0x1d7b('0x46'));}})['then'](function(_0x10119c){_0x338455[_0x1d7b('0x47')]=_0x10119c;if(_0x10119c){if(!_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')][_0x1d7b('0x48')]){_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')]['messageId']=rs[_0x1d7b('0x49')]()+'\x20'+_0x1f9c4a[_0x1d7b('0x26')]['message'][_0x1d7b('0x45')];}var _0x3924a9={'ContactId':_0x10119c['id'],'MailAccountId':_0x1f9c4a[_0x1d7b('0x3a')]['id'],'inReplyTo':_0x1f9c4a['body'][_0x1d7b('0x16')][_0x1d7b('0x48')],'to':_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')][_0x1d7b('0x45')],'cc':_0x1f9c4a['body'][_0x1d7b('0x16')]['cc'],'subject':_0x1f9c4a[_0x1d7b('0x26')]['message']['subject'],'attach':_0x1f9c4a[_0x1d7b('0x26')]['message'][_0x1d7b('0x4a')],'lastMsgAt':moment()[_0x1d7b('0x4b')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db[_0x1d7b('0x4c')]['find']({'where':{'closed':![],'MailAccountId':_0x1f9c4a['account']['id']},'include':[{'model':db[_0x1d7b('0x4d')],'as':_0x1d7b('0x4e'),'attributes':['messageId'],'where':{'messageId':_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')][_0x1d7b('0x4f')]}}]})[_0x1d7b('0xe')](function(_0x7dec45){if(_0x7dec45){return[_0x7dec45,![]];}return db[_0x1d7b('0x4c')][_0x1d7b('0x50')](_0x3924a9)[_0x1d7b('0xe')](function(_0x746ea0){return[_0x746ea0,!![]];});});}else{throw new Error(_0x1d7b('0x51'));}})['spread'](function(_0x454288,_0x3fc612){if(_0x454288){_0x3ffa79=_0x3fc612;if(!_0x3fc612){return _0x454288['update']({'inReplyTo':_0x1f9c4a['body'][_0x1d7b('0x16')][_0x1d7b('0x48')],'to':_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')][_0x1d7b('0x45')],'cc':_0x1f9c4a[_0x1d7b('0x26')]['message']['cc'],'subject':_0x1f9c4a['body'][_0x1d7b('0x16')]['subject'],'attach':_0x454288[_0x1d7b('0x4a')]?_0x454288['attach']:_0x1f9c4a[_0x1d7b('0x26')]['message'][_0x1d7b('0x4a')],'substatus':null,'substatusAt':moment()[_0x1d7b('0x4b')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()['format'](_0x1d7b('0x52')),'lastMsgDirection':'in'});}else{return _0x454288;}}})[_0x1d7b('0xe')](function(_0x4b2d02){_0x338455['interaction']=_0x4b2d02[_0x1d7b('0x39')]({'plain':!![]});_0x338455['interaction']['created']=_0x3ffa79;return db[_0x1d7b('0x4d')][_0x1d7b('0x50')]({'body':_0x1f9c4a[_0x1d7b('0x26')]['body'],'MailAccountId':_0x1f9c4a[_0x1d7b('0x3a')]['id'],'MailInteractionId':_0x4b2d02['id'],'direction':'in','ContactId':_0x338455[_0x1d7b('0x47')]['id'],'messageId':_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')][_0x1d7b('0x48')],'from':_0x1f9c4a['body'][_0x1d7b('0x16')][_0x1d7b('0x45')],'to':_0x1f9c4a['body'][_0x1d7b('0x16')]['to'],'cc':_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')]['cc'],'subject':_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')][_0x1d7b('0x53')],'attach':_0x1f9c4a[_0x1d7b('0x26')]['message'][_0x1d7b('0x4a')],'Attachments':_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')][_0x1d7b('0x54')],'originTo':_0x1f9c4a[_0x1d7b('0x26')][_0x1d7b('0x16')][_0x1d7b('0x55')],'originCc':_0x1f9c4a['body'][_0x1d7b('0x16')]['originCc'],'bcc':_0x1f9c4a['body'][_0x1d7b('0x16')]['bcc'],'ChatWebsiteId':_0x1f9c4a['body'][_0x1d7b('0x16')][_0x1d7b('0x56')]||null,'originChannel':_0x1f9c4a['body'][_0x1d7b('0x16')][_0x1d7b('0x57')]||_0x1d7b('0x58'),'ChatOfflineMessageId':_0x1f9c4a['body']['message'][_0x1d7b('0x59')]||null},{'include':[{'model':db[_0x1d7b('0x5a')],'as':_0x1d7b('0x5b')}]});})[_0x1d7b('0xe')](function(_0x54e563){_0x338455['message']=_0x54e563;if(_0x338455[_0x1d7b('0x5c')][_0x1d7b('0x5d')]){return db[_0x1d7b('0x5e')][_0x1d7b('0x23')]({'attributes':['id',_0x1d7b('0x5f')],'where':{'id':_0x338455[_0x1d7b('0x5c')][_0x1d7b('0x5d')]}})[_0x1d7b('0xe')](function(_0x51f1e2){if(_0x51f1e2){_0x338455[_0x1d7b('0x3d')][_0x1d7b('0x60')]({'id':0x0,'priority':0x0,'app':_0x1d7b('0x61'),'appdata':_0x51f1e2['name']+','+(_0x338455[_0x1d7b('0x3a')]['waitForTheAssignedAgent']||0xa),'interval':_0x1d7b('0x43')});}return respondWithRpcPromise(_0x1d7b('0x62'),_0x1d7b('0x63'),_0x338455);});}return respondWithRpcPromise(_0x1d7b('0x62'),_0x1d7b('0x63'),_0x338455);})['then'](function(_0x58e8e1){_0x33b1c5(_0x58e8e1);})[_0x1d7b('0x17')](function(_0x2c438e){_0x23e55d(_0x7a9f9b[_0x1d7b('0x14')](0x1f4,_0x2c438e[_0x1d7b('0x16')]));});});};