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 _0x3b59=['updatedAt','CompanyId','ListId','body','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','account','CmList','CmContact','MailApplication','Applications','MailServerOut','Smtp','List','get','omit','applications','orderBy','asc','length','close','autoclose','*,*,*,*','Contacts','List\x20not\x20found','contact','messageId','generate','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','create','update','attach','interaction','created','subject','originTo','bcc','Attachment','UserId','User','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','GetMailAccount','MailAccount','options','raw','where','attributes','limit','include','map','model','find','ShowMailAccount','NotifyMailAccount','mail','difference','keys','rawAttributes','createdAt'];(function(_0x3f6565,_0x12a8bb){var _0x4abd23=function(_0x56dce7){while(--_0x56dce7){_0x3f6565['push'](_0x3f6565['shift']());}};_0x4abd23(++_0x12a8bb);}(_0x3b59,0x9c));var _0x93b5=function(_0x33c8ef,_0x5c5f9b){_0x33c8ef=_0x33c8ef-0x0;var _0x3cb4d1=_0x3b59[_0x33c8ef];return _0x3cb4d1;};'use strict';var _=require(_0x93b5('0x0'));var util=require(_0x93b5('0x1'));var moment=require(_0x93b5('0x2'));var BPromise=require(_0x93b5('0x3'));var rs=require(_0x93b5('0x4'));var fs=require('fs');var Redis=require(_0x93b5('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x93b5('0x6'));var logger=require('../../config/logger')(_0x93b5('0x7'));var config=require(_0x93b5('0x8'));var jayson=require(_0x93b5('0x9'));var client=jayson[_0x93b5('0xa')]['http']({'port':0x232c});config[_0x93b5('0xb')]=_[_0x93b5('0xc')](config[_0x93b5('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x93b5('0xd'))(new Redis(config[_0x93b5('0xb')]));require(_0x93b5('0xe'))[_0x93b5('0xf')](socket);function respondWithRpcPromise(_0x2a49bb,_0x490b0d,_0x576916){return new BPromise(function(_0x13ebc9,_0x7787e5){return client[_0x93b5('0x10')](_0x2a49bb,_0x576916)[_0x93b5('0x11')](function(_0x47c236){logger[_0x93b5('0x12')](_0x93b5('0x13'),_0x490b0d,'request\x20sent');logger[_0x93b5('0x14')](_0x93b5('0x15'),_0x490b0d,_0x93b5('0x16'),JSON[_0x93b5('0x17')](_0x47c236));if(_0x47c236[_0x93b5('0x18')]){if(_0x47c236['error'][_0x93b5('0x19')]===0x1f4){logger[_0x93b5('0x18')]('MailAccount,\x20%s,\x20%s',_0x490b0d,_0x47c236[_0x93b5('0x18')][_0x93b5('0x1a')]);return _0x7787e5(_0x47c236[_0x93b5('0x18')]['message']);}logger[_0x93b5('0x18')]('MailAccount,\x20%s,\x20%s',_0x490b0d,_0x47c236['error'][_0x93b5('0x1a')]);return _0x13ebc9(_0x47c236['error'][_0x93b5('0x1a')]);}else{logger[_0x93b5('0x12')](_0x93b5('0x13'),_0x490b0d,'request\x20sent');_0x13ebc9(_0x47c236['result']['message']);}})[_0x93b5('0x1b')](function(_0x28f5cc){logger[_0x93b5('0x18')](_0x93b5('0x13'),_0x490b0d,_0x28f5cc);_0x7787e5(_0x28f5cc);});});}exports[_0x93b5('0x1c')]=function(_0x1f0196){var _0x2dd622=this;return new Promise(function(_0x2bd21b,_0x352cbe){return db[_0x93b5('0x1d')]['findAll']({'raw':_0x1f0196['options']?_0x1f0196[_0x93b5('0x1e')][_0x93b5('0x1f')]===undefined?!![]:![]:!![],'where':_0x1f0196['options']?_0x1f0196[_0x93b5('0x1e')][_0x93b5('0x20')]||null:null,'attributes':_0x1f0196[_0x93b5('0x1e')]?_0x1f0196[_0x93b5('0x1e')][_0x93b5('0x21')]||null:null,'limit':_0x1f0196[_0x93b5('0x1e')]?_0x1f0196[_0x93b5('0x1e')][_0x93b5('0x22')]||null:null,'include':_0x1f0196[_0x93b5('0x1e')]?_0x1f0196[_0x93b5('0x1e')][_0x93b5('0x23')]?_[_0x93b5('0x24')](_0x1f0196[_0x93b5('0x1e')][_0x93b5('0x23')],function(_0x3494f){return{'model':db[_0x3494f[_0x93b5('0x25')]],'as':_0x3494f['as'],'attributes':_0x3494f[_0x93b5('0x21')],'include':_0x3494f[_0x93b5('0x23')]?_['map'](_0x3494f[_0x93b5('0x23')],function(_0x2ed60b){return{'model':db[_0x2ed60b[_0x93b5('0x25')]],'as':_0x2ed60b['as'],'attributes':_0x2ed60b[_0x93b5('0x21')],'include':_0x2ed60b[_0x93b5('0x23')]?_[_0x93b5('0x24')](_0x2ed60b[_0x93b5('0x23')],function(_0x2905a8){return{'model':db[_0x2905a8['model']],'as':_0x2905a8['as'],'attributes':_0x2905a8[_0x93b5('0x21')]};}):[]};}):[]};}):[]:[]})[_0x93b5('0x11')](function(_0x54bc50){logger[_0x93b5('0x12')]('GetMailAccount',_0x1f0196);logger[_0x93b5('0x14')](_0x93b5('0x1c'),_0x1f0196,JSON[_0x93b5('0x17')](_0x54bc50));_0x2bd21b(_0x54bc50);})[_0x93b5('0x1b')](function(_0x207b04){logger[_0x93b5('0x18')](_0x93b5('0x1c'),_0x207b04[_0x93b5('0x1a')],_0x1f0196);_0x352cbe(_0x2dd622[_0x93b5('0x18')](0x1f4,_0x207b04[_0x93b5('0x1a')]));});});};exports['ShowMailAccount']=function(_0x5c2c92){var _0x4e1818=this;return new Promise(function(_0x50614b,_0x4b9421){return db['MailAccount'][_0x93b5('0x26')]({'raw':_0x5c2c92[_0x93b5('0x1e')]?_0x5c2c92[_0x93b5('0x1e')][_0x93b5('0x1f')]===undefined?!![]:![]:!![],'where':_0x5c2c92[_0x93b5('0x1e')]?_0x5c2c92[_0x93b5('0x1e')][_0x93b5('0x20')]||null:null,'attributes':_0x5c2c92[_0x93b5('0x1e')]?_0x5c2c92[_0x93b5('0x1e')][_0x93b5('0x21')]||null:null,'include':_0x5c2c92[_0x93b5('0x1e')]?_0x5c2c92['options']['include']?_[_0x93b5('0x24')](_0x5c2c92[_0x93b5('0x1e')][_0x93b5('0x23')],function(_0x382ccf){return{'model':db[_0x382ccf[_0x93b5('0x25')]],'as':_0x382ccf['as'],'attributes':_0x382ccf[_0x93b5('0x21')],'include':_0x382ccf['include']?_['map'](_0x382ccf['include'],function(_0x59081b){return{'model':db[_0x59081b['model']],'as':_0x59081b['as'],'attributes':_0x59081b[_0x93b5('0x21')],'include':_0x59081b[_0x93b5('0x23')]?_[_0x93b5('0x24')](_0x59081b[_0x93b5('0x23')],function(_0x34896a){return{'model':db[_0x34896a[_0x93b5('0x25')]],'as':_0x34896a['as'],'attributes':_0x34896a[_0x93b5('0x21')]};}):[]};}):[]};}):[]:[]})[_0x93b5('0x11')](function(_0x1f71dc){logger[_0x93b5('0x12')]('ShowMailAccount',_0x5c2c92);logger['debug']('ShowMailAccount',_0x5c2c92,JSON[_0x93b5('0x17')](_0x1f71dc));_0x50614b(_0x1f71dc);})[_0x93b5('0x1b')](function(_0x1a6d5b){logger[_0x93b5('0x18')](_0x93b5('0x27'),_0x1a6d5b[_0x93b5('0x1a')],_0x5c2c92);_0x4b9421(_0x4e1818['error'](0x1f4,_0x1a6d5b[_0x93b5('0x1a')]));});});};exports[_0x93b5('0x28')]=function(_0x392005){var _0x5d5134=this;return new Promise(function(_0x1cf514,_0x426403){var _0x4a99e8={'body':_0x392005['body'],'channel':_0x93b5('0x29')};var _0x2d50b3=_[_0x93b5('0x2a')](_[_0x93b5('0x2b')](db['CmContact'][_0x93b5('0x2c')]),[_0x93b5('0x2d'),_0x93b5('0x2e'),_0x93b5('0x2f'),_0x93b5('0x30')]);var _0x43b068=![];if(_0x392005[_0x93b5('0x31')]['id']){delete _0x392005[_0x93b5('0x31')]['id'];}if(_['isNil'](_0x392005['body'][_0x93b5('0x32')])){return _0x426403(_0x5d5134[_0x93b5('0x18')](0x1f4,_0x93b5('0x33')));}if(_[_0x93b5('0x34')](_0x392005[_0x93b5('0x31')][_0x93b5('0x31')])||_0x392005[_0x93b5('0x31')][_0x93b5('0x31')]===''){return _0x426403(_0x5d5134[_0x93b5('0x18')](0x1f4,_0x93b5('0x35')));}if(_['isNil'](_0x392005[_0x93b5('0x31')]['mapKey'])){return _0x426403(_0x5d5134[_0x93b5('0x18')](0x1f4,_0x93b5('0x36')+_0x2d50b3));}if(!_[_0x93b5('0x37')](_0x2d50b3,_0x392005['body'][_0x93b5('0x38')])){return _0x426403(_0x5d5134[_0x93b5('0x18')](0x1f4,_0x93b5('0x39')+_0x2d50b3));}var _0x47024f={};_0x47024f[_0x392005[_0x93b5('0x31')][_0x93b5('0x38')]]=_0x392005[_0x93b5('0x31')]['from'];return db[_0x93b5('0x1d')][_0x93b5('0x26')]({'where':{'id':_0x392005[_0x93b5('0x3a')]['id']},'include':[{'model':db[_0x93b5('0x3b')],'as':'List','include':[{'model':db[_0x93b5('0x3c')],'as':'Contacts','where':_0x47024f,'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0x93b5('0x3d')],'as':_0x93b5('0x3e')},{'model':db[_0x93b5('0x3f')],'as':_0x93b5('0x40')}]})[_0x93b5('0x11')](function(_0x22c0fb){if(_0x22c0fb&&_0x22c0fb[_0x93b5('0x41')]){var _0x565e00=_0x22c0fb[_0x93b5('0x42')]({'plain':!![]});_0x4a99e8[_0x93b5('0x3a')]=_[_0x93b5('0x43')](_0x565e00,['Applications',_0x93b5('0x41')]);_0x4a99e8[_0x93b5('0x44')]=_0x565e00[_0x93b5('0x3e')];_0x4a99e8['list']=_0x565e00['List'];_0x4a99e8['applications']=_[_0x93b5('0x45')](_0x4a99e8['applications'],['priority'],[_0x93b5('0x46')]);if(_0x4a99e8['account']&&_0x4a99e8[_0x93b5('0x3a')]['autoclose']){_0x4a99e8[_0x93b5('0x44')]['push']({'id':0x0,'priority':_0x4a99e8['applications'][_0x93b5('0x47')]+0x1,'app':_0x93b5('0x48'),'appdata':_0x93b5('0x49'),'interval':_0x93b5('0x4a')});}if(_0x4a99e8[_0x93b5('0x3a')]['Applications']){delete _0x4a99e8['account']['Applications'];}if(_0x4a99e8[_0x93b5('0x3a')][_0x93b5('0x41')]){delete _0x4a99e8[_0x93b5('0x3a')][_0x93b5('0x41')];}if(_0x565e00['List']['Contacts'][_0x93b5('0x47')]){return _0x565e00['List'][_0x93b5('0x4b')][0x0];}var _0x3a18e6=_[_0x93b5('0xc')](_0x392005['body'],{'firstName':_0x392005[_0x93b5('0x31')]['from'],'ListId':_0x565e00[_0x93b5('0x30')]});_0x3a18e6[_0x392005[_0x93b5('0x31')][_0x93b5('0x38')]]=_0x392005[_0x93b5('0x31')][_0x93b5('0x32')];return db['CmContact']['create'](_0x3a18e6);}else{throw new Error(_0x93b5('0x4c'));}})['then'](function(_0x48f796){_0x4a99e8[_0x93b5('0x4d')]=_0x48f796;if(_0x48f796){if(!_0x392005[_0x93b5('0x31')]['message'][_0x93b5('0x4e')]){_0x392005['body'][_0x93b5('0x1a')]['messageId']=rs[_0x93b5('0x4f')]()+'\x20'+_0x392005['body'][_0x93b5('0x1a')][_0x93b5('0x32')];}var _0x563fc5={'ContactId':_0x48f796['id'],'MailAccountId':_0x392005['account']['id'],'inReplyTo':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')][_0x93b5('0x4e')],'to':_0x392005['body'][_0x93b5('0x1a')][_0x93b5('0x32')],'cc':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['cc'],'subject':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['subject'],'attach':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['attach'],'lastMsgAt':moment()[_0x93b5('0x50')](_0x93b5('0x51')),'lastMsgDirection':'in','lastMsgBody':_0x392005[_0x93b5('0x31')][_0x93b5('0x31')]};return db[_0x93b5('0x52')][_0x93b5('0x26')]({'where':{'closed':![],'MailAccountId':_0x392005[_0x93b5('0x3a')]['id']},'include':[{'model':db[_0x93b5('0x53')],'as':_0x93b5('0x54'),'attributes':[_0x93b5('0x4e')],'where':{'messageId':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['inReplyTo']}}]})[_0x93b5('0x11')](function(_0x4ccde1){if(_0x4ccde1){return[_0x4ccde1,![]];}return db[_0x93b5('0x52')][_0x93b5('0x55')](_0x563fc5)[_0x93b5('0x11')](function(_0x356d31){return[_0x356d31,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x319a37,_0x3ae9ba){if(_0x319a37){_0x43b068=_0x3ae9ba;if(!_0x3ae9ba){return _0x319a37[_0x93b5('0x56')]({'inReplyTo':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')][_0x93b5('0x4e')],'to':_0x392005[_0x93b5('0x31')]['message'][_0x93b5('0x32')],'cc':_0x392005['body'][_0x93b5('0x1a')]['cc'],'subject':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['subject'],'attach':_0x319a37[_0x93b5('0x57')]?_0x319a37[_0x93b5('0x57')]:_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['attach'],'substatus':null,'substatusAt':moment()[_0x93b5('0x50')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0x93b5('0x50')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x392005[_0x93b5('0x31')][_0x93b5('0x31')]});}else{return _0x319a37;}}})[_0x93b5('0x11')](function(_0x4880d3){_0x4a99e8[_0x93b5('0x58')]=_0x4880d3['get']({'plain':!![]});_0x4a99e8['interaction'][_0x93b5('0x59')]=_0x43b068;return db[_0x93b5('0x53')]['create']({'body':_0x392005[_0x93b5('0x31')]['body'],'MailAccountId':_0x392005[_0x93b5('0x3a')]['id'],'MailInteractionId':_0x4880d3['id'],'direction':'in','ContactId':_0x4a99e8['contact']['id'],'messageId':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['messageId'],'from':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')][_0x93b5('0x32')],'to':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['to'],'cc':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['cc'],'subject':_0x392005['body'][_0x93b5('0x1a')][_0x93b5('0x5a')],'attach':_0x392005[_0x93b5('0x31')]['message'][_0x93b5('0x57')],'Attachments':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['attachments'],'originTo':_0x392005['body'][_0x93b5('0x1a')][_0x93b5('0x5b')],'originCc':_0x392005[_0x93b5('0x31')][_0x93b5('0x1a')]['originCc'],'bcc':_0x392005[_0x93b5('0x31')]['message'][_0x93b5('0x5c')]},{'include':[{'model':db[_0x93b5('0x5d')],'as':'Attachments'}]});})[_0x93b5('0x11')](function(_0x4acd54){_0x4a99e8[_0x93b5('0x1a')]=_0x4acd54;if(_0x4a99e8['interaction'][_0x93b5('0x5e')]){return db[_0x93b5('0x5f')]['find']({'attributes':['id',_0x93b5('0x60')],'where':{'id':_0x4a99e8['interaction'][_0x93b5('0x5e')]}})[_0x93b5('0x11')](function(_0x2b36af){if(_0x2b36af){_0x4a99e8[_0x93b5('0x44')][_0x93b5('0x61')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x2b36af['name']+','+(_0x4a99e8[_0x93b5('0x3a')][_0x93b5('0x62')]||0xa),'interval':_0x93b5('0x4a')});}return respondWithRpcPromise(_0x93b5('0x63'),_0x93b5('0x64'),_0x4a99e8);});}return respondWithRpcPromise(_0x93b5('0x63'),_0x93b5('0x64'),_0x4a99e8);})[_0x93b5('0x11')](function(_0xbde0e8){_0x1cf514(_0xbde0e8);})[_0x93b5('0x1b')](function(_0x50ce80){_0x426403(_0x5d5134['error'](0x1f4,_0x50ce80[_0x93b5('0x1a')]));});});};