Built motion from commit (unavailable).|2.5.31
[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 _0x0271=['then','info','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','error','message','MailAccount,\x20%s,\x20%s','catch','GetMailAccount','MailAccount','options','attributes','limit','include','map','model','debug','find','raw','where','ShowMailAccount','stringify','NotifyMailAccount','mail','difference','keys','CmContact','rawAttributes','updatedAt','CompanyId','ListId','body','from','from\x20is\x20mandatory','isNil','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','Contacts','MailApplication','List','get','omit','Applications','applications','list','orderBy','priority','asc','autoclose','close','length','defaults','create','List\x20not\x20found','contact','messageId','generate','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','inReplyTo','MailInteraction','spread','update','interaction','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','Attachments','UserId','User','name','unshift','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','redis','localhost','socket.io-emitter','./mailAccount.socket','register'];(function(_0x5103b6,_0x15d61b){var _0x5bcfe5=function(_0x44edb6){while(--_0x44edb6){_0x5103b6['push'](_0x5103b6['shift']());}};_0x5bcfe5(++_0x15d61b);}(_0x0271,0x189));var _0x1027=function(_0x424c39,_0xfc231d){_0x424c39=_0x424c39-0x0;var _0x222b08=_0x0271[_0x424c39];return _0x222b08;};'use strict';var _=require(_0x1027('0x0'));var util=require(_0x1027('0x1'));var moment=require(_0x1027('0x2'));var BPromise=require(_0x1027('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1027('0x4'))['db'];var utils=require(_0x1027('0x5'));var logger=require('../../config/logger')(_0x1027('0x6'));var config=require('../../config/environment');var jayson=require(_0x1027('0x7'));var client=jayson[_0x1027('0x8')][_0x1027('0x9')]({'port':0x232c});config['redis']=_['defaults'](config[_0x1027('0xa')],{'host':_0x1027('0xb'),'port':0x18eb});var socket=require(_0x1027('0xc'))(new Redis(config[_0x1027('0xa')]));require(_0x1027('0xd'))[_0x1027('0xe')](socket);function respondWithRpcPromise(_0x586275,_0x1cdc16,_0x177c5c){return new BPromise(function(_0x47504c,_0x44afdd){return client['request'](_0x586275,_0x177c5c)[_0x1027('0xf')](function(_0x2606de){logger[_0x1027('0x10')]('MailAccount,\x20%s,\x20%s',_0x1cdc16,_0x1027('0x11'));logger['debug'](_0x1027('0x12'),_0x1cdc16,_0x1027('0x11'),JSON['stringify'](_0x2606de));if(_0x2606de[_0x1027('0x13')]){if(_0x2606de['error']['code']===0x1f4){logger[_0x1027('0x13')]('MailAccount,\x20%s,\x20%s',_0x1cdc16,_0x2606de[_0x1027('0x13')]['message']);return _0x44afdd(_0x2606de[_0x1027('0x13')][_0x1027('0x14')]);}logger[_0x1027('0x13')](_0x1027('0x15'),_0x1cdc16,_0x2606de[_0x1027('0x13')][_0x1027('0x14')]);return _0x47504c(_0x2606de[_0x1027('0x13')][_0x1027('0x14')]);}else{logger[_0x1027('0x10')](_0x1027('0x15'),_0x1cdc16,_0x1027('0x11'));_0x47504c(_0x2606de['result'][_0x1027('0x14')]);}})[_0x1027('0x16')](function(_0x45da6d){logger[_0x1027('0x13')](_0x1027('0x15'),_0x1cdc16,_0x45da6d);_0x44afdd(_0x45da6d);});});}exports[_0x1027('0x17')]=function(_0x150e01){var _0x404b39=this;return new Promise(function(_0x14fc39,_0x5cf269){return db[_0x1027('0x18')]['findAll']({'raw':_0x150e01['options']?_0x150e01[_0x1027('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x150e01[_0x1027('0x19')]?_0x150e01['options']['where']||null:null,'attributes':_0x150e01[_0x1027('0x19')]?_0x150e01[_0x1027('0x19')][_0x1027('0x1a')]||null:null,'limit':_0x150e01['options']?_0x150e01[_0x1027('0x19')][_0x1027('0x1b')]||null:null,'include':_0x150e01[_0x1027('0x19')]?_0x150e01[_0x1027('0x19')][_0x1027('0x1c')]?_[_0x1027('0x1d')](_0x150e01[_0x1027('0x19')][_0x1027('0x1c')],function(_0x14d810){return{'model':db[_0x14d810['model']],'as':_0x14d810['as'],'attributes':_0x14d810[_0x1027('0x1a')],'include':_0x14d810['include']?_[_0x1027('0x1d')](_0x14d810[_0x1027('0x1c')],function(_0x1dac76){return{'model':db[_0x1dac76[_0x1027('0x1e')]],'as':_0x1dac76['as'],'attributes':_0x1dac76[_0x1027('0x1a')],'include':_0x1dac76['include']?_[_0x1027('0x1d')](_0x1dac76[_0x1027('0x1c')],function(_0x197ed6){return{'model':db[_0x197ed6[_0x1027('0x1e')]],'as':_0x197ed6['as'],'attributes':_0x197ed6[_0x1027('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x1027('0xf')](function(_0x4c8a25){logger[_0x1027('0x10')](_0x1027('0x17'),_0x150e01);logger[_0x1027('0x1f')](_0x1027('0x17'),_0x150e01,JSON['stringify'](_0x4c8a25));_0x14fc39(_0x4c8a25);})['catch'](function(_0x1d356c){logger['error'](_0x1027('0x17'),_0x1d356c[_0x1027('0x14')],_0x150e01);_0x5cf269(_0x404b39[_0x1027('0x13')](0x1f4,_0x1d356c['message']));});});};exports['ShowMailAccount']=function(_0x2030c2){var _0xfc28f8=this;return new Promise(function(_0xcfe54e,_0x423f10){return db['MailAccount'][_0x1027('0x20')]({'raw':_0x2030c2[_0x1027('0x19')]?_0x2030c2[_0x1027('0x19')][_0x1027('0x21')]===undefined?!![]:![]:!![],'where':_0x2030c2[_0x1027('0x19')]?_0x2030c2[_0x1027('0x19')][_0x1027('0x22')]||null:null,'attributes':_0x2030c2[_0x1027('0x19')]?_0x2030c2['options'][_0x1027('0x1a')]||null:null,'include':_0x2030c2['options']?_0x2030c2[_0x1027('0x19')][_0x1027('0x1c')]?_[_0x1027('0x1d')](_0x2030c2[_0x1027('0x19')][_0x1027('0x1c')],function(_0xce4251){return{'model':db[_0xce4251[_0x1027('0x1e')]],'as':_0xce4251['as'],'attributes':_0xce4251[_0x1027('0x1a')],'include':_0xce4251[_0x1027('0x1c')]?_[_0x1027('0x1d')](_0xce4251['include'],function(_0x43a241){return{'model':db[_0x43a241[_0x1027('0x1e')]],'as':_0x43a241['as'],'attributes':_0x43a241[_0x1027('0x1a')],'include':_0x43a241[_0x1027('0x1c')]?_['map'](_0x43a241['include'],function(_0x1761bb){return{'model':db[_0x1761bb['model']],'as':_0x1761bb['as'],'attributes':_0x1761bb[_0x1027('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x1027('0xf')](function(_0x52d2b0){logger[_0x1027('0x10')](_0x1027('0x23'),_0x2030c2);logger[_0x1027('0x1f')](_0x1027('0x23'),_0x2030c2,JSON[_0x1027('0x24')](_0x52d2b0));_0xcfe54e(_0x52d2b0);})['catch'](function(_0x4652a3){logger[_0x1027('0x13')](_0x1027('0x23'),_0x4652a3[_0x1027('0x14')],_0x2030c2);_0x423f10(_0xfc28f8[_0x1027('0x13')](0x1f4,_0x4652a3['message']));});});};exports[_0x1027('0x25')]=function(_0x310e05){var _0x28a54e=this;return new Promise(function(_0x8612fb,_0x1f20b0){var _0x1700df={'body':_0x310e05['body'],'channel':_0x1027('0x26')};var _0x5d2cd2=_[_0x1027('0x27')](_[_0x1027('0x28')](db[_0x1027('0x29')][_0x1027('0x2a')]),['createdAt',_0x1027('0x2b'),_0x1027('0x2c'),_0x1027('0x2d')]);var _0x2e0d24=![];if(_0x310e05[_0x1027('0x2e')]['id']){delete _0x310e05['body']['id'];}if(_['isNil'](_0x310e05['body'][_0x1027('0x2f')])){return _0x1f20b0(_0x28a54e[_0x1027('0x13')](0x1f4,_0x1027('0x30')));}if(_[_0x1027('0x31')](_0x310e05[_0x1027('0x2e')][_0x1027('0x2e')])||_0x310e05[_0x1027('0x2e')][_0x1027('0x2e')]===''){return _0x1f20b0(_0x28a54e[_0x1027('0x13')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x1027('0x31')](_0x310e05[_0x1027('0x2e')][_0x1027('0x32')])){return _0x1f20b0(_0x28a54e['error'](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5d2cd2));}if(!_[_0x1027('0x33')](_0x5d2cd2,_0x310e05[_0x1027('0x2e')][_0x1027('0x32')])){return _0x1f20b0(_0x28a54e[_0x1027('0x13')](0x1f4,_0x1027('0x34')+_0x5d2cd2));}var _0x230808={};_0x230808[_0x310e05[_0x1027('0x2e')][_0x1027('0x32')]]=_0x310e05[_0x1027('0x2e')][_0x1027('0x2f')];return db[_0x1027('0x18')]['find']({'where':{'id':_0x310e05[_0x1027('0x35')]['id']},'include':[{'model':db[_0x1027('0x36')],'as':'List','include':[{'model':db['CmContact'],'as':_0x1027('0x37'),'where':_0x230808,'limit':0x1,'order':[[_0x1027('0x2b'),'DESC']]}]},{'model':db[_0x1027('0x38')],'as':'Applications'},{'model':db['MailServerOut'],'as':'Smtp'}]})['then'](function(_0x204774){if(_0x204774&&_0x204774[_0x1027('0x39')]){var _0x2af2a1=_0x204774[_0x1027('0x3a')]({'plain':!![]});_0x1700df[_0x1027('0x35')]=_[_0x1027('0x3b')](_0x2af2a1,[_0x1027('0x3c'),_0x1027('0x39')]);_0x1700df[_0x1027('0x3d')]=_0x2af2a1[_0x1027('0x3c')];_0x1700df[_0x1027('0x3e')]=_0x2af2a1['List'];_0x1700df['applications']=_[_0x1027('0x3f')](_0x1700df[_0x1027('0x3d')],[_0x1027('0x40')],[_0x1027('0x41')]);if(_0x1700df[_0x1027('0x35')]&&_0x1700df['account'][_0x1027('0x42')]){_0x1700df[_0x1027('0x3d')]['push']({'id':0x0,'priority':_0x1700df[_0x1027('0x3d')]['length']+0x1,'app':_0x1027('0x43'),'appdata':_0x1027('0x42'),'interval':'*,*,*,*'});}if(_0x1700df[_0x1027('0x35')]['Applications']){delete _0x1700df[_0x1027('0x35')][_0x1027('0x3c')];}if(_0x1700df['account']['List']){delete _0x1700df[_0x1027('0x35')][_0x1027('0x39')];}if(_0x2af2a1[_0x1027('0x39')][_0x1027('0x37')][_0x1027('0x44')]){return _0x2af2a1[_0x1027('0x39')][_0x1027('0x37')][0x0];}var _0x17e6a9=_[_0x1027('0x45')](_0x310e05[_0x1027('0x2e')],{'firstName':_0x310e05[_0x1027('0x2e')]['from'],'ListId':_0x2af2a1[_0x1027('0x2d')]});_0x17e6a9[_0x310e05[_0x1027('0x2e')][_0x1027('0x32')]]=_0x310e05[_0x1027('0x2e')][_0x1027('0x2f')];return db[_0x1027('0x29')][_0x1027('0x46')](_0x17e6a9);}else{throw new Error(_0x1027('0x47'));}})['then'](function(_0x4288ef){_0x1700df[_0x1027('0x48')]=_0x4288ef;if(_0x4288ef){if(!_0x310e05['body'][_0x1027('0x14')][_0x1027('0x49')]){_0x310e05[_0x1027('0x2e')]['message'][_0x1027('0x49')]=rs[_0x1027('0x4a')]()+'\x20'+_0x310e05[_0x1027('0x2e')]['message'][_0x1027('0x2f')];}var _0x52e996={'ContactId':_0x4288ef['id'],'MailAccountId':_0x310e05['account']['id'],'inReplyTo':_0x310e05['body'][_0x1027('0x14')]['messageId'],'to':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')][_0x1027('0x2f')],'cc':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')]['cc'],'subject':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')]['subject'],'attach':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')][_0x1027('0x4b')],'lastMsgAt':moment()[_0x1027('0x4c')](_0x1027('0x4d')),'lastMsgDirection':'in'};return db['MailInteraction']['find']({'where':{'closed':![],'MailAccountId':_0x310e05['account']['id']},'include':[{'model':db[_0x1027('0x4e')],'as':'Messages','attributes':[_0x1027('0x49')],'where':{'messageId':_0x310e05['body']['message'][_0x1027('0x4f')]}}]})[_0x1027('0xf')](function(_0x15deb0){if(_0x15deb0){return[_0x15deb0,![]];}return db[_0x1027('0x50')][_0x1027('0x46')](_0x52e996)[_0x1027('0xf')](function(_0x5a2dd0){return[_0x5a2dd0,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x1027('0x51')](function(_0x3ee39d,_0x3a04d1){if(_0x3ee39d){_0x2e0d24=_0x3a04d1;if(!_0x3a04d1){return _0x3ee39d[_0x1027('0x52')]({'inReplyTo':_0x310e05['body'][_0x1027('0x14')][_0x1027('0x49')],'to':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')][_0x1027('0x2f')],'cc':_0x310e05[_0x1027('0x2e')]['message']['cc'],'subject':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')]['subject'],'attach':_0x3ee39d[_0x1027('0x4b')]?_0x3ee39d[_0x1027('0x4b')]:_0x310e05['body'][_0x1027('0x14')]['attach'],'substatus':null,'substatusAt':moment()[_0x1027('0x4c')](_0x1027('0x4d')),'lastMsgAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x3ee39d;}}})[_0x1027('0xf')](function(_0x1e7e92){_0x1700df['interaction']=_0x1e7e92['get']({'plain':!![]});_0x1700df[_0x1027('0x53')]['created']=_0x2e0d24;return db[_0x1027('0x4e')][_0x1027('0x46')]({'body':_0x310e05['body'][_0x1027('0x2e')],'MailAccountId':_0x310e05[_0x1027('0x35')]['id'],'MailInteractionId':_0x1e7e92['id'],'direction':'in','ContactId':_0x1700df[_0x1027('0x48')]['id'],'messageId':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')]['messageId'],'from':_0x310e05['body'][_0x1027('0x14')][_0x1027('0x2f')],'to':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')]['to'],'cc':_0x310e05['body']['message']['cc'],'subject':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')]['subject'],'attach':_0x310e05['body'][_0x1027('0x14')][_0x1027('0x4b')],'Attachments':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')][_0x1027('0x54')],'originTo':_0x310e05[_0x1027('0x2e')]['message'][_0x1027('0x55')],'originCc':_0x310e05[_0x1027('0x2e')]['message'][_0x1027('0x56')],'bcc':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')][_0x1027('0x57')],'ChatWebsiteId':_0x310e05['body'][_0x1027('0x14')][_0x1027('0x58')]||null,'originChannel':_0x310e05[_0x1027('0x2e')][_0x1027('0x14')][_0x1027('0x59')]||_0x1027('0x5a'),'ChatOfflineMessageId':_0x310e05['body'][_0x1027('0x14')][_0x1027('0x5b')]||null},{'include':[{'model':db[_0x1027('0x5c')],'as':_0x1027('0x5d')}]});})[_0x1027('0xf')](function(_0x49945d){_0x1700df[_0x1027('0x14')]=_0x49945d;if(_0x1700df[_0x1027('0x53')][_0x1027('0x5e')]){return db[_0x1027('0x5f')][_0x1027('0x20')]({'attributes':['id',_0x1027('0x60')],'where':{'id':_0x1700df['interaction'][_0x1027('0x5e')]}})[_0x1027('0xf')](function(_0x1692c5){if(_0x1692c5){_0x1700df[_0x1027('0x3d')][_0x1027('0x61')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x1692c5['name']+','+(_0x1700df[_0x1027('0x35')][_0x1027('0x62')]||0xa),'interval':_0x1027('0x63')});}return respondWithRpcPromise(_0x1027('0x64'),_0x1027('0x65'),_0x1700df);});}return respondWithRpcPromise(_0x1027('0x64'),_0x1027('0x65'),_0x1700df);})[_0x1027('0xf')](function(_0xa033bd){_0x8612fb(_0xa033bd);})['catch'](function(_0x3dbdde){_0x1f20b0(_0x28a54e['error'](0x1f4,_0x3dbdde[_0x1027('0x14')]));});});};