Built motion from commit (unavailable).|2.5.13
[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 _0x0b96=['result','catch','GetMailAccount','MailAccount','findAll','options','raw','attributes','limit','include','map','model','ShowMailAccount','find','NotifyMailAccount','mail','keys','rawAttributes','createdAt','updatedAt','ListId','body','body\x20is\x20mandatory\x20and\x20not\x20empty','isNil','mapKey','includes','from','account','List','Contacts','DESC','MailApplication','Smtp','get','Applications','applications','orderBy','priority','autoclose','push','length','CmContact','create','messageId','generate','format','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','update','subject','attach','YYYY-MM-DD\x20HH:mm:ss','interaction','contact','attachments','originTo','bcc','Attachment','Attachments','User','unshift','agent','name','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info'];(function(_0x2ed806,_0x4e64aa){var _0x55f7aa=function(_0x139a81){while(--_0x139a81){_0x2ed806['push'](_0x2ed806['shift']());}};_0x55f7aa(++_0x4e64aa);}(_0x0b96,0xa5));var _0x60b9=function(_0x1e92a6,_0x5184dc){_0x1e92a6=_0x1e92a6-0x0;var _0x14a496=_0x0b96[_0x1e92a6];return _0x14a496;};'use strict';var _=require(_0x60b9('0x0'));var util=require(_0x60b9('0x1'));var moment=require(_0x60b9('0x2'));var BPromise=require('bluebird');var rs=require(_0x60b9('0x3'));var fs=require('fs');var Redis=require(_0x60b9('0x4'));var db=require(_0x60b9('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x60b9('0x6'))(_0x60b9('0x7'));var config=require('../../config/environment');var jayson=require(_0x60b9('0x8'));var client=jayson[_0x60b9('0x9')][_0x60b9('0xa')]({'port':0x232c});config[_0x60b9('0xb')]=_[_0x60b9('0xc')](config[_0x60b9('0xb')],{'host':_0x60b9('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x60b9('0xb')]));require('./mailAccount.socket')['register'](socket);function respondWithRpcPromise(_0x2c4117,_0x189652,_0x448b43){return new BPromise(function(_0x246bf3,_0x541aaf){return client[_0x60b9('0xe')](_0x2c4117,_0x448b43)[_0x60b9('0xf')](function(_0x2e2c59){logger['info'](_0x60b9('0x10'),_0x189652,_0x60b9('0x11'));logger[_0x60b9('0x12')](_0x60b9('0x13'),_0x189652,_0x60b9('0x11'),JSON[_0x60b9('0x14')](_0x2e2c59));if(_0x2e2c59[_0x60b9('0x15')]){if(_0x2e2c59[_0x60b9('0x15')][_0x60b9('0x16')]===0x1f4){logger[_0x60b9('0x15')](_0x60b9('0x10'),_0x189652,_0x2e2c59['error'][_0x60b9('0x17')]);return _0x541aaf(_0x2e2c59[_0x60b9('0x15')][_0x60b9('0x17')]);}logger[_0x60b9('0x15')](_0x60b9('0x10'),_0x189652,_0x2e2c59['error'][_0x60b9('0x17')]);return _0x246bf3(_0x2e2c59[_0x60b9('0x15')][_0x60b9('0x17')]);}else{logger[_0x60b9('0x18')]('MailAccount,\x20%s,\x20%s',_0x189652,'request\x20sent');_0x246bf3(_0x2e2c59[_0x60b9('0x19')][_0x60b9('0x17')]);}})[_0x60b9('0x1a')](function(_0x42eb4f){logger[_0x60b9('0x15')](_0x60b9('0x10'),_0x189652,_0x42eb4f);_0x541aaf(_0x42eb4f);});});}exports[_0x60b9('0x1b')]=function(_0x5b45c2){var _0xc22988=this;return new Promise(function(_0x57217f,_0xe1f747){return db[_0x60b9('0x1c')][_0x60b9('0x1d')]({'raw':_0x5b45c2[_0x60b9('0x1e')]?_0x5b45c2['options'][_0x60b9('0x1f')]===undefined?!![]:![]:!![],'where':_0x5b45c2[_0x60b9('0x1e')]?_0x5b45c2[_0x60b9('0x1e')]['where']||null:null,'attributes':_0x5b45c2[_0x60b9('0x1e')]?_0x5b45c2['options'][_0x60b9('0x20')]||null:null,'limit':_0x5b45c2[_0x60b9('0x1e')]?_0x5b45c2[_0x60b9('0x1e')][_0x60b9('0x21')]||null:null,'include':_0x5b45c2[_0x60b9('0x1e')]?_0x5b45c2['options'][_0x60b9('0x22')]?_[_0x60b9('0x23')](_0x5b45c2[_0x60b9('0x1e')][_0x60b9('0x22')],function(_0x4eb65b){return{'model':db[_0x4eb65b[_0x60b9('0x24')]],'as':_0x4eb65b['as'],'attributes':_0x4eb65b['attributes'],'include':_0x4eb65b[_0x60b9('0x22')]?_[_0x60b9('0x23')](_0x4eb65b[_0x60b9('0x22')],function(_0x2a0fcb){return{'model':db[_0x2a0fcb[_0x60b9('0x24')]],'as':_0x2a0fcb['as'],'attributes':_0x2a0fcb[_0x60b9('0x20')],'include':_0x2a0fcb[_0x60b9('0x22')]?_['map'](_0x2a0fcb['include'],function(_0x37e8a4){return{'model':db[_0x37e8a4[_0x60b9('0x24')]],'as':_0x37e8a4['as'],'attributes':_0x37e8a4[_0x60b9('0x20')]};}):[]};}):[]};}):[]:[]})[_0x60b9('0xf')](function(_0x51976d){logger[_0x60b9('0x18')](_0x60b9('0x1b'),_0x5b45c2);logger['debug']('GetMailAccount',_0x5b45c2,JSON[_0x60b9('0x14')](_0x51976d));_0x57217f(_0x51976d);})[_0x60b9('0x1a')](function(_0xdd2e62){logger[_0x60b9('0x15')]('GetMailAccount',_0xdd2e62[_0x60b9('0x17')],_0x5b45c2);_0xe1f747(_0xc22988[_0x60b9('0x15')](0x1f4,_0xdd2e62[_0x60b9('0x17')]));});});};exports[_0x60b9('0x25')]=function(_0x616121){var _0x21f0ef=this;return new Promise(function(_0x489920,_0x50d715){return db[_0x60b9('0x1c')][_0x60b9('0x26')]({'raw':_0x616121[_0x60b9('0x1e')]?_0x616121[_0x60b9('0x1e')][_0x60b9('0x1f')]===undefined?!![]:![]:!![],'where':_0x616121[_0x60b9('0x1e')]?_0x616121['options']['where']||null:null,'attributes':_0x616121[_0x60b9('0x1e')]?_0x616121[_0x60b9('0x1e')][_0x60b9('0x20')]||null:null,'include':_0x616121[_0x60b9('0x1e')]?_0x616121[_0x60b9('0x1e')]['include']?_[_0x60b9('0x23')](_0x616121[_0x60b9('0x1e')][_0x60b9('0x22')],function(_0x5007e9){return{'model':db[_0x5007e9[_0x60b9('0x24')]],'as':_0x5007e9['as'],'attributes':_0x5007e9['attributes'],'include':_0x5007e9['include']?_[_0x60b9('0x23')](_0x5007e9[_0x60b9('0x22')],function(_0x502ecb){return{'model':db[_0x502ecb[_0x60b9('0x24')]],'as':_0x502ecb['as'],'attributes':_0x502ecb['attributes'],'include':_0x502ecb[_0x60b9('0x22')]?_[_0x60b9('0x23')](_0x502ecb[_0x60b9('0x22')],function(_0x135967){return{'model':db[_0x135967[_0x60b9('0x24')]],'as':_0x135967['as'],'attributes':_0x135967['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x49404b){logger[_0x60b9('0x18')](_0x60b9('0x25'),_0x616121);logger[_0x60b9('0x12')]('ShowMailAccount',_0x616121,JSON[_0x60b9('0x14')](_0x49404b));_0x489920(_0x49404b);})[_0x60b9('0x1a')](function(_0x23d4a8){logger[_0x60b9('0x15')](_0x60b9('0x25'),_0x23d4a8['message'],_0x616121);_0x50d715(_0x21f0ef[_0x60b9('0x15')](0x1f4,_0x23d4a8[_0x60b9('0x17')]));});});};exports[_0x60b9('0x27')]=function(_0x28ec9e){var _0x20f6e7=this;return new Promise(function(_0x267a3e,_0xe572ae){var _0x45482c={'body':_0x28ec9e['body'],'channel':_0x60b9('0x28')};var _0x25af6f=_['difference'](_[_0x60b9('0x29')](db['CmContact'][_0x60b9('0x2a')]),[_0x60b9('0x2b'),_0x60b9('0x2c'),'CompanyId',_0x60b9('0x2d')]);var _0x5025bf=![];if(_0x28ec9e['body']['id']){delete _0x28ec9e[_0x60b9('0x2e')]['id'];}if(_['isNil'](_0x28ec9e[_0x60b9('0x2e')]['from'])){return _0xe572ae(_0x20f6e7[_0x60b9('0x15')](0x1f4,'from\x20is\x20mandatory'));}if(_['isNil'](_0x28ec9e['body'][_0x60b9('0x2e')])||_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x2e')]===''){return _0xe572ae(_0x20f6e7['error'](0x1f4,_0x60b9('0x2f')));}if(_[_0x60b9('0x30')](_0x28ec9e['body'][_0x60b9('0x31')])){return _0xe572ae(_0x20f6e7[_0x60b9('0x15')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x25af6f));}if(!_[_0x60b9('0x32')](_0x25af6f,_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x31')])){return _0xe572ae(_0x20f6e7[_0x60b9('0x15')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x25af6f));}var _0x1892c6={};_0x1892c6[_0x28ec9e['body'][_0x60b9('0x31')]]=_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x33')];return db[_0x60b9('0x1c')]['find']({'where':{'id':_0x28ec9e[_0x60b9('0x34')]['id']},'include':[{'model':db['CmList'],'as':_0x60b9('0x35'),'include':[{'model':db['CmContact'],'as':_0x60b9('0x36'),'where':_0x1892c6,'limit':0x1,'order':[[_0x60b9('0x2c'),_0x60b9('0x37')]]}]},{'model':db[_0x60b9('0x38')],'as':'Applications'},{'model':db['MailServerOut'],'as':_0x60b9('0x39')}]})[_0x60b9('0xf')](function(_0x598580){if(_0x598580&&_0x598580['List']){var _0x21bb57=_0x598580[_0x60b9('0x3a')]({'plain':!![]});_0x45482c['account']=_['omit'](_0x21bb57,[_0x60b9('0x3b'),_0x60b9('0x35')]);_0x45482c[_0x60b9('0x3c')]=_0x21bb57[_0x60b9('0x3b')];_0x45482c['list']=_0x21bb57[_0x60b9('0x35')];_0x45482c[_0x60b9('0x3c')]=_[_0x60b9('0x3d')](_0x45482c[_0x60b9('0x3c')],[_0x60b9('0x3e')],['asc']);if(_0x45482c[_0x60b9('0x34')]&&_0x45482c[_0x60b9('0x34')][_0x60b9('0x3f')]){_0x45482c['applications'][_0x60b9('0x40')]({'id':0x0,'priority':_0x45482c[_0x60b9('0x3c')][_0x60b9('0x41')]+0x1,'app':'close','appdata':'autoclose','interval':'*,*,*,*'});}if(_0x45482c[_0x60b9('0x34')][_0x60b9('0x3b')]){delete _0x45482c[_0x60b9('0x34')][_0x60b9('0x3b')];}if(_0x45482c[_0x60b9('0x34')][_0x60b9('0x35')]){delete _0x45482c[_0x60b9('0x34')]['List'];}if(_0x21bb57[_0x60b9('0x35')][_0x60b9('0x36')]['length']){return _0x21bb57[_0x60b9('0x35')][_0x60b9('0x36')][0x0];}var _0x3f8f26=_[_0x60b9('0xc')](_0x28ec9e[_0x60b9('0x2e')],{'firstName':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x33')],'ListId':_0x21bb57['ListId']});_0x3f8f26[_0x28ec9e[_0x60b9('0x2e')]['mapKey']]=_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x33')];return db[_0x60b9('0x42')][_0x60b9('0x43')](_0x3f8f26);}else{throw new Error('List\x20not\x20found');}})[_0x60b9('0xf')](function(_0x3a6791){_0x45482c['contact']=_0x3a6791;if(_0x3a6791){if(!_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')][_0x60b9('0x44')]){_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')][_0x60b9('0x44')]=rs[_0x60b9('0x45')]()+'\x20'+_0x28ec9e[_0x60b9('0x2e')]['message'][_0x60b9('0x33')];}var _0x2b7685={'ContactId':_0x3a6791['id'],'MailAccountId':_0x28ec9e[_0x60b9('0x34')]['id'],'inReplyTo':_0x28ec9e['body'][_0x60b9('0x17')]['messageId'],'to':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')][_0x60b9('0x33')],'cc':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')]['cc'],'subject':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')]['subject'],'attach':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')]['attach'],'lastMsgAt':moment()[_0x60b9('0x46')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x2e')]};return db[_0x60b9('0x47')][_0x60b9('0x26')]({'where':{'closed':![],'MailAccountId':_0x28ec9e[_0x60b9('0x34')]['id']},'include':[{'model':db[_0x60b9('0x48')],'as':_0x60b9('0x49'),'attributes':[_0x60b9('0x44')],'where':{'messageId':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')][_0x60b9('0x4a')]}}]})['then'](function(_0x572a63){if(_0x572a63){return[_0x572a63,![]];}return db[_0x60b9('0x47')][_0x60b9('0x43')](_0x2b7685)[_0x60b9('0xf')](function(_0x6ec1b6){return[_0x6ec1b6,!![]];});});}else{throw new Error(_0x60b9('0x4b'));}})['spread'](function(_0x3fa608,_0x4c1027){if(_0x3fa608){_0x5025bf=_0x4c1027;if(!_0x4c1027){return _0x3fa608[_0x60b9('0x4c')]({'inReplyTo':_0x28ec9e[_0x60b9('0x2e')]['message']['messageId'],'to':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')][_0x60b9('0x33')],'cc':_0x28ec9e['body'][_0x60b9('0x17')]['cc'],'subject':_0x28ec9e[_0x60b9('0x2e')]['message'][_0x60b9('0x4d')],'attach':_0x3fa608[_0x60b9('0x4e')]?_0x3fa608[_0x60b9('0x4e')]:_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')][_0x60b9('0x4e')],'substatus':null,'substatusAt':moment()[_0x60b9('0x46')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0x60b9('0x46')](_0x60b9('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x28ec9e['body']['body']});}else{return _0x3fa608;}}})[_0x60b9('0xf')](function(_0x50e6a7){_0x45482c[_0x60b9('0x50')]=_0x50e6a7['get']({'plain':!![]});_0x45482c[_0x60b9('0x50')]['created']=_0x5025bf;return db['MailMessage'][_0x60b9('0x43')]({'body':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x2e')],'MailAccountId':_0x28ec9e[_0x60b9('0x34')]['id'],'MailInteractionId':_0x50e6a7['id'],'direction':'in','ContactId':_0x45482c[_0x60b9('0x51')]['id'],'messageId':_0x28ec9e[_0x60b9('0x2e')]['message'][_0x60b9('0x44')],'from':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')][_0x60b9('0x33')],'to':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')]['to'],'cc':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')]['cc'],'subject':_0x28ec9e[_0x60b9('0x2e')]['message'][_0x60b9('0x4d')],'attach':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')]['attach'],'Attachments':_0x28ec9e['body'][_0x60b9('0x17')][_0x60b9('0x52')],'originTo':_0x28ec9e['body']['message'][_0x60b9('0x53')],'originCc':_0x28ec9e['body'][_0x60b9('0x17')]['originCc'],'bcc':_0x28ec9e[_0x60b9('0x2e')][_0x60b9('0x17')][_0x60b9('0x54')]},{'include':[{'model':db[_0x60b9('0x55')],'as':_0x60b9('0x56')}]});})[_0x60b9('0xf')](function(_0x126660){_0x45482c[_0x60b9('0x17')]=_0x126660;if(_0x45482c['interaction']['UserId']){return db[_0x60b9('0x57')][_0x60b9('0x26')]({'attributes':['id','name'],'where':{'id':_0x45482c[_0x60b9('0x50')]['UserId']}})[_0x60b9('0xf')](function(_0x56e077){if(_0x56e077){_0x45482c[_0x60b9('0x3c')][_0x60b9('0x58')]({'id':0x0,'priority':0x0,'app':_0x60b9('0x59'),'appdata':_0x56e077[_0x60b9('0x5a')]+','+(_0x45482c[_0x60b9('0x34')][_0x60b9('0x5b')]||0xa),'interval':_0x60b9('0x5c')});}return respondWithRpcPromise(_0x60b9('0x5d'),_0x60b9('0x5e'),_0x45482c);});}return respondWithRpcPromise(_0x60b9('0x5d'),'startRouting',_0x45482c);})[_0x60b9('0xf')](function(_0x2dc360){_0x267a3e(_0x2dc360);})[_0x60b9('0x1a')](function(_0x5530a1){_0xe572ae(_0x20f6e7[_0x60b9('0x15')](0x1f4,_0x5530a1[_0x60b9('0x17')]));});});};