Built motion from commit (unavailable).|2.5.26
[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 _0xcfb6=['randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','redis','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','MailAccount','options','where','attributes','limit','include','map','model','GetMailAccount','debug','ShowMailAccount','find','raw','NotifyMailAccount','body','mail','difference','keys','CmContact','rawAttributes','createdAt','CompanyId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','updatedAt','DESC','Applications','get','account','omit','List','applications','asc','length','close','autoclose','*,*,*,*','create','contact','generate','messageId','subject','attach','format','MailMessage','Messages','inReplyTo','MailInteraction','Contact\x20not\x20found','update','YYYY-MM-DD\x20HH:mm:ss','interaction','created','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachments','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird'];(function(_0x5669e4,_0x3c309a){var _0xafeea3=function(_0x2d39d1){while(--_0x2d39d1){_0x5669e4['push'](_0x5669e4['shift']());}};_0xafeea3(++_0x3c309a);}(_0xcfb6,0x198));var _0x6cfb=function(_0x2c1114,_0x2a5c50){_0x2c1114=_0x2c1114-0x0;var _0x2b877c=_0xcfb6[_0x2c1114];return _0x2b877c;};'use strict';var _=require(_0x6cfb('0x0'));var util=require(_0x6cfb('0x1'));var moment=require(_0x6cfb('0x2'));var BPromise=require(_0x6cfb('0x3'));var rs=require(_0x6cfb('0x4'));var fs=require('fs');var Redis=require(_0x6cfb('0x5'));var db=require(_0x6cfb('0x6'))['db'];var utils=require(_0x6cfb('0x7'));var logger=require('../../config/logger')(_0x6cfb('0x8'));var config=require(_0x6cfb('0x9'));var jayson=require(_0x6cfb('0xa'));var client=jayson['client']['http']({'port':0x232c});config[_0x6cfb('0xb')]=_['defaults'](config['redis'],{'host':_0x6cfb('0xc'),'port':0x18eb});var socket=require(_0x6cfb('0xd'))(new Redis(config[_0x6cfb('0xb')]));require(_0x6cfb('0xe'))[_0x6cfb('0xf')](socket);function respondWithRpcPromise(_0x3af316,_0x2d4a2e,_0x1d84eb){return new BPromise(function(_0xec71b5,_0x580056){return client[_0x6cfb('0x10')](_0x3af316,_0x1d84eb)[_0x6cfb('0x11')](function(_0x5327cc){logger[_0x6cfb('0x12')](_0x6cfb('0x13'),_0x2d4a2e,_0x6cfb('0x14'));logger['debug'](_0x6cfb('0x15'),_0x2d4a2e,_0x6cfb('0x14'),JSON[_0x6cfb('0x16')](_0x5327cc));if(_0x5327cc[_0x6cfb('0x17')]){if(_0x5327cc['error'][_0x6cfb('0x18')]===0x1f4){logger[_0x6cfb('0x17')]('MailAccount,\x20%s,\x20%s',_0x2d4a2e,_0x5327cc['error'][_0x6cfb('0x19')]);return _0x580056(_0x5327cc['error'][_0x6cfb('0x19')]);}logger[_0x6cfb('0x17')](_0x6cfb('0x13'),_0x2d4a2e,_0x5327cc['error']['message']);return _0xec71b5(_0x5327cc['error'][_0x6cfb('0x19')]);}else{logger['info'](_0x6cfb('0x13'),_0x2d4a2e,_0x6cfb('0x14'));_0xec71b5(_0x5327cc['result'][_0x6cfb('0x19')]);}})[_0x6cfb('0x1a')](function(_0x2616b1){logger[_0x6cfb('0x17')](_0x6cfb('0x13'),_0x2d4a2e,_0x2616b1);_0x580056(_0x2616b1);});});}exports['GetMailAccount']=function(_0x3b8cf1){var _0x106719=this;return new Promise(function(_0xd32abf,_0x1e906a){return db[_0x6cfb('0x1b')]['findAll']({'raw':_0x3b8cf1['options']?_0x3b8cf1['options']['raw']===undefined?!![]:![]:!![],'where':_0x3b8cf1['options']?_0x3b8cf1[_0x6cfb('0x1c')][_0x6cfb('0x1d')]||null:null,'attributes':_0x3b8cf1['options']?_0x3b8cf1[_0x6cfb('0x1c')][_0x6cfb('0x1e')]||null:null,'limit':_0x3b8cf1[_0x6cfb('0x1c')]?_0x3b8cf1['options'][_0x6cfb('0x1f')]||null:null,'include':_0x3b8cf1[_0x6cfb('0x1c')]?_0x3b8cf1[_0x6cfb('0x1c')][_0x6cfb('0x20')]?_[_0x6cfb('0x21')](_0x3b8cf1[_0x6cfb('0x1c')][_0x6cfb('0x20')],function(_0x100fe5){return{'model':db[_0x100fe5[_0x6cfb('0x22')]],'as':_0x100fe5['as'],'attributes':_0x100fe5[_0x6cfb('0x1e')],'include':_0x100fe5[_0x6cfb('0x20')]?_['map'](_0x100fe5[_0x6cfb('0x20')],function(_0x567029){return{'model':db[_0x567029[_0x6cfb('0x22')]],'as':_0x567029['as'],'attributes':_0x567029[_0x6cfb('0x1e')],'include':_0x567029[_0x6cfb('0x20')]?_[_0x6cfb('0x21')](_0x567029[_0x6cfb('0x20')],function(_0x478676){return{'model':db[_0x478676['model']],'as':_0x478676['as'],'attributes':_0x478676[_0x6cfb('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1631eb){logger[_0x6cfb('0x12')](_0x6cfb('0x23'),_0x3b8cf1);logger[_0x6cfb('0x24')]('GetMailAccount',_0x3b8cf1,JSON[_0x6cfb('0x16')](_0x1631eb));_0xd32abf(_0x1631eb);})[_0x6cfb('0x1a')](function(_0x4893ed){logger[_0x6cfb('0x17')](_0x6cfb('0x23'),_0x4893ed[_0x6cfb('0x19')],_0x3b8cf1);_0x1e906a(_0x106719[_0x6cfb('0x17')](0x1f4,_0x4893ed[_0x6cfb('0x19')]));});});};exports[_0x6cfb('0x25')]=function(_0x4eaeb3){var _0x39bbfa=this;return new Promise(function(_0x1ffa71,_0x59fef3){return db['MailAccount'][_0x6cfb('0x26')]({'raw':_0x4eaeb3[_0x6cfb('0x1c')]?_0x4eaeb3[_0x6cfb('0x1c')][_0x6cfb('0x27')]===undefined?!![]:![]:!![],'where':_0x4eaeb3[_0x6cfb('0x1c')]?_0x4eaeb3[_0x6cfb('0x1c')][_0x6cfb('0x1d')]||null:null,'attributes':_0x4eaeb3[_0x6cfb('0x1c')]?_0x4eaeb3[_0x6cfb('0x1c')][_0x6cfb('0x1e')]||null:null,'include':_0x4eaeb3[_0x6cfb('0x1c')]?_0x4eaeb3['options'][_0x6cfb('0x20')]?_[_0x6cfb('0x21')](_0x4eaeb3[_0x6cfb('0x1c')][_0x6cfb('0x20')],function(_0x4dfb56){return{'model':db[_0x4dfb56[_0x6cfb('0x22')]],'as':_0x4dfb56['as'],'attributes':_0x4dfb56[_0x6cfb('0x1e')],'include':_0x4dfb56['include']?_[_0x6cfb('0x21')](_0x4dfb56[_0x6cfb('0x20')],function(_0xac396a){return{'model':db[_0xac396a[_0x6cfb('0x22')]],'as':_0xac396a['as'],'attributes':_0xac396a['attributes'],'include':_0xac396a[_0x6cfb('0x20')]?_[_0x6cfb('0x21')](_0xac396a[_0x6cfb('0x20')],function(_0x1f06e1){return{'model':db[_0x1f06e1[_0x6cfb('0x22')]],'as':_0x1f06e1['as'],'attributes':_0x1f06e1['attributes']};}):[]};}):[]};}):[]:[]})[_0x6cfb('0x11')](function(_0x137c02){logger[_0x6cfb('0x12')](_0x6cfb('0x25'),_0x4eaeb3);logger[_0x6cfb('0x24')]('ShowMailAccount',_0x4eaeb3,JSON[_0x6cfb('0x16')](_0x137c02));_0x1ffa71(_0x137c02);})[_0x6cfb('0x1a')](function(_0x121790){logger[_0x6cfb('0x17')]('ShowMailAccount',_0x121790[_0x6cfb('0x19')],_0x4eaeb3);_0x59fef3(_0x39bbfa[_0x6cfb('0x17')](0x1f4,_0x121790[_0x6cfb('0x19')]));});});};exports[_0x6cfb('0x28')]=function(_0x38e21b){var _0x55dcf0=this;return new Promise(function(_0x41639d,_0x56294b){var _0x29c89a={'body':_0x38e21b[_0x6cfb('0x29')],'channel':_0x6cfb('0x2a')};var _0x48472a=_[_0x6cfb('0x2b')](_[_0x6cfb('0x2c')](db[_0x6cfb('0x2d')][_0x6cfb('0x2e')]),[_0x6cfb('0x2f'),'updatedAt',_0x6cfb('0x30'),'ListId']);var _0xd7e86c=![];if(_0x38e21b[_0x6cfb('0x29')]['id']){delete _0x38e21b[_0x6cfb('0x29')]['id'];}if(_[_0x6cfb('0x31')](_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x32')])){return _0x56294b(_0x55dcf0[_0x6cfb('0x17')](0x1f4,_0x6cfb('0x33')));}if(_[_0x6cfb('0x31')](_0x38e21b['body'][_0x6cfb('0x29')])||_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x29')]===''){return _0x56294b(_0x55dcf0[_0x6cfb('0x17')](0x1f4,_0x6cfb('0x34')));}if(_[_0x6cfb('0x31')](_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x35')])){return _0x56294b(_0x55dcf0[_0x6cfb('0x17')](0x1f4,_0x6cfb('0x36')+_0x48472a));}if(!_[_0x6cfb('0x37')](_0x48472a,_0x38e21b['body'][_0x6cfb('0x35')])){return _0x56294b(_0x55dcf0[_0x6cfb('0x17')](0x1f4,_0x6cfb('0x38')+_0x48472a));}var _0x3ce0d4={};_0x3ce0d4[_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x35')]]=_0x38e21b[_0x6cfb('0x29')]['from'];return db[_0x6cfb('0x1b')][_0x6cfb('0x26')]({'where':{'id':_0x38e21b['account']['id']},'include':[{'model':db[_0x6cfb('0x39')],'as':'List','include':[{'model':db[_0x6cfb('0x2d')],'as':_0x6cfb('0x3a'),'where':_0x3ce0d4,'limit':0x1,'order':[[_0x6cfb('0x3b'),_0x6cfb('0x3c')]]}]},{'model':db['MailApplication'],'as':_0x6cfb('0x3d')},{'model':db['MailServerOut'],'as':'Smtp'}]})[_0x6cfb('0x11')](function(_0x3a65bd){if(_0x3a65bd&&_0x3a65bd['List']){var _0x1f0d46=_0x3a65bd[_0x6cfb('0x3e')]({'plain':!![]});_0x29c89a[_0x6cfb('0x3f')]=_[_0x6cfb('0x40')](_0x1f0d46,[_0x6cfb('0x3d'),_0x6cfb('0x41')]);_0x29c89a[_0x6cfb('0x42')]=_0x1f0d46[_0x6cfb('0x3d')];_0x29c89a['list']=_0x1f0d46['List'];_0x29c89a[_0x6cfb('0x42')]=_['orderBy'](_0x29c89a['applications'],['priority'],[_0x6cfb('0x43')]);if(_0x29c89a[_0x6cfb('0x3f')]&&_0x29c89a['account']['autoclose']){_0x29c89a[_0x6cfb('0x42')]['push']({'id':0x0,'priority':_0x29c89a['applications'][_0x6cfb('0x44')]+0x1,'app':_0x6cfb('0x45'),'appdata':_0x6cfb('0x46'),'interval':_0x6cfb('0x47')});}if(_0x29c89a[_0x6cfb('0x3f')][_0x6cfb('0x3d')]){delete _0x29c89a[_0x6cfb('0x3f')]['Applications'];}if(_0x29c89a[_0x6cfb('0x3f')][_0x6cfb('0x41')]){delete _0x29c89a[_0x6cfb('0x3f')][_0x6cfb('0x41')];}if(_0x1f0d46[_0x6cfb('0x41')]['Contacts'][_0x6cfb('0x44')]){return _0x1f0d46[_0x6cfb('0x41')][_0x6cfb('0x3a')][0x0];}var _0x5b0b5e=_['defaults'](_0x38e21b['body'],{'firstName':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x32')],'ListId':_0x1f0d46['ListId']});_0x5b0b5e[_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x35')]]=_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x32')];return db[_0x6cfb('0x2d')][_0x6cfb('0x48')](_0x5b0b5e);}else{throw new Error('List\x20not\x20found');}})['then'](function(_0xb10f38){_0x29c89a[_0x6cfb('0x49')]=_0xb10f38;if(_0xb10f38){if(!_0x38e21b['body'][_0x6cfb('0x19')]['messageId']){_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')]['messageId']=rs[_0x6cfb('0x4a')]()+'\x20'+_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')][_0x6cfb('0x32')];}var _0x2ffb0c={'ContactId':_0xb10f38['id'],'MailAccountId':_0x38e21b[_0x6cfb('0x3f')]['id'],'inReplyTo':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')][_0x6cfb('0x4b')],'to':_0x38e21b[_0x6cfb('0x29')]['message'][_0x6cfb('0x32')],'cc':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')]['cc'],'subject':_0x38e21b['body'][_0x6cfb('0x19')][_0x6cfb('0x4c')],'attach':_0x38e21b[_0x6cfb('0x29')]['message'][_0x6cfb('0x4d')],'lastMsgAt':moment()[_0x6cfb('0x4e')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db['MailInteraction'][_0x6cfb('0x26')]({'where':{'closed':![],'MailAccountId':_0x38e21b[_0x6cfb('0x3f')]['id']},'include':[{'model':db[_0x6cfb('0x4f')],'as':_0x6cfb('0x50'),'attributes':[_0x6cfb('0x4b')],'where':{'messageId':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')][_0x6cfb('0x51')]}}]})[_0x6cfb('0x11')](function(_0x57a283){if(_0x57a283){return[_0x57a283,![]];}return db[_0x6cfb('0x52')][_0x6cfb('0x48')](_0x2ffb0c)[_0x6cfb('0x11')](function(_0x1c6809){return[_0x1c6809,!![]];});});}else{throw new Error(_0x6cfb('0x53'));}})['spread'](function(_0x6dfc8d,_0x4a1145){if(_0x6dfc8d){_0xd7e86c=_0x4a1145;if(!_0x4a1145){return _0x6dfc8d[_0x6cfb('0x54')]({'inReplyTo':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')][_0x6cfb('0x4b')],'to':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')]['from'],'cc':_0x38e21b['body'][_0x6cfb('0x19')]['cc'],'subject':_0x38e21b[_0x6cfb('0x29')]['message']['subject'],'attach':_0x6dfc8d[_0x6cfb('0x4d')]?_0x6dfc8d[_0x6cfb('0x4d')]:_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')][_0x6cfb('0x4d')],'substatus':null,'substatusAt':moment()[_0x6cfb('0x4e')](_0x6cfb('0x55')),'lastMsgAt':moment()[_0x6cfb('0x4e')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x6dfc8d;}}})[_0x6cfb('0x11')](function(_0xc046cd){_0x29c89a[_0x6cfb('0x56')]=_0xc046cd[_0x6cfb('0x3e')]({'plain':!![]});_0x29c89a[_0x6cfb('0x56')][_0x6cfb('0x57')]=_0xd7e86c;return db['MailMessage'][_0x6cfb('0x48')]({'body':_0x38e21b['body'][_0x6cfb('0x29')],'MailAccountId':_0x38e21b[_0x6cfb('0x3f')]['id'],'MailInteractionId':_0xc046cd['id'],'direction':'in','ContactId':_0x29c89a['contact']['id'],'messageId':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')]['messageId'],'from':_0x38e21b['body']['message'][_0x6cfb('0x32')],'to':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')]['to'],'cc':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')]['cc'],'subject':_0x38e21b[_0x6cfb('0x29')]['message'][_0x6cfb('0x4c')],'attach':_0x38e21b[_0x6cfb('0x29')]['message']['attach'],'Attachments':_0x38e21b['body']['message'][_0x6cfb('0x58')],'originTo':_0x38e21b['body'][_0x6cfb('0x19')][_0x6cfb('0x59')],'originCc':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')][_0x6cfb('0x5a')],'bcc':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')][_0x6cfb('0x5b')],'ChatWebsiteId':_0x38e21b[_0x6cfb('0x29')]['message'][_0x6cfb('0x5c')]||null,'originChannel':_0x38e21b[_0x6cfb('0x29')]['message'][_0x6cfb('0x5d')]||_0x6cfb('0x5e'),'ChatOfflineMessageId':_0x38e21b[_0x6cfb('0x29')][_0x6cfb('0x19')][_0x6cfb('0x5f')]||null},{'include':[{'model':db['Attachment'],'as':_0x6cfb('0x60')}]});})['then'](function(_0x2b5e6f){_0x29c89a[_0x6cfb('0x19')]=_0x2b5e6f;if(_0x29c89a[_0x6cfb('0x56')]['UserId']){return db['User'][_0x6cfb('0x26')]({'attributes':['id',_0x6cfb('0x61')],'where':{'id':_0x29c89a[_0x6cfb('0x56')]['UserId']}})[_0x6cfb('0x11')](function(_0x2528c0){if(_0x2528c0){_0x29c89a[_0x6cfb('0x42')][_0x6cfb('0x62')]({'id':0x0,'priority':0x0,'app':_0x6cfb('0x63'),'appdata':_0x2528c0[_0x6cfb('0x61')]+','+(_0x29c89a[_0x6cfb('0x3f')][_0x6cfb('0x64')]||0xa),'interval':_0x6cfb('0x47')});}return respondWithRpcPromise(_0x6cfb('0x65'),_0x6cfb('0x66'),_0x29c89a);});}return respondWithRpcPromise(_0x6cfb('0x65'),_0x6cfb('0x66'),_0x29c89a);})['then'](function(_0x3dea0c){_0x41639d(_0x3dea0c);})[_0x6cfb('0x1a')](function(_0x21f97b){_0x56294b(_0x55dcf0[_0x6cfb('0x17')](0x1f4,_0x21f97b[_0x6cfb('0x19')]));});});};