Built motion from commit (unavailable).|2.5.0
[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 _0x9b83=['Contacts','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','inReplyTo','MailInteraction','Contact\x20not\x20found','update','interaction','get','created','MailMessage','originTo','originCc','bcc','Attachments','UserId','User','unshift','agent','name','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','redis','defaults','localhost','socket.io-emitter','request','then','info','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','MailAccount,\x20%s,\x20%s','message','GetMailAccount','MailAccount','options','raw','where','attributes','include','map','model','find','ShowMailAccount','catch','NotifyMailAccount','difference','keys','CmContact','rawAttributes','updatedAt','CompanyId','ListId','body','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','List','DESC','MailApplication','Applications','Smtp','account','omit','applications','list','orderBy','asc','autoclose','push','length','close'];(function(_0x4bb581,_0x6f7037){var _0x316bf5=function(_0x1f6ed0){while(--_0x1f6ed0){_0x4bb581['push'](_0x4bb581['shift']());}};_0x316bf5(++_0x6f7037);}(_0x9b83,0x84));var _0x39b8=function(_0x33bc64,_0x4d1e92){_0x33bc64=_0x33bc64-0x0;var _0x3fdd34=_0x9b83[_0x33bc64];return _0x3fdd34;};'use strict';var _=require(_0x39b8('0x0'));var util=require(_0x39b8('0x1'));var moment=require(_0x39b8('0x2'));var BPromise=require(_0x39b8('0x3'));var rs=require(_0x39b8('0x4'));var fs=require('fs');var Redis=require(_0x39b8('0x5'));var db=require(_0x39b8('0x6'))['db'];var utils=require(_0x39b8('0x7'));var logger=require(_0x39b8('0x8'))(_0x39b8('0x9'));var config=require('../../config/environment');var jayson=require(_0x39b8('0xa'));var client=jayson['client']['http']({'port':0x232c});config[_0x39b8('0xb')]=_[_0x39b8('0xc')](config[_0x39b8('0xb')],{'host':_0x39b8('0xd'),'port':0x18eb});var socket=require(_0x39b8('0xe'))(new Redis(config['redis']));require('./mailAccount.socket')['register'](socket);function respondWithRpcPromise(_0x33d152,_0x3fd80d,_0x14d391){return new BPromise(function(_0x473f6d,_0x3020ff){return client[_0x39b8('0xf')](_0x33d152,_0x14d391)[_0x39b8('0x10')](function(_0x222809){logger[_0x39b8('0x11')]('MailAccount,\x20%s,\x20%s',_0x3fd80d,_0x39b8('0x12'));logger['debug'](_0x39b8('0x13'),_0x3fd80d,_0x39b8('0x12'),JSON[_0x39b8('0x14')](_0x222809));if(_0x222809[_0x39b8('0x15')]){if(_0x222809['error'][_0x39b8('0x16')]===0x1f4){logger[_0x39b8('0x15')](_0x39b8('0x17'),_0x3fd80d,_0x222809[_0x39b8('0x15')]['message']);return _0x3020ff(_0x222809[_0x39b8('0x15')]['message']);}logger[_0x39b8('0x15')](_0x39b8('0x17'),_0x3fd80d,_0x222809[_0x39b8('0x15')][_0x39b8('0x18')]);return _0x473f6d(_0x222809['error']['message']);}else{logger[_0x39b8('0x11')]('MailAccount,\x20%s,\x20%s',_0x3fd80d,'request\x20sent');_0x473f6d(_0x222809['result'][_0x39b8('0x18')]);}})['catch'](function(_0x2cb44a){logger['error'](_0x39b8('0x17'),_0x3fd80d,_0x2cb44a);_0x3020ff(_0x2cb44a);});});}exports[_0x39b8('0x19')]=function(_0x39a641){var _0x5bcb3a=this;return new Promise(function(_0x3d4055,_0x146e91){return db[_0x39b8('0x1a')]['findAll']({'raw':_0x39a641[_0x39b8('0x1b')]?_0x39a641['options'][_0x39b8('0x1c')]===undefined?!![]:![]:!![],'where':_0x39a641['options']?_0x39a641[_0x39b8('0x1b')][_0x39b8('0x1d')]||null:null,'attributes':_0x39a641[_0x39b8('0x1b')]?_0x39a641[_0x39b8('0x1b')][_0x39b8('0x1e')]||null:null,'limit':_0x39a641['options']?_0x39a641[_0x39b8('0x1b')]['limit']||null:null,'include':_0x39a641[_0x39b8('0x1b')]?_0x39a641[_0x39b8('0x1b')][_0x39b8('0x1f')]?_[_0x39b8('0x20')](_0x39a641['options'][_0x39b8('0x1f')],function(_0x2094ba){return{'model':db[_0x2094ba[_0x39b8('0x21')]],'as':_0x2094ba['as'],'attributes':_0x2094ba[_0x39b8('0x1e')],'include':_0x2094ba[_0x39b8('0x1f')]?_[_0x39b8('0x20')](_0x2094ba[_0x39b8('0x1f')],function(_0x59a25f){return{'model':db[_0x59a25f[_0x39b8('0x21')]],'as':_0x59a25f['as'],'attributes':_0x59a25f['attributes'],'include':_0x59a25f[_0x39b8('0x1f')]?_['map'](_0x59a25f[_0x39b8('0x1f')],function(_0x133ff9){return{'model':db[_0x133ff9[_0x39b8('0x21')]],'as':_0x133ff9['as'],'attributes':_0x133ff9[_0x39b8('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x39b8('0x10')](function(_0x415008){logger[_0x39b8('0x11')](_0x39b8('0x19'),_0x39a641);logger['debug'](_0x39b8('0x19'),_0x39a641,JSON['stringify'](_0x415008));_0x3d4055(_0x415008);})['catch'](function(_0x3a4503){logger[_0x39b8('0x15')](_0x39b8('0x19'),_0x3a4503[_0x39b8('0x18')],_0x39a641);_0x146e91(_0x5bcb3a[_0x39b8('0x15')](0x1f4,_0x3a4503[_0x39b8('0x18')]));});});};exports['ShowMailAccount']=function(_0x2c272a){var _0xebadc9=this;return new Promise(function(_0x47ebcb,_0x5ad841){return db[_0x39b8('0x1a')][_0x39b8('0x22')]({'raw':_0x2c272a[_0x39b8('0x1b')]?_0x2c272a[_0x39b8('0x1b')][_0x39b8('0x1c')]===undefined?!![]:![]:!![],'where':_0x2c272a[_0x39b8('0x1b')]?_0x2c272a[_0x39b8('0x1b')][_0x39b8('0x1d')]||null:null,'attributes':_0x2c272a[_0x39b8('0x1b')]?_0x2c272a[_0x39b8('0x1b')][_0x39b8('0x1e')]||null:null,'include':_0x2c272a[_0x39b8('0x1b')]?_0x2c272a[_0x39b8('0x1b')][_0x39b8('0x1f')]?_[_0x39b8('0x20')](_0x2c272a[_0x39b8('0x1b')][_0x39b8('0x1f')],function(_0x2158ab){return{'model':db[_0x2158ab[_0x39b8('0x21')]],'as':_0x2158ab['as'],'attributes':_0x2158ab[_0x39b8('0x1e')],'include':_0x2158ab[_0x39b8('0x1f')]?_[_0x39b8('0x20')](_0x2158ab[_0x39b8('0x1f')],function(_0x390ba2){return{'model':db[_0x390ba2[_0x39b8('0x21')]],'as':_0x390ba2['as'],'attributes':_0x390ba2[_0x39b8('0x1e')],'include':_0x390ba2[_0x39b8('0x1f')]?_['map'](_0x390ba2[_0x39b8('0x1f')],function(_0x1d397d){return{'model':db[_0x1d397d[_0x39b8('0x21')]],'as':_0x1d397d['as'],'attributes':_0x1d397d['attributes']};}):[]};}):[]};}):[]:[]})[_0x39b8('0x10')](function(_0x253c5a){logger[_0x39b8('0x11')](_0x39b8('0x23'),_0x2c272a);logger['debug'](_0x39b8('0x23'),_0x2c272a,JSON[_0x39b8('0x14')](_0x253c5a));_0x47ebcb(_0x253c5a);})[_0x39b8('0x24')](function(_0x44b2c9){logger[_0x39b8('0x15')]('ShowMailAccount',_0x44b2c9[_0x39b8('0x18')],_0x2c272a);_0x5ad841(_0xebadc9[_0x39b8('0x15')](0x1f4,_0x44b2c9[_0x39b8('0x18')]));});});};exports[_0x39b8('0x25')]=function(_0x21e628){var _0x26d2ec=this;return new Promise(function(_0x154c70,_0x4309b6){var _0x57c62e={'body':_0x21e628['body'],'channel':'mail'};var _0x1f7823=_[_0x39b8('0x26')](_[_0x39b8('0x27')](db[_0x39b8('0x28')][_0x39b8('0x29')]),['createdAt',_0x39b8('0x2a'),_0x39b8('0x2b'),_0x39b8('0x2c')]);var _0x32079f=![];if(_0x21e628['body']['id']){delete _0x21e628[_0x39b8('0x2d')]['id'];}if(_[_0x39b8('0x2e')](_0x21e628[_0x39b8('0x2d')][_0x39b8('0x2f')])){return _0x4309b6(_0x26d2ec['error'](0x1f4,_0x39b8('0x30')));}if(_[_0x39b8('0x2e')](_0x21e628[_0x39b8('0x2d')][_0x39b8('0x2d')])||_0x21e628[_0x39b8('0x2d')][_0x39b8('0x2d')]===''){return _0x4309b6(_0x26d2ec[_0x39b8('0x15')](0x1f4,_0x39b8('0x31')));}if(_[_0x39b8('0x2e')](_0x21e628[_0x39b8('0x2d')][_0x39b8('0x32')])){return _0x4309b6(_0x26d2ec[_0x39b8('0x15')](0x1f4,_0x39b8('0x33')+_0x1f7823));}if(!_[_0x39b8('0x34')](_0x1f7823,_0x21e628[_0x39b8('0x2d')][_0x39b8('0x32')])){return _0x4309b6(_0x26d2ec[_0x39b8('0x15')](0x1f4,_0x39b8('0x35')+_0x1f7823));}var _0x2ba64c={};_0x2ba64c[_0x21e628[_0x39b8('0x2d')]['mapKey']]=_0x21e628['body'][_0x39b8('0x2f')];return db[_0x39b8('0x1a')][_0x39b8('0x22')]({'where':{'id':_0x21e628['account']['id']},'include':[{'model':db[_0x39b8('0x36')],'as':_0x39b8('0x37'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x2ba64c,'limit':0x1,'order':[[_0x39b8('0x2a'),_0x39b8('0x38')]]}]},{'model':db[_0x39b8('0x39')],'as':_0x39b8('0x3a')},{'model':db['MailServerOut'],'as':_0x39b8('0x3b')}]})[_0x39b8('0x10')](function(_0x5dc743){if(_0x5dc743&&_0x5dc743[_0x39b8('0x37')]){var _0x1317b9=_0x5dc743['get']({'plain':!![]});_0x57c62e[_0x39b8('0x3c')]=_[_0x39b8('0x3d')](_0x1317b9,[_0x39b8('0x3a'),_0x39b8('0x37')]);_0x57c62e[_0x39b8('0x3e')]=_0x1317b9['Applications'];_0x57c62e[_0x39b8('0x3f')]=_0x1317b9[_0x39b8('0x37')];_0x57c62e['applications']=_[_0x39b8('0x40')](_0x57c62e['applications'],['priority'],[_0x39b8('0x41')]);if(_0x57c62e[_0x39b8('0x3c')]&&_0x57c62e[_0x39b8('0x3c')][_0x39b8('0x42')]){_0x57c62e[_0x39b8('0x3e')][_0x39b8('0x43')]({'id':0x0,'priority':_0x57c62e[_0x39b8('0x3e')][_0x39b8('0x44')]+0x1,'app':_0x39b8('0x45'),'appdata':_0x39b8('0x42'),'interval':'*,*,*,*'});}if(_0x57c62e[_0x39b8('0x3c')][_0x39b8('0x3a')]){delete _0x57c62e[_0x39b8('0x3c')]['Applications'];}if(_0x57c62e[_0x39b8('0x3c')][_0x39b8('0x37')]){delete _0x57c62e['account'][_0x39b8('0x37')];}if(_0x1317b9[_0x39b8('0x37')]['Contacts'][_0x39b8('0x44')]){return _0x1317b9[_0x39b8('0x37')][_0x39b8('0x46')][0x0];}var _0x2ceae3=_[_0x39b8('0xc')](_0x21e628['body'],{'firstName':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x2f')],'ListId':_0x1317b9[_0x39b8('0x2c')]});_0x2ceae3[_0x21e628['body']['mapKey']]=_0x21e628['body'][_0x39b8('0x2f')];return db[_0x39b8('0x28')][_0x39b8('0x47')](_0x2ceae3);}else{throw new Error(_0x39b8('0x48'));}})['then'](function(_0x2408ee){_0x57c62e[_0x39b8('0x49')]=_0x2408ee;if(_0x2408ee){if(!_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x4a')]){_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x4a')]=rs[_0x39b8('0x4b')]()+'\x20'+_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x2f')];}var _0x45c20a={'ContactId':_0x2408ee['id'],'MailAccountId':_0x21e628[_0x39b8('0x3c')]['id'],'inReplyTo':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')]['messageId'],'to':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')]['from'],'cc':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')]['cc'],'subject':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x4c')],'attach':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x4d')],'lastMsgAt':moment()[_0x39b8('0x4e')](_0x39b8('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x2d')]};return db['MailInteraction'][_0x39b8('0x22')]({'where':{'closed':![],'MailAccountId':_0x21e628[_0x39b8('0x3c')]['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':['messageId'],'where':{'messageId':_0x21e628['body'][_0x39b8('0x18')][_0x39b8('0x50')]}}]})[_0x39b8('0x10')](function(_0x48c34b){if(_0x48c34b){return[_0x48c34b,![]];}return db[_0x39b8('0x51')][_0x39b8('0x47')](_0x45c20a)['then'](function(_0x1c4096){return[_0x1c4096,!![]];});});}else{throw new Error(_0x39b8('0x52'));}})['spread'](function(_0x279e2b,_0x3f88fc){if(_0x279e2b){_0x32079f=_0x3f88fc;if(!_0x3f88fc){return _0x279e2b[_0x39b8('0x53')]({'inReplyTo':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x4a')],'to':_0x21e628[_0x39b8('0x2d')]['message'][_0x39b8('0x2f')],'cc':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')]['cc'],'subject':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')]['subject'],'attach':_0x279e2b[_0x39b8('0x4d')]?_0x279e2b[_0x39b8('0x4d')]:_0x21e628[_0x39b8('0x2d')]['message'][_0x39b8('0x4d')],'substatus':null,'substatusAt':moment()[_0x39b8('0x4e')](_0x39b8('0x4f')),'lastMsgAt':moment()['format'](_0x39b8('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x21e628[_0x39b8('0x2d')]['body']});}else{return _0x279e2b;}}})[_0x39b8('0x10')](function(_0x58c58e){_0x57c62e[_0x39b8('0x54')]=_0x58c58e[_0x39b8('0x55')]({'plain':!![]});_0x57c62e[_0x39b8('0x54')][_0x39b8('0x56')]=_0x32079f;return db[_0x39b8('0x57')][_0x39b8('0x47')]({'body':_0x21e628[_0x39b8('0x2d')]['body'],'MailAccountId':_0x21e628[_0x39b8('0x3c')]['id'],'MailInteractionId':_0x58c58e['id'],'direction':'in','ContactId':_0x57c62e[_0x39b8('0x49')]['id'],'messageId':_0x21e628['body'][_0x39b8('0x18')]['messageId'],'from':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x2f')],'to':_0x21e628['body']['message']['to'],'cc':_0x21e628['body'][_0x39b8('0x18')]['cc'],'subject':_0x21e628[_0x39b8('0x2d')]['message'][_0x39b8('0x4c')],'attach':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x4d')],'Attachments':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')]['attachments'],'originTo':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x58')],'originCc':_0x21e628['body'][_0x39b8('0x18')][_0x39b8('0x59')],'bcc':_0x21e628[_0x39b8('0x2d')][_0x39b8('0x18')][_0x39b8('0x5a')]},{'include':[{'model':db['Attachment'],'as':_0x39b8('0x5b')}]});})[_0x39b8('0x10')](function(_0x21c90b){_0x57c62e[_0x39b8('0x18')]=_0x21c90b;if(_0x57c62e[_0x39b8('0x54')][_0x39b8('0x5c')]){return db[_0x39b8('0x5d')][_0x39b8('0x22')]({'attributes':['id','name'],'where':{'id':_0x57c62e[_0x39b8('0x54')][_0x39b8('0x5c')]}})[_0x39b8('0x10')](function(_0x49e2cc){if(_0x49e2cc){_0x57c62e[_0x39b8('0x3e')][_0x39b8('0x5e')]({'id':0x0,'priority':0x0,'app':_0x39b8('0x5f'),'appdata':_0x49e2cc[_0x39b8('0x60')]+','+(_0x57c62e['account'][_0x39b8('0x61')]||0xa),'interval':_0x39b8('0x62')});}return respondWithRpcPromise(_0x39b8('0x63'),'startRouting',_0x57c62e);});}return respondWithRpcPromise(_0x39b8('0x63'),_0x39b8('0x64'),_0x57c62e);})[_0x39b8('0x10')](function(_0x420c6e){_0x154c70(_0x420c6e);})[_0x39b8('0x24')](function(_0x4ba02e){_0x4309b6(_0x26d2ec[_0x39b8('0x15')](0x1f4,_0x4ba02e[_0x39b8('0x18')]));});});};