Built motion from commit (unavailable).|2.5.9
[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 _0x76dc=['waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','http','redis','localhost','socket.io-emitter','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetMailAccount','findAll','options','raw','where','attributes','limit','include','map','model','catch','ShowMailAccount','find','body','mail','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','CmContact','Contacts','DESC','MailApplication','Smtp','omit','applications','Applications','orderBy','priority','asc','autoclose','length','close','*,*,*,*','defaults','List\x20not\x20found','contact','messageId','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','inReplyTo','create','update','interaction','get','created','MailMessage','attachments','originTo','originCc','bcc','Attachment','UserId','name','unshift','agent'];(function(_0x5ff017,_0x3f1149){var _0x989609=function(_0x1bf226){while(--_0x1bf226){_0x5ff017['push'](_0x5ff017['shift']());}};_0x989609(++_0x3f1149);}(_0x76dc,0x1f2));var _0xc76d=function(_0x389174,_0x3066ba){_0x389174=_0x389174-0x0;var _0x56aea8=_0x76dc[_0x389174];return _0x56aea8;};'use strict';var _=require(_0xc76d('0x0'));var util=require(_0xc76d('0x1'));var moment=require(_0xc76d('0x2'));var BPromise=require(_0xc76d('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc76d('0x4'));var db=require(_0xc76d('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xc76d('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0xc76d('0x7'));var client=jayson[_0xc76d('0x8')][_0xc76d('0x9')]({'port':0x232c});config['redis']=_['defaults'](config[_0xc76d('0xa')],{'host':_0xc76d('0xb'),'port':0x18eb});var socket=require(_0xc76d('0xc'))(new Redis(config['redis']));require('./mailAccount.socket')[_0xc76d('0xd')](socket);function respondWithRpcPromise(_0x2f81bd,_0x4d625c,_0x39a47f){return new BPromise(function(_0x583e46,_0xd5c042){return client[_0xc76d('0xe')](_0x2f81bd,_0x39a47f)[_0xc76d('0xf')](function(_0x95e06b){logger[_0xc76d('0x10')](_0xc76d('0x11'),_0x4d625c,_0xc76d('0x12'));logger[_0xc76d('0x13')](_0xc76d('0x14'),_0x4d625c,_0xc76d('0x12'),JSON[_0xc76d('0x15')](_0x95e06b));if(_0x95e06b[_0xc76d('0x16')]){if(_0x95e06b[_0xc76d('0x16')][_0xc76d('0x17')]===0x1f4){logger['error'](_0xc76d('0x11'),_0x4d625c,_0x95e06b[_0xc76d('0x16')]['message']);return _0xd5c042(_0x95e06b[_0xc76d('0x16')][_0xc76d('0x18')]);}logger[_0xc76d('0x16')](_0xc76d('0x11'),_0x4d625c,_0x95e06b['error'][_0xc76d('0x18')]);return _0x583e46(_0x95e06b['error']['message']);}else{logger[_0xc76d('0x10')](_0xc76d('0x11'),_0x4d625c,_0xc76d('0x12'));_0x583e46(_0x95e06b[_0xc76d('0x19')][_0xc76d('0x18')]);}})['catch'](function(_0x20a078){logger[_0xc76d('0x16')](_0xc76d('0x11'),_0x4d625c,_0x20a078);_0xd5c042(_0x20a078);});});}exports[_0xc76d('0x1a')]=function(_0x2181dd){var _0x48de43=this;return new Promise(function(_0x336f6c,_0x324db7){return db['MailAccount'][_0xc76d('0x1b')]({'raw':_0x2181dd[_0xc76d('0x1c')]?_0x2181dd[_0xc76d('0x1c')][_0xc76d('0x1d')]===undefined?!![]:![]:!![],'where':_0x2181dd[_0xc76d('0x1c')]?_0x2181dd[_0xc76d('0x1c')][_0xc76d('0x1e')]||null:null,'attributes':_0x2181dd[_0xc76d('0x1c')]?_0x2181dd[_0xc76d('0x1c')][_0xc76d('0x1f')]||null:null,'limit':_0x2181dd[_0xc76d('0x1c')]?_0x2181dd['options'][_0xc76d('0x20')]||null:null,'include':_0x2181dd[_0xc76d('0x1c')]?_0x2181dd['options'][_0xc76d('0x21')]?_[_0xc76d('0x22')](_0x2181dd['options'][_0xc76d('0x21')],function(_0x476aee){return{'model':db[_0x476aee[_0xc76d('0x23')]],'as':_0x476aee['as'],'attributes':_0x476aee[_0xc76d('0x1f')],'include':_0x476aee[_0xc76d('0x21')]?_[_0xc76d('0x22')](_0x476aee[_0xc76d('0x21')],function(_0x59ebd1){return{'model':db[_0x59ebd1['model']],'as':_0x59ebd1['as'],'attributes':_0x59ebd1[_0xc76d('0x1f')],'include':_0x59ebd1[_0xc76d('0x21')]?_['map'](_0x59ebd1[_0xc76d('0x21')],function(_0x52a79a){return{'model':db[_0x52a79a[_0xc76d('0x23')]],'as':_0x52a79a['as'],'attributes':_0x52a79a['attributes']};}):[]};}):[]};}):[]:[]})[_0xc76d('0xf')](function(_0x5cf2e4){logger[_0xc76d('0x10')](_0xc76d('0x1a'),_0x2181dd);logger['debug'](_0xc76d('0x1a'),_0x2181dd,JSON[_0xc76d('0x15')](_0x5cf2e4));_0x336f6c(_0x5cf2e4);})[_0xc76d('0x24')](function(_0x2cf501){logger['error'](_0xc76d('0x1a'),_0x2cf501['message'],_0x2181dd);_0x324db7(_0x48de43[_0xc76d('0x16')](0x1f4,_0x2cf501['message']));});});};exports[_0xc76d('0x25')]=function(_0x39127c){var _0x5dc369=this;return new Promise(function(_0x4b4dfc,_0x5eca19){return db['MailAccount'][_0xc76d('0x26')]({'raw':_0x39127c[_0xc76d('0x1c')]?_0x39127c[_0xc76d('0x1c')][_0xc76d('0x1d')]===undefined?!![]:![]:!![],'where':_0x39127c[_0xc76d('0x1c')]?_0x39127c['options'][_0xc76d('0x1e')]||null:null,'attributes':_0x39127c['options']?_0x39127c[_0xc76d('0x1c')]['attributes']||null:null,'include':_0x39127c[_0xc76d('0x1c')]?_0x39127c[_0xc76d('0x1c')][_0xc76d('0x21')]?_[_0xc76d('0x22')](_0x39127c[_0xc76d('0x1c')]['include'],function(_0xc2765c){return{'model':db[_0xc2765c[_0xc76d('0x23')]],'as':_0xc2765c['as'],'attributes':_0xc2765c[_0xc76d('0x1f')],'include':_0xc2765c['include']?_[_0xc76d('0x22')](_0xc2765c[_0xc76d('0x21')],function(_0x46589c){return{'model':db[_0x46589c['model']],'as':_0x46589c['as'],'attributes':_0x46589c[_0xc76d('0x1f')],'include':_0x46589c[_0xc76d('0x21')]?_[_0xc76d('0x22')](_0x46589c[_0xc76d('0x21')],function(_0x41fcc2){return{'model':db[_0x41fcc2[_0xc76d('0x23')]],'as':_0x41fcc2['as'],'attributes':_0x41fcc2['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x3e8603){logger['info'](_0xc76d('0x25'),_0x39127c);logger[_0xc76d('0x13')](_0xc76d('0x25'),_0x39127c,JSON[_0xc76d('0x15')](_0x3e8603));_0x4b4dfc(_0x3e8603);})['catch'](function(_0x581186){logger[_0xc76d('0x16')](_0xc76d('0x25'),_0x581186[_0xc76d('0x18')],_0x39127c);_0x5eca19(_0x5dc369[_0xc76d('0x16')](0x1f4,_0x581186[_0xc76d('0x18')]));});});};exports['NotifyMailAccount']=function(_0x42404c){var _0xb264b0=this;return new Promise(function(_0x321989,_0x405bc5){var _0x3eab5c={'body':_0x42404c[_0xc76d('0x27')],'channel':_0xc76d('0x28')};var _0x341094=_[_0xc76d('0x29')](_[_0xc76d('0x2a')](db['CmContact']['rawAttributes']),[_0xc76d('0x2b'),_0xc76d('0x2c'),_0xc76d('0x2d'),_0xc76d('0x2e')]);var _0x4ae994=![];if(_0x42404c['body']['id']){delete _0x42404c[_0xc76d('0x27')]['id'];}if(_[_0xc76d('0x2f')](_0x42404c[_0xc76d('0x27')][_0xc76d('0x30')])){return _0x405bc5(_0xb264b0[_0xc76d('0x16')](0x1f4,_0xc76d('0x31')));}if(_[_0xc76d('0x2f')](_0x42404c[_0xc76d('0x27')]['body'])||_0x42404c[_0xc76d('0x27')][_0xc76d('0x27')]===''){return _0x405bc5(_0xb264b0[_0xc76d('0x16')](0x1f4,_0xc76d('0x32')));}if(_['isNil'](_0x42404c['body']['mapKey'])){return _0x405bc5(_0xb264b0['error'](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x341094));}if(!_['includes'](_0x341094,_0x42404c['body'][_0xc76d('0x33')])){return _0x405bc5(_0xb264b0[_0xc76d('0x16')](0x1f4,_0xc76d('0x34')+_0x341094));}var _0x12cd41={};_0x12cd41[_0x42404c[_0xc76d('0x27')][_0xc76d('0x33')]]=_0x42404c[_0xc76d('0x27')][_0xc76d('0x30')];return db['MailAccount'][_0xc76d('0x26')]({'where':{'id':_0x42404c[_0xc76d('0x35')]['id']},'include':[{'model':db[_0xc76d('0x36')],'as':_0xc76d('0x37'),'include':[{'model':db[_0xc76d('0x38')],'as':_0xc76d('0x39'),'where':_0x12cd41,'limit':0x1,'order':[[_0xc76d('0x2c'),_0xc76d('0x3a')]]}]},{'model':db[_0xc76d('0x3b')],'as':'Applications'},{'model':db['MailServerOut'],'as':_0xc76d('0x3c')}]})[_0xc76d('0xf')](function(_0x2fa905){if(_0x2fa905&&_0x2fa905[_0xc76d('0x37')]){var _0x137d87=_0x2fa905['get']({'plain':!![]});_0x3eab5c[_0xc76d('0x35')]=_[_0xc76d('0x3d')](_0x137d87,['Applications','List']);_0x3eab5c[_0xc76d('0x3e')]=_0x137d87[_0xc76d('0x3f')];_0x3eab5c['list']=_0x137d87[_0xc76d('0x37')];_0x3eab5c[_0xc76d('0x3e')]=_[_0xc76d('0x40')](_0x3eab5c[_0xc76d('0x3e')],[_0xc76d('0x41')],[_0xc76d('0x42')]);if(_0x3eab5c[_0xc76d('0x35')]&&_0x3eab5c[_0xc76d('0x35')][_0xc76d('0x43')]){_0x3eab5c[_0xc76d('0x3e')]['push']({'id':0x0,'priority':_0x3eab5c[_0xc76d('0x3e')][_0xc76d('0x44')]+0x1,'app':_0xc76d('0x45'),'appdata':'autoclose','interval':_0xc76d('0x46')});}if(_0x3eab5c[_0xc76d('0x35')]['Applications']){delete _0x3eab5c[_0xc76d('0x35')]['Applications'];}if(_0x3eab5c[_0xc76d('0x35')][_0xc76d('0x37')]){delete _0x3eab5c[_0xc76d('0x35')][_0xc76d('0x37')];}if(_0x137d87[_0xc76d('0x37')]['Contacts']['length']){return _0x137d87['List'][_0xc76d('0x39')][0x0];}var _0x746759=_[_0xc76d('0x47')](_0x42404c[_0xc76d('0x27')],{'firstName':_0x42404c[_0xc76d('0x27')][_0xc76d('0x30')],'ListId':_0x137d87['ListId']});_0x746759[_0x42404c[_0xc76d('0x27')][_0xc76d('0x33')]]=_0x42404c[_0xc76d('0x27')][_0xc76d('0x30')];return db[_0xc76d('0x38')]['create'](_0x746759);}else{throw new Error(_0xc76d('0x48'));}})[_0xc76d('0xf')](function(_0x444017){_0x3eab5c[_0xc76d('0x49')]=_0x444017;if(_0x444017){if(!_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')]['messageId']){_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')]['messageId']=rs['generate']()+'\x20'+_0x42404c[_0xc76d('0x27')]['message'][_0xc76d('0x30')];}var _0x41e514={'ContactId':_0x444017['id'],'MailAccountId':_0x42404c[_0xc76d('0x35')]['id'],'inReplyTo':_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')][_0xc76d('0x4a')],'to':_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')][_0xc76d('0x30')],'cc':_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')]['cc'],'subject':_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')][_0xc76d('0x4b')],'attach':_0x42404c['body'][_0xc76d('0x18')][_0xc76d('0x4c')],'lastMsgAt':moment()[_0xc76d('0x4d')](_0xc76d('0x4e')),'lastMsgDirection':'in','lastMsgBody':_0x42404c[_0xc76d('0x27')]['body']};return db[_0xc76d('0x4f')][_0xc76d('0x26')]({'where':{'closed':![],'MailAccountId':_0x42404c['account']['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':[_0xc76d('0x4a')],'where':{'messageId':_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')][_0xc76d('0x50')]}}]})[_0xc76d('0xf')](function(_0x37e9a3){if(_0x37e9a3){return[_0x37e9a3,![]];}return db[_0xc76d('0x4f')][_0xc76d('0x51')](_0x41e514)['then'](function(_0x4b5432){return[_0x4b5432,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x3f4dd1,_0x18edae){if(_0x3f4dd1){_0x4ae994=_0x18edae;if(!_0x18edae){return _0x3f4dd1[_0xc76d('0x52')]({'inReplyTo':_0x42404c['body'][_0xc76d('0x18')]['messageId'],'to':_0x42404c['body']['message'][_0xc76d('0x30')],'cc':_0x42404c[_0xc76d('0x27')]['message']['cc'],'subject':_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')][_0xc76d('0x4b')],'attach':_0x3f4dd1[_0xc76d('0x4c')]?_0x3f4dd1[_0xc76d('0x4c')]:_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')]['attach'],'substatus':null,'substatusAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0xc76d('0x4d')](_0xc76d('0x4e')),'lastMsgDirection':'in','lastMsgBody':_0x42404c[_0xc76d('0x27')][_0xc76d('0x27')]});}else{return _0x3f4dd1;}}})[_0xc76d('0xf')](function(_0x49f876){_0x3eab5c[_0xc76d('0x53')]=_0x49f876[_0xc76d('0x54')]({'plain':!![]});_0x3eab5c[_0xc76d('0x53')][_0xc76d('0x55')]=_0x4ae994;return db[_0xc76d('0x56')][_0xc76d('0x51')]({'body':_0x42404c[_0xc76d('0x27')][_0xc76d('0x27')],'MailAccountId':_0x42404c['account']['id'],'MailInteractionId':_0x49f876['id'],'direction':'in','ContactId':_0x3eab5c[_0xc76d('0x49')]['id'],'messageId':_0x42404c['body'][_0xc76d('0x18')][_0xc76d('0x4a')],'from':_0x42404c[_0xc76d('0x27')][_0xc76d('0x18')]['from'],'to':_0x42404c[_0xc76d('0x27')]['message']['to'],'cc':_0x42404c['body'][_0xc76d('0x18')]['cc'],'subject':_0x42404c[_0xc76d('0x27')]['message'][_0xc76d('0x4b')],'attach':_0x42404c[_0xc76d('0x27')]['message'][_0xc76d('0x4c')],'Attachments':_0x42404c[_0xc76d('0x27')]['message'][_0xc76d('0x57')],'originTo':_0x42404c['body'][_0xc76d('0x18')][_0xc76d('0x58')],'originCc':_0x42404c['body'][_0xc76d('0x18')][_0xc76d('0x59')],'bcc':_0x42404c['body'][_0xc76d('0x18')][_0xc76d('0x5a')]},{'include':[{'model':db[_0xc76d('0x5b')],'as':'Attachments'}]});})[_0xc76d('0xf')](function(_0x52bf73){_0x3eab5c['message']=_0x52bf73;if(_0x3eab5c[_0xc76d('0x53')][_0xc76d('0x5c')]){return db['User'][_0xc76d('0x26')]({'attributes':['id',_0xc76d('0x5d')],'where':{'id':_0x3eab5c[_0xc76d('0x53')][_0xc76d('0x5c')]}})[_0xc76d('0xf')](function(_0x1d3582){if(_0x1d3582){_0x3eab5c[_0xc76d('0x3e')][_0xc76d('0x5e')]({'id':0x0,'priority':0x0,'app':_0xc76d('0x5f'),'appdata':_0x1d3582[_0xc76d('0x5d')]+','+(_0x3eab5c[_0xc76d('0x35')][_0xc76d('0x60')]||0xa),'interval':_0xc76d('0x46')});}return respondWithRpcPromise(_0xc76d('0x61'),_0xc76d('0x62'),_0x3eab5c);});}return respondWithRpcPromise(_0xc76d('0x61'),_0xc76d('0x62'),_0x3eab5c);})[_0xc76d('0xf')](function(_0x12eecb){_0x321989(_0x12eecb);})[_0xc76d('0x24')](function(_0x5b9e24){_0x405bc5(_0xb264b0[_0xc76d('0x16')](0x1f4,_0x5b9e24[_0xc76d('0x18')]));});});};