Built motion from commit (unavailable).|2.5.15
[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 _0xd49c=['./mailAccount.socket','request','then','info','MailAccount,\x20%s,\x20%s','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetMailAccount','MailAccount','findAll','options','raw','attributes','limit','include','map','model','debug','find','where','ShowMailAccount','body','difference','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','from','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','DESC','MailApplication','Applications','MailServerOut','get','account','omit','list','applications','orderBy','autoclose','push','length','*,*,*,*','List\x20not\x20found','messageId','generate','subject','attach','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','Messages','spread','update','format','interaction','created','MailMessage','attachments','originCc','bcc','Attachment','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','util','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter'];(function(_0x180ed5,_0x3c6178){var _0x5ee75e=function(_0x5b3b8e){while(--_0x5b3b8e){_0x180ed5['push'](_0x180ed5['shift']());}};_0x5ee75e(++_0x3c6178);}(_0xd49c,0x1d8));var _0xcd49=function(_0xe094a9,_0x3ab253){_0xe094a9=_0xe094a9-0x0;var _0x236206=_0xd49c[_0xe094a9];return _0x236206;};'use strict';var _=require('lodash');var util=require(_0xcd49('0x0'));var moment=require('moment');var BPromise=require(_0xcd49('0x1'));var rs=require(_0xcd49('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xcd49('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xcd49('0x4'))('rpc');var config=require(_0xcd49('0x5'));var jayson=require(_0xcd49('0x6'));var client=jayson[_0xcd49('0x7')][_0xcd49('0x8')]({'port':0x232c});config[_0xcd49('0x9')]=_[_0xcd49('0xa')](config[_0xcd49('0x9')],{'host':_0xcd49('0xb'),'port':0x18eb});var socket=require(_0xcd49('0xc'))(new Redis(config[_0xcd49('0x9')]));require(_0xcd49('0xd'))['register'](socket);function respondWithRpcPromise(_0xd64330,_0x14dd47,_0x1dc7ad){return new BPromise(function(_0x34b748,_0x313c27){return client[_0xcd49('0xe')](_0xd64330,_0x1dc7ad)[_0xcd49('0xf')](function(_0x40849c){logger[_0xcd49('0x10')](_0xcd49('0x11'),_0x14dd47,'request\x20sent');logger['debug'](_0xcd49('0x12'),_0x14dd47,_0xcd49('0x13'),JSON[_0xcd49('0x14')](_0x40849c));if(_0x40849c['error']){if(_0x40849c[_0xcd49('0x15')][_0xcd49('0x16')]===0x1f4){logger['error'](_0xcd49('0x11'),_0x14dd47,_0x40849c[_0xcd49('0x15')][_0xcd49('0x17')]);return _0x313c27(_0x40849c[_0xcd49('0x15')][_0xcd49('0x17')]);}logger[_0xcd49('0x15')]('MailAccount,\x20%s,\x20%s',_0x14dd47,_0x40849c['error']['message']);return _0x34b748(_0x40849c['error'][_0xcd49('0x17')]);}else{logger[_0xcd49('0x10')](_0xcd49('0x11'),_0x14dd47,'request\x20sent');_0x34b748(_0x40849c[_0xcd49('0x18')][_0xcd49('0x17')]);}})[_0xcd49('0x19')](function(_0x48fd54){logger[_0xcd49('0x15')](_0xcd49('0x11'),_0x14dd47,_0x48fd54);_0x313c27(_0x48fd54);});});}exports[_0xcd49('0x1a')]=function(_0x3bf018){var _0x1c9829=this;return new Promise(function(_0x4700f1,_0x1c40a6){return db[_0xcd49('0x1b')][_0xcd49('0x1c')]({'raw':_0x3bf018['options']?_0x3bf018[_0xcd49('0x1d')][_0xcd49('0x1e')]===undefined?!![]:![]:!![],'where':_0x3bf018[_0xcd49('0x1d')]?_0x3bf018['options']['where']||null:null,'attributes':_0x3bf018['options']?_0x3bf018[_0xcd49('0x1d')][_0xcd49('0x1f')]||null:null,'limit':_0x3bf018['options']?_0x3bf018[_0xcd49('0x1d')][_0xcd49('0x20')]||null:null,'include':_0x3bf018[_0xcd49('0x1d')]?_0x3bf018['options'][_0xcd49('0x21')]?_[_0xcd49('0x22')](_0x3bf018['options'][_0xcd49('0x21')],function(_0x22c0ed){return{'model':db[_0x22c0ed['model']],'as':_0x22c0ed['as'],'attributes':_0x22c0ed[_0xcd49('0x1f')],'include':_0x22c0ed[_0xcd49('0x21')]?_[_0xcd49('0x22')](_0x22c0ed[_0xcd49('0x21')],function(_0xe6ff0a){return{'model':db[_0xe6ff0a[_0xcd49('0x23')]],'as':_0xe6ff0a['as'],'attributes':_0xe6ff0a[_0xcd49('0x1f')],'include':_0xe6ff0a[_0xcd49('0x21')]?_[_0xcd49('0x22')](_0xe6ff0a[_0xcd49('0x21')],function(_0x442c26){return{'model':db[_0x442c26['model']],'as':_0x442c26['as'],'attributes':_0x442c26[_0xcd49('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x43a448){logger[_0xcd49('0x10')]('GetMailAccount',_0x3bf018);logger[_0xcd49('0x24')](_0xcd49('0x1a'),_0x3bf018,JSON['stringify'](_0x43a448));_0x4700f1(_0x43a448);})[_0xcd49('0x19')](function(_0x56e911){logger[_0xcd49('0x15')](_0xcd49('0x1a'),_0x56e911[_0xcd49('0x17')],_0x3bf018);_0x1c40a6(_0x1c9829[_0xcd49('0x15')](0x1f4,_0x56e911['message']));});});};exports['ShowMailAccount']=function(_0x1bd356){var _0x425ee4=this;return new Promise(function(_0x2abbc3,_0xfee4a8){return db[_0xcd49('0x1b')][_0xcd49('0x25')]({'raw':_0x1bd356[_0xcd49('0x1d')]?_0x1bd356[_0xcd49('0x1d')][_0xcd49('0x1e')]===undefined?!![]:![]:!![],'where':_0x1bd356[_0xcd49('0x1d')]?_0x1bd356[_0xcd49('0x1d')][_0xcd49('0x26')]||null:null,'attributes':_0x1bd356[_0xcd49('0x1d')]?_0x1bd356['options'][_0xcd49('0x1f')]||null:null,'include':_0x1bd356[_0xcd49('0x1d')]?_0x1bd356['options']['include']?_[_0xcd49('0x22')](_0x1bd356[_0xcd49('0x1d')]['include'],function(_0x2a2608){return{'model':db[_0x2a2608[_0xcd49('0x23')]],'as':_0x2a2608['as'],'attributes':_0x2a2608[_0xcd49('0x1f')],'include':_0x2a2608[_0xcd49('0x21')]?_[_0xcd49('0x22')](_0x2a2608[_0xcd49('0x21')],function(_0x3ba4fe){return{'model':db[_0x3ba4fe['model']],'as':_0x3ba4fe['as'],'attributes':_0x3ba4fe[_0xcd49('0x1f')],'include':_0x3ba4fe[_0xcd49('0x21')]?_[_0xcd49('0x22')](_0x3ba4fe[_0xcd49('0x21')],function(_0x16103c){return{'model':db[_0x16103c[_0xcd49('0x23')]],'as':_0x16103c['as'],'attributes':_0x16103c['attributes']};}):[]};}):[]};}):[]:[]})[_0xcd49('0xf')](function(_0x3e4121){logger[_0xcd49('0x10')]('ShowMailAccount',_0x1bd356);logger[_0xcd49('0x24')](_0xcd49('0x27'),_0x1bd356,JSON[_0xcd49('0x14')](_0x3e4121));_0x2abbc3(_0x3e4121);})[_0xcd49('0x19')](function(_0x44a2a0){logger[_0xcd49('0x15')](_0xcd49('0x27'),_0x44a2a0[_0xcd49('0x17')],_0x1bd356);_0xfee4a8(_0x425ee4[_0xcd49('0x15')](0x1f4,_0x44a2a0[_0xcd49('0x17')]));});});};exports['NotifyMailAccount']=function(_0x4c2103){var _0x2e3d84=this;return new Promise(function(_0x46a356,_0x3655c2){var _0x424e82={'body':_0x4c2103[_0xcd49('0x28')],'channel':'mail'};var _0x2797a1=_[_0xcd49('0x29')](_['keys'](db[_0xcd49('0x2a')][_0xcd49('0x2b')]),[_0xcd49('0x2c'),_0xcd49('0x2d'),_0xcd49('0x2e'),_0xcd49('0x2f')]);var _0x3f4046=![];if(_0x4c2103['body']['id']){delete _0x4c2103[_0xcd49('0x28')]['id'];}if(_['isNil'](_0x4c2103[_0xcd49('0x28')][_0xcd49('0x30')])){return _0x3655c2(_0x2e3d84['error'](0x1f4,_0xcd49('0x31')));}if(_[_0xcd49('0x32')](_0x4c2103['body'][_0xcd49('0x28')])||_0x4c2103['body'][_0xcd49('0x28')]===''){return _0x3655c2(_0x2e3d84[_0xcd49('0x15')](0x1f4,_0xcd49('0x33')));}if(_['isNil'](_0x4c2103[_0xcd49('0x28')]['mapKey'])){return _0x3655c2(_0x2e3d84['error'](0x1f4,_0xcd49('0x34')+_0x2797a1));}if(!_[_0xcd49('0x35')](_0x2797a1,_0x4c2103['body'][_0xcd49('0x36')])){return _0x3655c2(_0x2e3d84[_0xcd49('0x15')](0x1f4,_0xcd49('0x37')+_0x2797a1));}var _0x333f6e={};_0x333f6e[_0x4c2103[_0xcd49('0x28')]['mapKey']]=_0x4c2103[_0xcd49('0x28')][_0xcd49('0x30')];return db[_0xcd49('0x1b')][_0xcd49('0x25')]({'where':{'id':_0x4c2103['account']['id']},'include':[{'model':db[_0xcd49('0x38')],'as':_0xcd49('0x39'),'include':[{'model':db[_0xcd49('0x2a')],'as':_0xcd49('0x3a'),'where':_0x333f6e,'limit':0x1,'order':[[_0xcd49('0x2d'),_0xcd49('0x3b')]]}]},{'model':db[_0xcd49('0x3c')],'as':_0xcd49('0x3d')},{'model':db[_0xcd49('0x3e')],'as':'Smtp'}]})[_0xcd49('0xf')](function(_0x53b0db){if(_0x53b0db&&_0x53b0db[_0xcd49('0x39')]){var _0xa6dfc3=_0x53b0db[_0xcd49('0x3f')]({'plain':!![]});_0x424e82[_0xcd49('0x40')]=_[_0xcd49('0x41')](_0xa6dfc3,['Applications','List']);_0x424e82['applications']=_0xa6dfc3[_0xcd49('0x3d')];_0x424e82[_0xcd49('0x42')]=_0xa6dfc3['List'];_0x424e82[_0xcd49('0x43')]=_[_0xcd49('0x44')](_0x424e82[_0xcd49('0x43')],['priority'],['asc']);if(_0x424e82[_0xcd49('0x40')]&&_0x424e82['account'][_0xcd49('0x45')]){_0x424e82[_0xcd49('0x43')][_0xcd49('0x46')]({'id':0x0,'priority':_0x424e82[_0xcd49('0x43')][_0xcd49('0x47')]+0x1,'app':'close','appdata':_0xcd49('0x45'),'interval':_0xcd49('0x48')});}if(_0x424e82['account'][_0xcd49('0x3d')]){delete _0x424e82['account'][_0xcd49('0x3d')];}if(_0x424e82[_0xcd49('0x40')]['List']){delete _0x424e82[_0xcd49('0x40')][_0xcd49('0x39')];}if(_0xa6dfc3['List'][_0xcd49('0x3a')]['length']){return _0xa6dfc3[_0xcd49('0x39')][_0xcd49('0x3a')][0x0];}var _0x25067c=_[_0xcd49('0xa')](_0x4c2103['body'],{'firstName':_0x4c2103['body'][_0xcd49('0x30')],'ListId':_0xa6dfc3[_0xcd49('0x2f')]});_0x25067c[_0x4c2103[_0xcd49('0x28')][_0xcd49('0x36')]]=_0x4c2103[_0xcd49('0x28')]['from'];return db[_0xcd49('0x2a')]['create'](_0x25067c);}else{throw new Error(_0xcd49('0x49'));}})[_0xcd49('0xf')](function(_0xce7abd){_0x424e82['contact']=_0xce7abd;if(_0xce7abd){if(!_0x4c2103[_0xcd49('0x28')]['message'][_0xcd49('0x4a')]){_0x4c2103['body']['message'][_0xcd49('0x4a')]=rs[_0xcd49('0x4b')]()+'\x20'+_0x4c2103[_0xcd49('0x28')]['message'][_0xcd49('0x30')];}var _0x390124={'ContactId':_0xce7abd['id'],'MailAccountId':_0x4c2103['account']['id'],'inReplyTo':_0x4c2103['body'][_0xcd49('0x17')][_0xcd49('0x4a')],'to':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')]['from'],'cc':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')]['cc'],'subject':_0x4c2103['body'][_0xcd49('0x17')][_0xcd49('0x4c')],'attach':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')][_0xcd49('0x4d')],'lastMsgAt':moment()['format'](_0xcd49('0x4e')),'lastMsgDirection':'in','lastMsgBody':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x28')]};return db[_0xcd49('0x4f')][_0xcd49('0x25')]({'where':{'closed':![],'MailAccountId':_0x4c2103[_0xcd49('0x40')]['id']},'include':[{'model':db['MailMessage'],'as':_0xcd49('0x50'),'attributes':[_0xcd49('0x4a')],'where':{'messageId':_0x4c2103['body'][_0xcd49('0x17')]['inReplyTo']}}]})[_0xcd49('0xf')](function(_0x22ae14){if(_0x22ae14){return[_0x22ae14,![]];}return db[_0xcd49('0x4f')]['create'](_0x390124)[_0xcd49('0xf')](function(_0x304ee3){return[_0x304ee3,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xcd49('0x51')](function(_0x482adf,_0x52b00d){if(_0x482adf){_0x3f4046=_0x52b00d;if(!_0x52b00d){return _0x482adf[_0xcd49('0x52')]({'inReplyTo':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')][_0xcd49('0x4a')],'to':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')][_0xcd49('0x30')],'cc':_0x4c2103['body'][_0xcd49('0x17')]['cc'],'subject':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')]['subject'],'attach':_0x482adf[_0xcd49('0x4d')]?_0x482adf['attach']:_0x4c2103[_0xcd49('0x28')]['message'][_0xcd49('0x4d')],'substatus':null,'substatusAt':moment()['format'](_0xcd49('0x4e')),'lastMsgAt':moment()[_0xcd49('0x53')](_0xcd49('0x4e')),'lastMsgDirection':'in','lastMsgBody':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x28')]});}else{return _0x482adf;}}})['then'](function(_0x5d1014){_0x424e82[_0xcd49('0x54')]=_0x5d1014[_0xcd49('0x3f')]({'plain':!![]});_0x424e82['interaction'][_0xcd49('0x55')]=_0x3f4046;return db[_0xcd49('0x56')]['create']({'body':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x28')],'MailAccountId':_0x4c2103[_0xcd49('0x40')]['id'],'MailInteractionId':_0x5d1014['id'],'direction':'in','ContactId':_0x424e82['contact']['id'],'messageId':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')][_0xcd49('0x4a')],'from':_0x4c2103['body'][_0xcd49('0x17')][_0xcd49('0x30')],'to':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')]['to'],'cc':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')]['cc'],'subject':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')][_0xcd49('0x4c')],'attach':_0x4c2103['body'][_0xcd49('0x17')][_0xcd49('0x4d')],'Attachments':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')][_0xcd49('0x57')],'originTo':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')]['originTo'],'originCc':_0x4c2103[_0xcd49('0x28')][_0xcd49('0x17')][_0xcd49('0x58')],'bcc':_0x4c2103['body'][_0xcd49('0x17')][_0xcd49('0x59')]},{'include':[{'model':db[_0xcd49('0x5a')],'as':'Attachments'}]});})[_0xcd49('0xf')](function(_0x403cab){_0x424e82[_0xcd49('0x17')]=_0x403cab;if(_0x424e82['interaction']['UserId']){return db['User']['find']({'attributes':['id',_0xcd49('0x5b')],'where':{'id':_0x424e82[_0xcd49('0x54')]['UserId']}})[_0xcd49('0xf')](function(_0x4e4797){if(_0x4e4797){_0x424e82[_0xcd49('0x43')][_0xcd49('0x5c')]({'id':0x0,'priority':0x0,'app':_0xcd49('0x5d'),'appdata':_0x4e4797[_0xcd49('0x5b')]+','+(_0x424e82['account'][_0xcd49('0x5e')]||0xa),'interval':_0xcd49('0x48')});}return respondWithRpcPromise(_0xcd49('0x5f'),_0xcd49('0x60'),_0x424e82);});}return respondWithRpcPromise(_0xcd49('0x5f'),_0xcd49('0x60'),_0x424e82);})[_0xcd49('0xf')](function(_0x1c4194){_0x46a356(_0x1c4194);})[_0xcd49('0x19')](function(_0x9cfc0d){_0x3655c2(_0x2e3d84[_0xcd49('0x15')](0x1f4,_0x9cfc0d[_0xcd49('0x17')]));});});};