Built motion from commit (unavailable).|2.5.22
[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 _0x1132=['YYYY-MM-DD\x20HH:mm:ss','interaction','created','originTo','bcc','ChatWebsiteId','Email','ChatOfflineMessageId','Attachment','Attachments','UserId','User','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','error','message','catch','GetMailAccount','findAll','options','raw','where','attributes','limit','include','model','map','stringify','ShowMailAccount','MailAccount','find','NotifyMailAccount','body','difference','keys','CmContact','rawAttributes','createdAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','CmList','Contacts','updatedAt','DESC','MailApplication','Applications','MailServerOut','Smtp','List','get','omit','applications','list','orderBy','priority','asc','autoclose','push','length','close','mapKey','create','List\x20not\x20found','contact','messageId','generate','attach','format','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','update','subject'];(function(_0x3c35bb,_0x13b307){var _0x33cbac=function(_0x1ad6ad){while(--_0x1ad6ad){_0x3c35bb['push'](_0x3c35bb['shift']());}};_0x33cbac(++_0x13b307);}(_0x1132,0x1b5));var _0x2113=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x1132[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x2113('0x0'));var util=require(_0x2113('0x1'));var moment=require(_0x2113('0x2'));var BPromise=require(_0x2113('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2113('0x4'));var db=require(_0x2113('0x5'))['db'];var utils=require(_0x2113('0x6'));var logger=require('../../config/logger')(_0x2113('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x2113('0x8')][_0x2113('0x9')]({'port':0x232c});config[_0x2113('0xa')]=_[_0x2113('0xb')](config[_0x2113('0xa')],{'host':_0x2113('0xc'),'port':0x18eb});var socket=require(_0x2113('0xd'))(new Redis(config[_0x2113('0xa')]));require(_0x2113('0xe'))[_0x2113('0xf')](socket);function respondWithRpcPromise(_0x271d76,_0x4ff62e,_0xef354){return new BPromise(function(_0x1687d7,_0x2848c6){return client[_0x2113('0x10')](_0x271d76,_0xef354)[_0x2113('0x11')](function(_0x3867c8){logger[_0x2113('0x12')](_0x2113('0x13'),_0x4ff62e,_0x2113('0x14'));logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0x4ff62e,_0x2113('0x14'),JSON['stringify'](_0x3867c8));if(_0x3867c8[_0x2113('0x15')]){if(_0x3867c8[_0x2113('0x15')]['code']===0x1f4){logger[_0x2113('0x15')](_0x2113('0x13'),_0x4ff62e,_0x3867c8['error']['message']);return _0x2848c6(_0x3867c8['error'][_0x2113('0x16')]);}logger['error'](_0x2113('0x13'),_0x4ff62e,_0x3867c8[_0x2113('0x15')][_0x2113('0x16')]);return _0x1687d7(_0x3867c8['error'][_0x2113('0x16')]);}else{logger['info']('MailAccount,\x20%s,\x20%s',_0x4ff62e,'request\x20sent');_0x1687d7(_0x3867c8['result'][_0x2113('0x16')]);}})[_0x2113('0x17')](function(_0x4f1bc7){logger[_0x2113('0x15')](_0x2113('0x13'),_0x4ff62e,_0x4f1bc7);_0x2848c6(_0x4f1bc7);});});}exports[_0x2113('0x18')]=function(_0x3266f1){var _0x308018=this;return new Promise(function(_0x83bb5,_0x445029){return db['MailAccount'][_0x2113('0x19')]({'raw':_0x3266f1['options']?_0x3266f1[_0x2113('0x1a')][_0x2113('0x1b')]===undefined?!![]:![]:!![],'where':_0x3266f1[_0x2113('0x1a')]?_0x3266f1[_0x2113('0x1a')][_0x2113('0x1c')]||null:null,'attributes':_0x3266f1[_0x2113('0x1a')]?_0x3266f1[_0x2113('0x1a')][_0x2113('0x1d')]||null:null,'limit':_0x3266f1[_0x2113('0x1a')]?_0x3266f1['options'][_0x2113('0x1e')]||null:null,'include':_0x3266f1[_0x2113('0x1a')]?_0x3266f1['options'][_0x2113('0x1f')]?_['map'](_0x3266f1[_0x2113('0x1a')][_0x2113('0x1f')],function(_0x3737f5){return{'model':db[_0x3737f5[_0x2113('0x20')]],'as':_0x3737f5['as'],'attributes':_0x3737f5['attributes'],'include':_0x3737f5[_0x2113('0x1f')]?_[_0x2113('0x21')](_0x3737f5[_0x2113('0x1f')],function(_0x294971){return{'model':db[_0x294971[_0x2113('0x20')]],'as':_0x294971['as'],'attributes':_0x294971[_0x2113('0x1d')],'include':_0x294971[_0x2113('0x1f')]?_[_0x2113('0x21')](_0x294971['include'],function(_0x242f36){return{'model':db[_0x242f36[_0x2113('0x20')]],'as':_0x242f36['as'],'attributes':_0x242f36[_0x2113('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x2113('0x11')](function(_0x3c3012){logger[_0x2113('0x12')](_0x2113('0x18'),_0x3266f1);logger['debug'](_0x2113('0x18'),_0x3266f1,JSON[_0x2113('0x22')](_0x3c3012));_0x83bb5(_0x3c3012);})[_0x2113('0x17')](function(_0x40bf6f){logger[_0x2113('0x15')]('GetMailAccount',_0x40bf6f[_0x2113('0x16')],_0x3266f1);_0x445029(_0x308018[_0x2113('0x15')](0x1f4,_0x40bf6f[_0x2113('0x16')]));});});};exports[_0x2113('0x23')]=function(_0x5261d2){var _0x1f1535=this;return new Promise(function(_0x5575de,_0x181b63){return db[_0x2113('0x24')][_0x2113('0x25')]({'raw':_0x5261d2['options']?_0x5261d2[_0x2113('0x1a')][_0x2113('0x1b')]===undefined?!![]:![]:!![],'where':_0x5261d2[_0x2113('0x1a')]?_0x5261d2['options'][_0x2113('0x1c')]||null:null,'attributes':_0x5261d2[_0x2113('0x1a')]?_0x5261d2[_0x2113('0x1a')][_0x2113('0x1d')]||null:null,'include':_0x5261d2['options']?_0x5261d2[_0x2113('0x1a')][_0x2113('0x1f')]?_[_0x2113('0x21')](_0x5261d2[_0x2113('0x1a')][_0x2113('0x1f')],function(_0x41e5e2){return{'model':db[_0x41e5e2[_0x2113('0x20')]],'as':_0x41e5e2['as'],'attributes':_0x41e5e2[_0x2113('0x1d')],'include':_0x41e5e2[_0x2113('0x1f')]?_[_0x2113('0x21')](_0x41e5e2[_0x2113('0x1f')],function(_0x47c436){return{'model':db[_0x47c436[_0x2113('0x20')]],'as':_0x47c436['as'],'attributes':_0x47c436[_0x2113('0x1d')],'include':_0x47c436[_0x2113('0x1f')]?_[_0x2113('0x21')](_0x47c436[_0x2113('0x1f')],function(_0x15a2db){return{'model':db[_0x15a2db[_0x2113('0x20')]],'as':_0x15a2db['as'],'attributes':_0x15a2db['attributes']};}):[]};}):[]};}):[]:[]})[_0x2113('0x11')](function(_0x3fa8eb){logger[_0x2113('0x12')]('ShowMailAccount',_0x5261d2);logger['debug']('ShowMailAccount',_0x5261d2,JSON[_0x2113('0x22')](_0x3fa8eb));_0x5575de(_0x3fa8eb);})[_0x2113('0x17')](function(_0x4a9261){logger[_0x2113('0x15')]('ShowMailAccount',_0x4a9261['message'],_0x5261d2);_0x181b63(_0x1f1535['error'](0x1f4,_0x4a9261[_0x2113('0x16')]));});});};exports[_0x2113('0x26')]=function(_0xe0a52d){var _0x5b7361=this;return new Promise(function(_0x25b417,_0x5d026d){var _0x425aef={'body':_0xe0a52d[_0x2113('0x27')],'channel':'mail'};var _0x54b1c5=_[_0x2113('0x28')](_[_0x2113('0x29')](db[_0x2113('0x2a')][_0x2113('0x2b')]),[_0x2113('0x2c'),'updatedAt',_0x2113('0x2d'),_0x2113('0x2e')]);var _0x244f39=![];if(_0xe0a52d[_0x2113('0x27')]['id']){delete _0xe0a52d['body']['id'];}if(_[_0x2113('0x2f')](_0xe0a52d[_0x2113('0x27')]['from'])){return _0x5d026d(_0x5b7361[_0x2113('0x15')](0x1f4,_0x2113('0x30')));}if(_[_0x2113('0x2f')](_0xe0a52d['body'][_0x2113('0x27')])||_0xe0a52d[_0x2113('0x27')][_0x2113('0x27')]===''){return _0x5d026d(_0x5b7361[_0x2113('0x15')](0x1f4,_0x2113('0x31')));}if(_[_0x2113('0x2f')](_0xe0a52d[_0x2113('0x27')]['mapKey'])){return _0x5d026d(_0x5b7361[_0x2113('0x15')](0x1f4,_0x2113('0x32')+_0x54b1c5));}if(!_['includes'](_0x54b1c5,_0xe0a52d[_0x2113('0x27')]['mapKey'])){return _0x5d026d(_0x5b7361[_0x2113('0x15')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x54b1c5));}var _0x1d1b12={};_0x1d1b12[_0xe0a52d[_0x2113('0x27')]['mapKey']]=_0xe0a52d[_0x2113('0x27')][_0x2113('0x33')];return db['MailAccount'][_0x2113('0x25')]({'where':{'id':_0xe0a52d[_0x2113('0x34')]['id']},'include':[{'model':db[_0x2113('0x35')],'as':'List','include':[{'model':db[_0x2113('0x2a')],'as':_0x2113('0x36'),'where':_0x1d1b12,'limit':0x1,'order':[[_0x2113('0x37'),_0x2113('0x38')]]}]},{'model':db[_0x2113('0x39')],'as':_0x2113('0x3a')},{'model':db[_0x2113('0x3b')],'as':_0x2113('0x3c')}]})['then'](function(_0x4e6c09){if(_0x4e6c09&&_0x4e6c09[_0x2113('0x3d')]){var _0x3c33f4=_0x4e6c09[_0x2113('0x3e')]({'plain':!![]});_0x425aef[_0x2113('0x34')]=_[_0x2113('0x3f')](_0x3c33f4,[_0x2113('0x3a'),_0x2113('0x3d')]);_0x425aef[_0x2113('0x40')]=_0x3c33f4[_0x2113('0x3a')];_0x425aef[_0x2113('0x41')]=_0x3c33f4[_0x2113('0x3d')];_0x425aef['applications']=_[_0x2113('0x42')](_0x425aef[_0x2113('0x40')],[_0x2113('0x43')],[_0x2113('0x44')]);if(_0x425aef[_0x2113('0x34')]&&_0x425aef['account'][_0x2113('0x45')]){_0x425aef[_0x2113('0x40')][_0x2113('0x46')]({'id':0x0,'priority':_0x425aef[_0x2113('0x40')][_0x2113('0x47')]+0x1,'app':_0x2113('0x48'),'appdata':_0x2113('0x45'),'interval':'*,*,*,*'});}if(_0x425aef[_0x2113('0x34')]['Applications']){delete _0x425aef[_0x2113('0x34')][_0x2113('0x3a')];}if(_0x425aef[_0x2113('0x34')]['List']){delete _0x425aef[_0x2113('0x34')][_0x2113('0x3d')];}if(_0x3c33f4[_0x2113('0x3d')][_0x2113('0x36')][_0x2113('0x47')]){return _0x3c33f4[_0x2113('0x3d')][_0x2113('0x36')][0x0];}var _0x4d1d63=_[_0x2113('0xb')](_0xe0a52d['body'],{'firstName':_0xe0a52d[_0x2113('0x27')][_0x2113('0x33')],'ListId':_0x3c33f4[_0x2113('0x2e')]});_0x4d1d63[_0xe0a52d[_0x2113('0x27')][_0x2113('0x49')]]=_0xe0a52d[_0x2113('0x27')][_0x2113('0x33')];return db[_0x2113('0x2a')][_0x2113('0x4a')](_0x4d1d63);}else{throw new Error(_0x2113('0x4b'));}})['then'](function(_0x193645){_0x425aef[_0x2113('0x4c')]=_0x193645;if(_0x193645){if(!_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')][_0x2113('0x4d')]){_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')]['messageId']=rs[_0x2113('0x4e')]()+'\x20'+_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')][_0x2113('0x33')];}var _0x29d07a={'ContactId':_0x193645['id'],'MailAccountId':_0xe0a52d['account']['id'],'inReplyTo':_0xe0a52d[_0x2113('0x27')]['message']['messageId'],'to':_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')][_0x2113('0x33')],'cc':_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')]['cc'],'subject':_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')]['subject'],'attach':_0xe0a52d['body']['message'][_0x2113('0x4f')],'lastMsgAt':moment()[_0x2113('0x50')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0xe0a52d['body']['body']};return db[_0x2113('0x51')][_0x2113('0x25')]({'where':{'closed':![],'MailAccountId':_0xe0a52d[_0x2113('0x34')]['id']},'include':[{'model':db[_0x2113('0x52')],'as':_0x2113('0x53'),'attributes':[_0x2113('0x4d')],'where':{'messageId':_0xe0a52d['body'][_0x2113('0x16')][_0x2113('0x54')]}}]})[_0x2113('0x11')](function(_0x393b4c){if(_0x393b4c){return[_0x393b4c,![]];}return db[_0x2113('0x51')][_0x2113('0x4a')](_0x29d07a)[_0x2113('0x11')](function(_0x7ab2d1){return[_0x7ab2d1,!![]];});});}else{throw new Error(_0x2113('0x55'));}})['spread'](function(_0x39596f,_0x59ad20){if(_0x39596f){_0x244f39=_0x59ad20;if(!_0x59ad20){return _0x39596f[_0x2113('0x56')]({'inReplyTo':_0xe0a52d['body'][_0x2113('0x16')]['messageId'],'to':_0xe0a52d[_0x2113('0x27')]['message'][_0x2113('0x33')],'cc':_0xe0a52d['body']['message']['cc'],'subject':_0xe0a52d[_0x2113('0x27')]['message'][_0x2113('0x57')],'attach':_0x39596f[_0x2113('0x4f')]?_0x39596f[_0x2113('0x4f')]:_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')][_0x2113('0x4f')],'substatus':null,'substatusAt':moment()['format'](_0x2113('0x58')),'lastMsgAt':moment()[_0x2113('0x50')](_0x2113('0x58')),'lastMsgDirection':'in','lastMsgBody':_0xe0a52d[_0x2113('0x27')][_0x2113('0x27')]});}else{return _0x39596f;}}})[_0x2113('0x11')](function(_0x485156){_0x425aef[_0x2113('0x59')]=_0x485156[_0x2113('0x3e')]({'plain':!![]});_0x425aef[_0x2113('0x59')][_0x2113('0x5a')]=_0x244f39;return db[_0x2113('0x52')]['create']({'body':_0xe0a52d['body'][_0x2113('0x27')],'MailAccountId':_0xe0a52d['account']['id'],'MailInteractionId':_0x485156['id'],'direction':'in','ContactId':_0x425aef[_0x2113('0x4c')]['id'],'messageId':_0xe0a52d['body'][_0x2113('0x16')][_0x2113('0x4d')],'from':_0xe0a52d['body']['message'][_0x2113('0x33')],'to':_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')]['to'],'cc':_0xe0a52d[_0x2113('0x27')]['message']['cc'],'subject':_0xe0a52d['body'][_0x2113('0x16')][_0x2113('0x57')],'attach':_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')][_0x2113('0x4f')],'Attachments':_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')]['attachments'],'originTo':_0xe0a52d['body'][_0x2113('0x16')][_0x2113('0x5b')],'originCc':_0xe0a52d['body'][_0x2113('0x16')]['originCc'],'bcc':_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')][_0x2113('0x5c')],'ChatWebsiteId':_0xe0a52d[_0x2113('0x27')]['message'][_0x2113('0x5d')]||null,'originChannel':_0xe0a52d[_0x2113('0x27')]['message']['originChannel']||_0x2113('0x5e'),'ChatOfflineMessageId':_0xe0a52d[_0x2113('0x27')][_0x2113('0x16')][_0x2113('0x5f')]||null},{'include':[{'model':db[_0x2113('0x60')],'as':_0x2113('0x61')}]});})['then'](function(_0x2e8d92){_0x425aef[_0x2113('0x16')]=_0x2e8d92;if(_0x425aef[_0x2113('0x59')][_0x2113('0x62')]){return db[_0x2113('0x63')]['find']({'attributes':['id',_0x2113('0x64')],'where':{'id':_0x425aef[_0x2113('0x59')][_0x2113('0x62')]}})[_0x2113('0x11')](function(_0x11a33f){if(_0x11a33f){_0x425aef[_0x2113('0x40')][_0x2113('0x65')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x11a33f[_0x2113('0x64')]+','+(_0x425aef['account'][_0x2113('0x66')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x2113('0x67'),_0x2113('0x68'),_0x425aef);});}return respondWithRpcPromise(_0x2113('0x67'),'startRouting',_0x425aef);})[_0x2113('0x11')](function(_0x39b4af){_0x25b417(_0x39b4af);})['catch'](function(_0x1f6002){_0x5d026d(_0x5b7361[_0x2113('0x15')](0x1f4,_0x1f6002[_0x2113('0x16')]));});});};