Built motion from commit (unavailable).|2.5.7
[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 _0x0eaa=['List','Contacts','DESC','MailApplication','Smtp','get','omit','Applications','list','applications','orderBy','priority','length','close','autoclose','*,*,*,*','defaults','create','List\x20not\x20found','contact','messageId','subject','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','Contact\x20not\x20found','spread','update','attach','interaction','created','attachments','originTo','originCc','bcc','Attachment','Attachments','UserId','User','name','unshift','agent','waitForTheAssignedAgent','lodash','util','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','localhost','./mailAccount.socket','register','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','message','info','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','map','include','model','stringify','find','ShowMailAccount','NotifyMailAccount','body','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList'];(function(_0x72216c,_0x45d6fb){var _0x5cb76c=function(_0x2aade1){while(--_0x2aade1){_0x72216c['push'](_0x72216c['shift']());}};_0x5cb76c(++_0x45d6fb);}(_0x0eaa,0x1c5));var _0xa0ea=function(_0x222ed2,_0x7c75e0){_0x222ed2=_0x222ed2-0x0;var _0x5cf141=_0x0eaa[_0x222ed2];return _0x5cf141;};'use strict';var _=require(_0xa0ea('0x0'));var util=require(_0xa0ea('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xa0ea('0x2'));var fs=require('fs');var Redis=require(_0xa0ea('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xa0ea('0x4'));var logger=require(_0xa0ea('0x5'))(_0xa0ea('0x6'));var config=require(_0xa0ea('0x7'));var jayson=require(_0xa0ea('0x8'));var client=jayson['client'][_0xa0ea('0x9')]({'port':0x232c});config['redis']=_['defaults'](config[_0xa0ea('0xa')],{'host':_0xa0ea('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xa0ea('0xc'))[_0xa0ea('0xd')](socket);function respondWithRpcPromise(_0x28cd6d,_0x309f0b,_0x7c195d){return new BPromise(function(_0x5ec608,_0x38b2f0){return client[_0xa0ea('0xe')](_0x28cd6d,_0x7c195d)[_0xa0ea('0xf')](function(_0x2ff061){logger['info'](_0xa0ea('0x10'),_0x309f0b,_0xa0ea('0x11'));logger[_0xa0ea('0x12')](_0xa0ea('0x13'),_0x309f0b,_0xa0ea('0x11'),JSON['stringify'](_0x2ff061));if(_0x2ff061[_0xa0ea('0x14')]){if(_0x2ff061[_0xa0ea('0x14')]['code']===0x1f4){logger[_0xa0ea('0x14')](_0xa0ea('0x10'),_0x309f0b,_0x2ff061[_0xa0ea('0x14')][_0xa0ea('0x15')]);return _0x38b2f0(_0x2ff061['error'][_0xa0ea('0x15')]);}logger[_0xa0ea('0x14')](_0xa0ea('0x10'),_0x309f0b,_0x2ff061[_0xa0ea('0x14')][_0xa0ea('0x15')]);return _0x5ec608(_0x2ff061[_0xa0ea('0x14')][_0xa0ea('0x15')]);}else{logger[_0xa0ea('0x16')](_0xa0ea('0x10'),_0x309f0b,_0xa0ea('0x11'));_0x5ec608(_0x2ff061['result']['message']);}})[_0xa0ea('0x17')](function(_0x1463fd){logger[_0xa0ea('0x14')](_0xa0ea('0x10'),_0x309f0b,_0x1463fd);_0x38b2f0(_0x1463fd);});});}exports[_0xa0ea('0x18')]=function(_0x2bf2e4){var _0x399df7=this;return new Promise(function(_0x47f654,_0x916f1){return db[_0xa0ea('0x19')][_0xa0ea('0x1a')]({'raw':_0x2bf2e4['options']?_0x2bf2e4[_0xa0ea('0x1b')][_0xa0ea('0x1c')]===undefined?!![]:![]:!![],'where':_0x2bf2e4[_0xa0ea('0x1b')]?_0x2bf2e4[_0xa0ea('0x1b')][_0xa0ea('0x1d')]||null:null,'attributes':_0x2bf2e4[_0xa0ea('0x1b')]?_0x2bf2e4['options'][_0xa0ea('0x1e')]||null:null,'limit':_0x2bf2e4['options']?_0x2bf2e4['options'][_0xa0ea('0x1f')]||null:null,'include':_0x2bf2e4[_0xa0ea('0x1b')]?_0x2bf2e4[_0xa0ea('0x1b')]['include']?_[_0xa0ea('0x20')](_0x2bf2e4['options'][_0xa0ea('0x21')],function(_0x51cfbd){return{'model':db[_0x51cfbd[_0xa0ea('0x22')]],'as':_0x51cfbd['as'],'attributes':_0x51cfbd[_0xa0ea('0x1e')],'include':_0x51cfbd[_0xa0ea('0x21')]?_[_0xa0ea('0x20')](_0x51cfbd[_0xa0ea('0x21')],function(_0x287728){return{'model':db[_0x287728[_0xa0ea('0x22')]],'as':_0x287728['as'],'attributes':_0x287728[_0xa0ea('0x1e')],'include':_0x287728['include']?_[_0xa0ea('0x20')](_0x287728['include'],function(_0x21640c){return{'model':db[_0x21640c[_0xa0ea('0x22')]],'as':_0x21640c['as'],'attributes':_0x21640c[_0xa0ea('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xa0ea('0xf')](function(_0x389050){logger[_0xa0ea('0x16')]('GetMailAccount',_0x2bf2e4);logger[_0xa0ea('0x12')]('GetMailAccount',_0x2bf2e4,JSON[_0xa0ea('0x23')](_0x389050));_0x47f654(_0x389050);})['catch'](function(_0x35186b){logger[_0xa0ea('0x14')](_0xa0ea('0x18'),_0x35186b['message'],_0x2bf2e4);_0x916f1(_0x399df7[_0xa0ea('0x14')](0x1f4,_0x35186b[_0xa0ea('0x15')]));});});};exports['ShowMailAccount']=function(_0x42af81){var _0x3fcca8=this;return new Promise(function(_0x2283e6,_0x4e8975){return db['MailAccount'][_0xa0ea('0x24')]({'raw':_0x42af81[_0xa0ea('0x1b')]?_0x42af81[_0xa0ea('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x42af81[_0xa0ea('0x1b')]?_0x42af81[_0xa0ea('0x1b')][_0xa0ea('0x1d')]||null:null,'attributes':_0x42af81[_0xa0ea('0x1b')]?_0x42af81[_0xa0ea('0x1b')]['attributes']||null:null,'include':_0x42af81['options']?_0x42af81[_0xa0ea('0x1b')]['include']?_[_0xa0ea('0x20')](_0x42af81[_0xa0ea('0x1b')][_0xa0ea('0x21')],function(_0x2497e2){return{'model':db[_0x2497e2[_0xa0ea('0x22')]],'as':_0x2497e2['as'],'attributes':_0x2497e2['attributes'],'include':_0x2497e2[_0xa0ea('0x21')]?_[_0xa0ea('0x20')](_0x2497e2[_0xa0ea('0x21')],function(_0x1adf16){return{'model':db[_0x1adf16[_0xa0ea('0x22')]],'as':_0x1adf16['as'],'attributes':_0x1adf16[_0xa0ea('0x1e')],'include':_0x1adf16[_0xa0ea('0x21')]?_[_0xa0ea('0x20')](_0x1adf16[_0xa0ea('0x21')],function(_0x99a0d0){return{'model':db[_0x99a0d0['model']],'as':_0x99a0d0['as'],'attributes':_0x99a0d0[_0xa0ea('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3243a2){logger['info'](_0xa0ea('0x25'),_0x42af81);logger['debug'](_0xa0ea('0x25'),_0x42af81,JSON[_0xa0ea('0x23')](_0x3243a2));_0x2283e6(_0x3243a2);})[_0xa0ea('0x17')](function(_0x6ec12e){logger['error'](_0xa0ea('0x25'),_0x6ec12e[_0xa0ea('0x15')],_0x42af81);_0x4e8975(_0x3fcca8[_0xa0ea('0x14')](0x1f4,_0x6ec12e[_0xa0ea('0x15')]));});});};exports[_0xa0ea('0x26')]=function(_0x396d61){var _0x45a001=this;return new Promise(function(_0x24ac13,_0x3a7e94){var _0x4b69d0={'body':_0x396d61[_0xa0ea('0x27')],'channel':'mail'};var _0x431f6c=_[_0xa0ea('0x28')](_[_0xa0ea('0x29')](db[_0xa0ea('0x2a')][_0xa0ea('0x2b')]),[_0xa0ea('0x2c'),_0xa0ea('0x2d'),_0xa0ea('0x2e'),_0xa0ea('0x2f')]);var _0x21a2d5=![];if(_0x396d61[_0xa0ea('0x27')]['id']){delete _0x396d61[_0xa0ea('0x27')]['id'];}if(_[_0xa0ea('0x30')](_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x31')])){return _0x3a7e94(_0x45a001['error'](0x1f4,_0xa0ea('0x32')));}if(_['isNil'](_0x396d61[_0xa0ea('0x27')]['body'])||_0x396d61['body']['body']===''){return _0x3a7e94(_0x45a001['error'](0x1f4,_0xa0ea('0x33')));}if(_[_0xa0ea('0x30')](_0x396d61['body'][_0xa0ea('0x34')])){return _0x3a7e94(_0x45a001[_0xa0ea('0x14')](0x1f4,_0xa0ea('0x35')+_0x431f6c));}if(!_['includes'](_0x431f6c,_0x396d61['body']['mapKey'])){return _0x3a7e94(_0x45a001[_0xa0ea('0x14')](0x1f4,_0xa0ea('0x36')+_0x431f6c));}var _0x2f302e={};_0x2f302e[_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x34')]]=_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x31')];return db[_0xa0ea('0x19')][_0xa0ea('0x24')]({'where':{'id':_0x396d61[_0xa0ea('0x37')]['id']},'include':[{'model':db[_0xa0ea('0x38')],'as':_0xa0ea('0x39'),'include':[{'model':db['CmContact'],'as':_0xa0ea('0x3a'),'where':_0x2f302e,'limit':0x1,'order':[[_0xa0ea('0x2d'),_0xa0ea('0x3b')]]}]},{'model':db[_0xa0ea('0x3c')],'as':'Applications'},{'model':db['MailServerOut'],'as':_0xa0ea('0x3d')}]})[_0xa0ea('0xf')](function(_0x1b841a){if(_0x1b841a&&_0x1b841a[_0xa0ea('0x39')]){var _0x38dd27=_0x1b841a[_0xa0ea('0x3e')]({'plain':!![]});_0x4b69d0[_0xa0ea('0x37')]=_[_0xa0ea('0x3f')](_0x38dd27,[_0xa0ea('0x40'),_0xa0ea('0x39')]);_0x4b69d0['applications']=_0x38dd27[_0xa0ea('0x40')];_0x4b69d0[_0xa0ea('0x41')]=_0x38dd27[_0xa0ea('0x39')];_0x4b69d0[_0xa0ea('0x42')]=_[_0xa0ea('0x43')](_0x4b69d0[_0xa0ea('0x42')],[_0xa0ea('0x44')],['asc']);if(_0x4b69d0[_0xa0ea('0x37')]&&_0x4b69d0[_0xa0ea('0x37')]['autoclose']){_0x4b69d0[_0xa0ea('0x42')]['push']({'id':0x0,'priority':_0x4b69d0[_0xa0ea('0x42')][_0xa0ea('0x45')]+0x1,'app':_0xa0ea('0x46'),'appdata':_0xa0ea('0x47'),'interval':_0xa0ea('0x48')});}if(_0x4b69d0['account'][_0xa0ea('0x40')]){delete _0x4b69d0['account'][_0xa0ea('0x40')];}if(_0x4b69d0['account'][_0xa0ea('0x39')]){delete _0x4b69d0[_0xa0ea('0x37')]['List'];}if(_0x38dd27[_0xa0ea('0x39')][_0xa0ea('0x3a')][_0xa0ea('0x45')]){return _0x38dd27['List'][_0xa0ea('0x3a')][0x0];}var _0x4853fe=_[_0xa0ea('0x49')](_0x396d61[_0xa0ea('0x27')],{'firstName':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x31')],'ListId':_0x38dd27[_0xa0ea('0x2f')]});_0x4853fe[_0x396d61['body'][_0xa0ea('0x34')]]=_0x396d61['body']['from'];return db[_0xa0ea('0x2a')][_0xa0ea('0x4a')](_0x4853fe);}else{throw new Error(_0xa0ea('0x4b'));}})['then'](function(_0x384a41){_0x4b69d0[_0xa0ea('0x4c')]=_0x384a41;if(_0x384a41){if(!_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x4d')]){_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x4d')]=rs['generate']()+'\x20'+_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x31')];}var _0x4a0837={'ContactId':_0x384a41['id'],'MailAccountId':_0x396d61[_0xa0ea('0x37')]['id'],'inReplyTo':_0x396d61['body'][_0xa0ea('0x15')][_0xa0ea('0x4d')],'to':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x31')],'cc':_0x396d61['body'][_0xa0ea('0x15')]['cc'],'subject':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x4e')],'attach':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')]['attach'],'lastMsgAt':moment()[_0xa0ea('0x4f')](_0xa0ea('0x50')),'lastMsgDirection':'in','lastMsgBody':_0x396d61[_0xa0ea('0x27')]['body']};return db[_0xa0ea('0x51')][_0xa0ea('0x24')]({'where':{'closed':![],'MailAccountId':_0x396d61[_0xa0ea('0x37')]['id']},'include':[{'model':db[_0xa0ea('0x52')],'as':_0xa0ea('0x53'),'attributes':[_0xa0ea('0x4d')],'where':{'messageId':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')]['inReplyTo']}}]})['then'](function(_0x537da0){if(_0x537da0){return[_0x537da0,![]];}return db[_0xa0ea('0x51')]['create'](_0x4a0837)[_0xa0ea('0xf')](function(_0x126a50){return[_0x126a50,!![]];});});}else{throw new Error(_0xa0ea('0x54'));}})[_0xa0ea('0x55')](function(_0x220624,_0x517dd2){if(_0x220624){_0x21a2d5=_0x517dd2;if(!_0x517dd2){return _0x220624[_0xa0ea('0x56')]({'inReplyTo':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x4d')],'to':_0x396d61['body'][_0xa0ea('0x15')][_0xa0ea('0x31')],'cc':_0x396d61['body'][_0xa0ea('0x15')]['cc'],'subject':_0x396d61['body']['message'][_0xa0ea('0x4e')],'attach':_0x220624['attach']?_0x220624[_0xa0ea('0x57')]:_0x396d61[_0xa0ea('0x27')]['message'][_0xa0ea('0x57')],'substatus':null,'substatusAt':moment()[_0xa0ea('0x4f')](_0xa0ea('0x50')),'lastMsgAt':moment()[_0xa0ea('0x4f')](_0xa0ea('0x50')),'lastMsgDirection':'in','lastMsgBody':_0x396d61[_0xa0ea('0x27')]['body']});}else{return _0x220624;}}})[_0xa0ea('0xf')](function(_0x4052ed){_0x4b69d0[_0xa0ea('0x58')]=_0x4052ed[_0xa0ea('0x3e')]({'plain':!![]});_0x4b69d0[_0xa0ea('0x58')][_0xa0ea('0x59')]=_0x21a2d5;return db['MailMessage']['create']({'body':_0x396d61[_0xa0ea('0x27')]['body'],'MailAccountId':_0x396d61[_0xa0ea('0x37')]['id'],'MailInteractionId':_0x4052ed['id'],'direction':'in','ContactId':_0x4b69d0[_0xa0ea('0x4c')]['id'],'messageId':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')]['messageId'],'from':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x31')],'to':_0x396d61[_0xa0ea('0x27')]['message']['to'],'cc':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')]['cc'],'subject':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x4e')],'attach':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x57')],'Attachments':_0x396d61['body'][_0xa0ea('0x15')][_0xa0ea('0x5a')],'originTo':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x5b')],'originCc':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x5c')],'bcc':_0x396d61[_0xa0ea('0x27')][_0xa0ea('0x15')][_0xa0ea('0x5d')]},{'include':[{'model':db[_0xa0ea('0x5e')],'as':_0xa0ea('0x5f')}]});})[_0xa0ea('0xf')](function(_0x3bc080){_0x4b69d0['message']=_0x3bc080;if(_0x4b69d0[_0xa0ea('0x58')][_0xa0ea('0x60')]){return db[_0xa0ea('0x61')]['find']({'attributes':['id',_0xa0ea('0x62')],'where':{'id':_0x4b69d0[_0xa0ea('0x58')]['UserId']}})['then'](function(_0x3b9c51){if(_0x3b9c51){_0x4b69d0[_0xa0ea('0x42')][_0xa0ea('0x63')]({'id':0x0,'priority':0x0,'app':_0xa0ea('0x64'),'appdata':_0x3b9c51['name']+','+(_0x4b69d0[_0xa0ea('0x37')][_0xa0ea('0x65')]||0xa),'interval':_0xa0ea('0x48')});}return respondWithRpcPromise('Start','startRouting',_0x4b69d0);});}return respondWithRpcPromise('Start','startRouting',_0x4b69d0);})[_0xa0ea('0xf')](function(_0x1a5e9b){_0x24ac13(_0x1a5e9b);})[_0xa0ea('0x17')](function(_0xb2ff77){_0x3a7e94(_0x45a001[_0xa0ea('0x14')](0x1f4,_0xb2ff77[_0xa0ea('0x15')]));});});};