Built motion from commit (unavailable).|2.5.14
[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 _0xfb30=['asc','account','autoclose','push','length','close','*,*,*,*','Contacts','create','List\x20not\x20found','contact','messageId','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','Messages','inReplyTo','MailInteraction','Contact\x20not\x20found','spread','update','interaction','get','created','bcc','Attachment','Attachments','UserId','User','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./mailAccount.socket','register','request','then','info','request\x20sent','debug','stringify','error','code','MailAccount,\x20%s,\x20%s','message','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','map','model','ShowMailAccount','find','NotifyMailAccount','body','mail','keys','CmContact','rawAttributes','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','MailApplication','Applications','MailServerOut','omit','applications','priority'];(function(_0x455bbf,_0x487eb1){var _0x31cc6a=function(_0x510dd8){while(--_0x510dd8){_0x455bbf['push'](_0x455bbf['shift']());}};_0x31cc6a(++_0x487eb1);}(_0xfb30,0x88));var _0x0fb3=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0xfb30[_0x17d9e3];return _0x14192d;};'use strict';var _=require(_0x0fb3('0x0'));var util=require(_0x0fb3('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x0fb3('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0fb3('0x3'))['db'];var utils=require(_0x0fb3('0x4'));var logger=require(_0x0fb3('0x5'))(_0x0fb3('0x6'));var config=require(_0x0fb3('0x7'));var jayson=require(_0x0fb3('0x8'));var client=jayson[_0x0fb3('0x9')][_0x0fb3('0xa')]({'port':0x232c});config[_0x0fb3('0xb')]=_[_0x0fb3('0xc')](config[_0x0fb3('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x0fb3('0xd'))(new Redis(config['redis']));require(_0x0fb3('0xe'))[_0x0fb3('0xf')](socket);function respondWithRpcPromise(_0x3b5f43,_0x3e89c0,_0x30ad73){return new BPromise(function(_0x5d58f3,_0x5db95f){return client[_0x0fb3('0x10')](_0x3b5f43,_0x30ad73)[_0x0fb3('0x11')](function(_0x182943){logger[_0x0fb3('0x12')]('MailAccount,\x20%s,\x20%s',_0x3e89c0,_0x0fb3('0x13'));logger[_0x0fb3('0x14')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x3e89c0,_0x0fb3('0x13'),JSON[_0x0fb3('0x15')](_0x182943));if(_0x182943[_0x0fb3('0x16')]){if(_0x182943[_0x0fb3('0x16')][_0x0fb3('0x17')]===0x1f4){logger[_0x0fb3('0x16')](_0x0fb3('0x18'),_0x3e89c0,_0x182943[_0x0fb3('0x16')]['message']);return _0x5db95f(_0x182943[_0x0fb3('0x16')][_0x0fb3('0x19')]);}logger[_0x0fb3('0x16')](_0x0fb3('0x18'),_0x3e89c0,_0x182943[_0x0fb3('0x16')][_0x0fb3('0x19')]);return _0x5d58f3(_0x182943[_0x0fb3('0x16')][_0x0fb3('0x19')]);}else{logger['info'](_0x0fb3('0x18'),_0x3e89c0,'request\x20sent');_0x5d58f3(_0x182943['result']['message']);}})[_0x0fb3('0x1a')](function(_0x398678){logger[_0x0fb3('0x16')]('MailAccount,\x20%s,\x20%s',_0x3e89c0,_0x398678);_0x5db95f(_0x398678);});});}exports[_0x0fb3('0x1b')]=function(_0x1f7f32){var _0x9fb63d=this;return new Promise(function(_0x230a44,_0x40ddf6){return db[_0x0fb3('0x1c')][_0x0fb3('0x1d')]({'raw':_0x1f7f32['options']?_0x1f7f32[_0x0fb3('0x1e')][_0x0fb3('0x1f')]===undefined?!![]:![]:!![],'where':_0x1f7f32[_0x0fb3('0x1e')]?_0x1f7f32[_0x0fb3('0x1e')][_0x0fb3('0x20')]||null:null,'attributes':_0x1f7f32[_0x0fb3('0x1e')]?_0x1f7f32['options'][_0x0fb3('0x21')]||null:null,'limit':_0x1f7f32[_0x0fb3('0x1e')]?_0x1f7f32[_0x0fb3('0x1e')][_0x0fb3('0x22')]||null:null,'include':_0x1f7f32[_0x0fb3('0x1e')]?_0x1f7f32[_0x0fb3('0x1e')][_0x0fb3('0x23')]?_[_0x0fb3('0x24')](_0x1f7f32[_0x0fb3('0x1e')]['include'],function(_0x20b79e){return{'model':db[_0x20b79e['model']],'as':_0x20b79e['as'],'attributes':_0x20b79e[_0x0fb3('0x21')],'include':_0x20b79e['include']?_[_0x0fb3('0x24')](_0x20b79e[_0x0fb3('0x23')],function(_0xa3db94){return{'model':db[_0xa3db94[_0x0fb3('0x25')]],'as':_0xa3db94['as'],'attributes':_0xa3db94['attributes'],'include':_0xa3db94['include']?_[_0x0fb3('0x24')](_0xa3db94['include'],function(_0xbf2629){return{'model':db[_0xbf2629[_0x0fb3('0x25')]],'as':_0xbf2629['as'],'attributes':_0xbf2629[_0x0fb3('0x21')]};}):[]};}):[]};}):[]:[]})[_0x0fb3('0x11')](function(_0x2708ef){logger[_0x0fb3('0x12')](_0x0fb3('0x1b'),_0x1f7f32);logger[_0x0fb3('0x14')](_0x0fb3('0x1b'),_0x1f7f32,JSON[_0x0fb3('0x15')](_0x2708ef));_0x230a44(_0x2708ef);})[_0x0fb3('0x1a')](function(_0x1f4032){logger[_0x0fb3('0x16')](_0x0fb3('0x1b'),_0x1f4032[_0x0fb3('0x19')],_0x1f7f32);_0x40ddf6(_0x9fb63d[_0x0fb3('0x16')](0x1f4,_0x1f4032[_0x0fb3('0x19')]));});});};exports[_0x0fb3('0x26')]=function(_0xf7817c){var _0x48ce1b=this;return new Promise(function(_0x1507ef,_0x3391e7){return db['MailAccount'][_0x0fb3('0x27')]({'raw':_0xf7817c[_0x0fb3('0x1e')]?_0xf7817c['options'][_0x0fb3('0x1f')]===undefined?!![]:![]:!![],'where':_0xf7817c['options']?_0xf7817c[_0x0fb3('0x1e')][_0x0fb3('0x20')]||null:null,'attributes':_0xf7817c['options']?_0xf7817c[_0x0fb3('0x1e')][_0x0fb3('0x21')]||null:null,'include':_0xf7817c['options']?_0xf7817c[_0x0fb3('0x1e')]['include']?_[_0x0fb3('0x24')](_0xf7817c[_0x0fb3('0x1e')][_0x0fb3('0x23')],function(_0x3bfac2){return{'model':db[_0x3bfac2[_0x0fb3('0x25')]],'as':_0x3bfac2['as'],'attributes':_0x3bfac2[_0x0fb3('0x21')],'include':_0x3bfac2[_0x0fb3('0x23')]?_['map'](_0x3bfac2[_0x0fb3('0x23')],function(_0xa9a764){return{'model':db[_0xa9a764[_0x0fb3('0x25')]],'as':_0xa9a764['as'],'attributes':_0xa9a764[_0x0fb3('0x21')],'include':_0xa9a764[_0x0fb3('0x23')]?_[_0x0fb3('0x24')](_0xa9a764[_0x0fb3('0x23')],function(_0x54b86a){return{'model':db[_0x54b86a[_0x0fb3('0x25')]],'as':_0x54b86a['as'],'attributes':_0x54b86a[_0x0fb3('0x21')]};}):[]};}):[]};}):[]:[]})[_0x0fb3('0x11')](function(_0x44c46b){logger['info'](_0x0fb3('0x26'),_0xf7817c);logger['debug'](_0x0fb3('0x26'),_0xf7817c,JSON['stringify'](_0x44c46b));_0x1507ef(_0x44c46b);})[_0x0fb3('0x1a')](function(_0x247d39){logger[_0x0fb3('0x16')](_0x0fb3('0x26'),_0x247d39['message'],_0xf7817c);_0x3391e7(_0x48ce1b[_0x0fb3('0x16')](0x1f4,_0x247d39[_0x0fb3('0x19')]));});});};exports[_0x0fb3('0x28')]=function(_0x10ea57){var _0x219997=this;return new Promise(function(_0x20e4c3,_0xbcb722){var _0x11f44b={'body':_0x10ea57[_0x0fb3('0x29')],'channel':_0x0fb3('0x2a')};var _0x19a98d=_['difference'](_[_0x0fb3('0x2b')](db[_0x0fb3('0x2c')][_0x0fb3('0x2d')]),['createdAt',_0x0fb3('0x2e'),_0x0fb3('0x2f'),_0x0fb3('0x30')]);var _0x19384f=![];if(_0x10ea57[_0x0fb3('0x29')]['id']){delete _0x10ea57['body']['id'];}if(_[_0x0fb3('0x31')](_0x10ea57['body'][_0x0fb3('0x32')])){return _0xbcb722(_0x219997['error'](0x1f4,_0x0fb3('0x33')));}if(_[_0x0fb3('0x31')](_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x29')])||_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x29')]===''){return _0xbcb722(_0x219997[_0x0fb3('0x16')](0x1f4,_0x0fb3('0x34')));}if(_[_0x0fb3('0x31')](_0x10ea57[_0x0fb3('0x29')]['mapKey'])){return _0xbcb722(_0x219997[_0x0fb3('0x16')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x19a98d));}if(!_[_0x0fb3('0x35')](_0x19a98d,_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x36')])){return _0xbcb722(_0x219997[_0x0fb3('0x16')](0x1f4,_0x0fb3('0x37')+_0x19a98d));}var _0x35eacb={};_0x35eacb[_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x36')]]=_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x32')];return db[_0x0fb3('0x1c')][_0x0fb3('0x27')]({'where':{'id':_0x10ea57['account']['id']},'include':[{'model':db[_0x0fb3('0x38')],'as':_0x0fb3('0x39'),'include':[{'model':db[_0x0fb3('0x2c')],'as':'Contacts','where':_0x35eacb,'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0x0fb3('0x3a')],'as':_0x0fb3('0x3b')},{'model':db[_0x0fb3('0x3c')],'as':'Smtp'}]})[_0x0fb3('0x11')](function(_0x9c5837){if(_0x9c5837&&_0x9c5837[_0x0fb3('0x39')]){var _0x4c6153=_0x9c5837['get']({'plain':!![]});_0x11f44b['account']=_[_0x0fb3('0x3d')](_0x4c6153,[_0x0fb3('0x3b'),_0x0fb3('0x39')]);_0x11f44b[_0x0fb3('0x3e')]=_0x4c6153[_0x0fb3('0x3b')];_0x11f44b['list']=_0x4c6153[_0x0fb3('0x39')];_0x11f44b[_0x0fb3('0x3e')]=_['orderBy'](_0x11f44b[_0x0fb3('0x3e')],[_0x0fb3('0x3f')],[_0x0fb3('0x40')]);if(_0x11f44b[_0x0fb3('0x41')]&&_0x11f44b[_0x0fb3('0x41')][_0x0fb3('0x42')]){_0x11f44b[_0x0fb3('0x3e')][_0x0fb3('0x43')]({'id':0x0,'priority':_0x11f44b[_0x0fb3('0x3e')][_0x0fb3('0x44')]+0x1,'app':_0x0fb3('0x45'),'appdata':_0x0fb3('0x42'),'interval':_0x0fb3('0x46')});}if(_0x11f44b[_0x0fb3('0x41')]['Applications']){delete _0x11f44b[_0x0fb3('0x41')][_0x0fb3('0x3b')];}if(_0x11f44b[_0x0fb3('0x41')]['List']){delete _0x11f44b[_0x0fb3('0x41')]['List'];}if(_0x4c6153[_0x0fb3('0x39')][_0x0fb3('0x47')][_0x0fb3('0x44')]){return _0x4c6153[_0x0fb3('0x39')][_0x0fb3('0x47')][0x0];}var _0x394e6b=_[_0x0fb3('0xc')](_0x10ea57[_0x0fb3('0x29')],{'firstName':_0x10ea57[_0x0fb3('0x29')]['from'],'ListId':_0x4c6153['ListId']});_0x394e6b[_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x36')]]=_0x10ea57['body'][_0x0fb3('0x32')];return db['CmContact'][_0x0fb3('0x48')](_0x394e6b);}else{throw new Error(_0x0fb3('0x49'));}})['then'](function(_0x36f24f){_0x11f44b[_0x0fb3('0x4a')]=_0x36f24f;if(_0x36f24f){if(!_0x10ea57[_0x0fb3('0x29')]['message'][_0x0fb3('0x4b')]){_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x4b')]=rs['generate']()+'\x20'+_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x32')];}var _0x3c4e89={'ContactId':_0x36f24f['id'],'MailAccountId':_0x10ea57[_0x0fb3('0x41')]['id'],'inReplyTo':_0x10ea57[_0x0fb3('0x29')]['message'][_0x0fb3('0x4b')],'to':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x32')],'cc':_0x10ea57[_0x0fb3('0x29')]['message']['cc'],'subject':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x4c')],'attach':_0x10ea57[_0x0fb3('0x29')]['message'][_0x0fb3('0x4d')],'lastMsgAt':moment()[_0x0fb3('0x4e')](_0x0fb3('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x29')]};return db['MailInteraction'][_0x0fb3('0x27')]({'where':{'closed':![],'MailAccountId':_0x10ea57[_0x0fb3('0x41')]['id']},'include':[{'model':db[_0x0fb3('0x50')],'as':_0x0fb3('0x51'),'attributes':[_0x0fb3('0x4b')],'where':{'messageId':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x52')]}}]})[_0x0fb3('0x11')](function(_0x4b3d39){if(_0x4b3d39){return[_0x4b3d39,![]];}return db[_0x0fb3('0x53')][_0x0fb3('0x48')](_0x3c4e89)[_0x0fb3('0x11')](function(_0x952ed2){return[_0x952ed2,!![]];});});}else{throw new Error(_0x0fb3('0x54'));}})[_0x0fb3('0x55')](function(_0xa3713f,_0x592e98){if(_0xa3713f){_0x19384f=_0x592e98;if(!_0x592e98){return _0xa3713f[_0x0fb3('0x56')]({'inReplyTo':_0x10ea57['body']['message'][_0x0fb3('0x4b')],'to':_0x10ea57['body']['message'][_0x0fb3('0x32')],'cc':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')]['cc'],'subject':_0x10ea57['body'][_0x0fb3('0x19')][_0x0fb3('0x4c')],'attach':_0xa3713f[_0x0fb3('0x4d')]?_0xa3713f[_0x0fb3('0x4d')]:_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x4d')],'substatus':null,'substatusAt':moment()[_0x0fb3('0x4e')](_0x0fb3('0x4f')),'lastMsgAt':moment()['format'](_0x0fb3('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x10ea57[_0x0fb3('0x29')]['body']});}else{return _0xa3713f;}}})['then'](function(_0x4e4e73){_0x11f44b[_0x0fb3('0x57')]=_0x4e4e73[_0x0fb3('0x58')]({'plain':!![]});_0x11f44b[_0x0fb3('0x57')][_0x0fb3('0x59')]=_0x19384f;return db['MailMessage'][_0x0fb3('0x48')]({'body':_0x10ea57['body'][_0x0fb3('0x29')],'MailAccountId':_0x10ea57[_0x0fb3('0x41')]['id'],'MailInteractionId':_0x4e4e73['id'],'direction':'in','ContactId':_0x11f44b[_0x0fb3('0x4a')]['id'],'messageId':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x4b')],'from':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x32')],'to':_0x10ea57['body']['message']['to'],'cc':_0x10ea57['body'][_0x0fb3('0x19')]['cc'],'subject':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x4c')],'attach':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x4d')],'Attachments':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')]['attachments'],'originTo':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')]['originTo'],'originCc':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')]['originCc'],'bcc':_0x10ea57[_0x0fb3('0x29')][_0x0fb3('0x19')][_0x0fb3('0x5a')]},{'include':[{'model':db[_0x0fb3('0x5b')],'as':_0x0fb3('0x5c')}]});})[_0x0fb3('0x11')](function(_0x5cf0e8){_0x11f44b[_0x0fb3('0x19')]=_0x5cf0e8;if(_0x11f44b[_0x0fb3('0x57')][_0x0fb3('0x5d')]){return db[_0x0fb3('0x5e')][_0x0fb3('0x27')]({'attributes':['id',_0x0fb3('0x5f')],'where':{'id':_0x11f44b[_0x0fb3('0x57')][_0x0fb3('0x5d')]}})[_0x0fb3('0x11')](function(_0x250a8c){if(_0x250a8c){_0x11f44b['applications'][_0x0fb3('0x60')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x250a8c['name']+','+(_0x11f44b[_0x0fb3('0x41')][_0x0fb3('0x61')]||0xa),'interval':_0x0fb3('0x46')});}return respondWithRpcPromise(_0x0fb3('0x62'),_0x0fb3('0x63'),_0x11f44b);});}return respondWithRpcPromise(_0x0fb3('0x62'),_0x0fb3('0x63'),_0x11f44b);})['then'](function(_0x1043d5){_0x20e4c3(_0x1043d5);})['catch'](function(_0x4f9907){_0xbcb722(_0x219997[_0x0fb3('0x16')](0x1f4,_0x4f9907[_0x0fb3('0x19')]));});});};