Built motion from commit ab870f9e.|2.5.44
[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 _0x1b83=['waitForTheAssignedAgent','Start','startRouting','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','MailAccount,\x20%s,\x20%s','message','result','GetMailAccount','options','raw','where','include','map','model','attributes','catch','ShowMailAccount','MailAccount','find','NotifyMailAccount','mail','difference','CmContact','createdAt','updatedAt','CompanyId','body','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','account','List','Contacts','DESC','MailServerOut','omit','Applications','list','applications','orderBy','priority','asc','push','length','autoclose','*,*,*,*','from','create','List\x20not\x20found','contact','messageId','generate','attach','format','Messages','inReplyTo','MailInteraction','spread','update','subject','YYYY-MM-DD\x20HH:mm:ss','interaction','get','created','attachments','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','Attachments','UserId','User','unshift','agent','name'];(function(_0x51e6a7,_0x312fab){var _0x4d1ca6=function(_0x1019fc){while(--_0x1019fc){_0x51e6a7['push'](_0x51e6a7['shift']());}};_0x4d1ca6(++_0x312fab);}(_0x1b83,0x6e));var _0x31b8=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x1b83[_0x3947c9];return _0x2e7871;};'use strict';var _=require('lodash');var util=require(_0x31b8('0x0'));var moment=require(_0x31b8('0x1'));var BPromise=require(_0x31b8('0x2'));var rs=require(_0x31b8('0x3'));var fs=require('fs');var Redis=require(_0x31b8('0x4'));var db=require(_0x31b8('0x5'))['db'];var utils=require(_0x31b8('0x6'));var logger=require(_0x31b8('0x7'))(_0x31b8('0x8'));var config=require(_0x31b8('0x9'));var jayson=require(_0x31b8('0xa'));var client=jayson[_0x31b8('0xb')][_0x31b8('0xc')]({'port':0x232c});config[_0x31b8('0xd')]=_[_0x31b8('0xe')](config[_0x31b8('0xd')],{'host':_0x31b8('0xf'),'port':0x18eb});var socket=require(_0x31b8('0x10'))(new Redis(config[_0x31b8('0xd')]));require(_0x31b8('0x11'))[_0x31b8('0x12')](socket);function respondWithRpcPromise(_0x1df89d,_0x5831c4,_0x31d7e1){return new BPromise(function(_0x3cdfc4,_0x5b907f){return client[_0x31b8('0x13')](_0x1df89d,_0x31d7e1)[_0x31b8('0x14')](function(_0x3d0edb){logger[_0x31b8('0x15')]('MailAccount,\x20%s,\x20%s',_0x5831c4,_0x31b8('0x16'));logger[_0x31b8('0x17')](_0x31b8('0x18'),_0x5831c4,'request\x20sent',JSON[_0x31b8('0x19')](_0x3d0edb));if(_0x3d0edb[_0x31b8('0x1a')]){if(_0x3d0edb['error'][_0x31b8('0x1b')]===0x1f4){logger[_0x31b8('0x1a')](_0x31b8('0x1c'),_0x5831c4,_0x3d0edb[_0x31b8('0x1a')][_0x31b8('0x1d')]);return _0x5b907f(_0x3d0edb[_0x31b8('0x1a')]['message']);}logger['error'](_0x31b8('0x1c'),_0x5831c4,_0x3d0edb[_0x31b8('0x1a')][_0x31b8('0x1d')]);return _0x3cdfc4(_0x3d0edb[_0x31b8('0x1a')]['message']);}else{logger[_0x31b8('0x15')](_0x31b8('0x1c'),_0x5831c4,_0x31b8('0x16'));_0x3cdfc4(_0x3d0edb[_0x31b8('0x1e')]['message']);}})['catch'](function(_0x2bdb59){logger[_0x31b8('0x1a')](_0x31b8('0x1c'),_0x5831c4,_0x2bdb59);_0x5b907f(_0x2bdb59);});});}exports[_0x31b8('0x1f')]=function(_0x18763d){var _0x3586c6=this;return new Promise(function(_0x287aa2,_0x4fbf5e){return db['MailAccount']['findAll']({'raw':_0x18763d[_0x31b8('0x20')]?_0x18763d['options'][_0x31b8('0x21')]===undefined?!![]:![]:!![],'where':_0x18763d[_0x31b8('0x20')]?_0x18763d[_0x31b8('0x20')][_0x31b8('0x22')]||null:null,'attributes':_0x18763d[_0x31b8('0x20')]?_0x18763d[_0x31b8('0x20')]['attributes']||null:null,'limit':_0x18763d[_0x31b8('0x20')]?_0x18763d[_0x31b8('0x20')]['limit']||null:null,'include':_0x18763d['options']?_0x18763d[_0x31b8('0x20')][_0x31b8('0x23')]?_[_0x31b8('0x24')](_0x18763d[_0x31b8('0x20')][_0x31b8('0x23')],function(_0x1c0ae2){return{'model':db[_0x1c0ae2[_0x31b8('0x25')]],'as':_0x1c0ae2['as'],'attributes':_0x1c0ae2[_0x31b8('0x26')],'include':_0x1c0ae2[_0x31b8('0x23')]?_[_0x31b8('0x24')](_0x1c0ae2[_0x31b8('0x23')],function(_0x130d8){return{'model':db[_0x130d8[_0x31b8('0x25')]],'as':_0x130d8['as'],'attributes':_0x130d8['attributes'],'include':_0x130d8[_0x31b8('0x23')]?_[_0x31b8('0x24')](_0x130d8[_0x31b8('0x23')],function(_0xfad905){return{'model':db[_0xfad905[_0x31b8('0x25')]],'as':_0xfad905['as'],'attributes':_0xfad905['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x516b50){logger['info'](_0x31b8('0x1f'),_0x18763d);logger[_0x31b8('0x17')](_0x31b8('0x1f'),_0x18763d,JSON['stringify'](_0x516b50));_0x287aa2(_0x516b50);})[_0x31b8('0x27')](function(_0x5e33){logger[_0x31b8('0x1a')](_0x31b8('0x1f'),_0x5e33['message'],_0x18763d);_0x4fbf5e(_0x3586c6[_0x31b8('0x1a')](0x1f4,_0x5e33[_0x31b8('0x1d')]));});});};exports[_0x31b8('0x28')]=function(_0x10ef09){var _0x189f67=this;return new Promise(function(_0x19f4d7,_0x2e0396){return db[_0x31b8('0x29')][_0x31b8('0x2a')]({'raw':_0x10ef09[_0x31b8('0x20')]?_0x10ef09[_0x31b8('0x20')][_0x31b8('0x21')]===undefined?!![]:![]:!![],'where':_0x10ef09[_0x31b8('0x20')]?_0x10ef09[_0x31b8('0x20')]['where']||null:null,'attributes':_0x10ef09['options']?_0x10ef09[_0x31b8('0x20')]['attributes']||null:null,'include':_0x10ef09['options']?_0x10ef09['options'][_0x31b8('0x23')]?_[_0x31b8('0x24')](_0x10ef09[_0x31b8('0x20')][_0x31b8('0x23')],function(_0x436d6b){return{'model':db[_0x436d6b[_0x31b8('0x25')]],'as':_0x436d6b['as'],'attributes':_0x436d6b['attributes'],'include':_0x436d6b[_0x31b8('0x23')]?_[_0x31b8('0x24')](_0x436d6b[_0x31b8('0x23')],function(_0x5857b6){return{'model':db[_0x5857b6[_0x31b8('0x25')]],'as':_0x5857b6['as'],'attributes':_0x5857b6[_0x31b8('0x26')],'include':_0x5857b6[_0x31b8('0x23')]?_['map'](_0x5857b6[_0x31b8('0x23')],function(_0x5c5837){return{'model':db[_0x5c5837[_0x31b8('0x25')]],'as':_0x5c5837['as'],'attributes':_0x5c5837[_0x31b8('0x26')]};}):[]};}):[]};}):[]:[]})[_0x31b8('0x14')](function(_0x17d1ac){logger[_0x31b8('0x15')](_0x31b8('0x28'),_0x10ef09);logger[_0x31b8('0x17')](_0x31b8('0x28'),_0x10ef09,JSON[_0x31b8('0x19')](_0x17d1ac));_0x19f4d7(_0x17d1ac);})[_0x31b8('0x27')](function(_0x3ebd00){logger[_0x31b8('0x1a')]('ShowMailAccount',_0x3ebd00['message'],_0x10ef09);_0x2e0396(_0x189f67['error'](0x1f4,_0x3ebd00[_0x31b8('0x1d')]));});});};exports[_0x31b8('0x2b')]=function(_0x3d0fe){var _0x4ea90b=this;return new Promise(function(_0x5c97bf,_0x35f558){var _0x2e0e14={'body':_0x3d0fe['body'],'channel':_0x31b8('0x2c')};var _0x3bebf7=_[_0x31b8('0x2d')](_['keys'](db[_0x31b8('0x2e')]['rawAttributes']),[_0x31b8('0x2f'),_0x31b8('0x30'),_0x31b8('0x31'),'ListId']);var _0x3d33bc=![];if(_0x3d0fe[_0x31b8('0x32')]['id']){delete _0x3d0fe[_0x31b8('0x32')]['id'];}if(_[_0x31b8('0x33')](_0x3d0fe[_0x31b8('0x32')]['from'])){return _0x35f558(_0x4ea90b['error'](0x1f4,'from\x20is\x20mandatory'));}if(_[_0x31b8('0x33')](_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x32')])||_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x32')]===''){return _0x35f558(_0x4ea90b[_0x31b8('0x1a')](0x1f4,_0x31b8('0x34')));}if(_['isNil'](_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x35')])){return _0x35f558(_0x4ea90b[_0x31b8('0x1a')](0x1f4,_0x31b8('0x36')+_0x3bebf7));}if(!_[_0x31b8('0x37')](_0x3bebf7,_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x35')])){return _0x35f558(_0x4ea90b['error'](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x3bebf7));}var _0x873728={};_0x873728[_0x3d0fe['body'][_0x31b8('0x35')]]=_0x3d0fe[_0x31b8('0x32')]['from'];return db['MailAccount'][_0x31b8('0x2a')]({'where':{'id':_0x3d0fe[_0x31b8('0x38')]['id']},'include':[{'model':db['CmList'],'as':_0x31b8('0x39'),'include':[{'model':db[_0x31b8('0x2e')],'as':_0x31b8('0x3a'),'where':_0x873728,'limit':0x1,'order':[[_0x31b8('0x30'),_0x31b8('0x3b')]]}]},{'model':db['MailApplication'],'as':'Applications'},{'model':db[_0x31b8('0x3c')],'as':'Smtp'}]})[_0x31b8('0x14')](function(_0x52f3d1){if(_0x52f3d1&&_0x52f3d1[_0x31b8('0x39')]){var _0x9bc2ff=_0x52f3d1['get']({'plain':!![]});_0x2e0e14[_0x31b8('0x38')]=_[_0x31b8('0x3d')](_0x9bc2ff,['Applications',_0x31b8('0x39')]);_0x2e0e14['applications']=_0x9bc2ff[_0x31b8('0x3e')];_0x2e0e14[_0x31b8('0x3f')]=_0x9bc2ff[_0x31b8('0x39')];_0x2e0e14[_0x31b8('0x40')]=_[_0x31b8('0x41')](_0x2e0e14[_0x31b8('0x40')],[_0x31b8('0x42')],[_0x31b8('0x43')]);if(_0x2e0e14['account']&&_0x2e0e14[_0x31b8('0x38')]['autoclose']){_0x2e0e14[_0x31b8('0x40')][_0x31b8('0x44')]({'id':0x0,'priority':_0x2e0e14[_0x31b8('0x40')][_0x31b8('0x45')]+0x1,'app':'close','appdata':_0x31b8('0x46'),'interval':_0x31b8('0x47')});}if(_0x2e0e14['account'][_0x31b8('0x3e')]){delete _0x2e0e14[_0x31b8('0x38')][_0x31b8('0x3e')];}if(_0x2e0e14[_0x31b8('0x38')][_0x31b8('0x39')]){delete _0x2e0e14['account'][_0x31b8('0x39')];}if(_0x9bc2ff['List'][_0x31b8('0x3a')][_0x31b8('0x45')]){return _0x9bc2ff[_0x31b8('0x39')]['Contacts'][0x0];}var _0x35c21c=_[_0x31b8('0xe')](_0x3d0fe[_0x31b8('0x32')],{'firstName':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x48')],'ListId':_0x9bc2ff['ListId']});_0x35c21c[_0x3d0fe[_0x31b8('0x32')]['mapKey']]=_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x48')];return db['CmContact'][_0x31b8('0x49')](_0x35c21c);}else{throw new Error(_0x31b8('0x4a'));}})[_0x31b8('0x14')](function(_0x3d0290){_0x2e0e14[_0x31b8('0x4b')]=_0x3d0290;if(_0x3d0290){if(!_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')]['messageId']){_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x4c')]=rs[_0x31b8('0x4d')]()+'\x20'+_0x3d0fe[_0x31b8('0x32')]['message'][_0x31b8('0x48')];}var _0x3f7af0={'ContactId':_0x3d0290['id'],'MailAccountId':_0x3d0fe['account']['id'],'inReplyTo':_0x3d0fe[_0x31b8('0x32')]['message'][_0x31b8('0x4c')],'to':_0x3d0fe['body'][_0x31b8('0x1d')]['from'],'cc':_0x3d0fe['body'][_0x31b8('0x1d')]['cc'],'subject':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')]['subject'],'attach':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x4e')],'lastMsgAt':moment()[_0x31b8('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db['MailInteraction'][_0x31b8('0x2a')]({'where':{'closed':![],'MailAccountId':_0x3d0fe['account']['id']},'include':[{'model':db['MailMessage'],'as':_0x31b8('0x50'),'attributes':['messageId'],'where':{'messageId':_0x3d0fe[_0x31b8('0x32')]['message'][_0x31b8('0x51')]}}]})[_0x31b8('0x14')](function(_0x4f09ec){if(_0x4f09ec){return[_0x4f09ec,![]];}return db[_0x31b8('0x52')][_0x31b8('0x49')](_0x3f7af0)[_0x31b8('0x14')](function(_0x242043){return[_0x242043,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x31b8('0x53')](function(_0xbee1e2,_0x1a7916){if(_0xbee1e2){_0x3d33bc=_0x1a7916;if(!_0x1a7916){return _0xbee1e2[_0x31b8('0x54')]({'inReplyTo':_0x3d0fe['body'][_0x31b8('0x1d')][_0x31b8('0x4c')],'to':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x48')],'cc':_0x3d0fe[_0x31b8('0x32')]['message']['cc'],'subject':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x55')],'attach':_0xbee1e2[_0x31b8('0x4e')]?_0xbee1e2[_0x31b8('0x4e')]:_0x3d0fe[_0x31b8('0x32')]['message'][_0x31b8('0x4e')],'substatus':null,'substatusAt':moment()['format'](_0x31b8('0x56')),'lastMsgAt':moment()[_0x31b8('0x4f')](_0x31b8('0x56')),'lastMsgDirection':'in'});}else{return _0xbee1e2;}}})['then'](function(_0x1cce61){_0x2e0e14[_0x31b8('0x57')]=_0x1cce61[_0x31b8('0x58')]({'plain':!![]});_0x2e0e14[_0x31b8('0x57')][_0x31b8('0x59')]=_0x3d33bc;return db['MailMessage']['create']({'body':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x32')],'MailAccountId':_0x3d0fe[_0x31b8('0x38')]['id'],'MailInteractionId':_0x1cce61['id'],'direction':'in','ContactId':_0x2e0e14[_0x31b8('0x4b')]['id'],'messageId':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x4c')],'from':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x48')],'to':_0x3d0fe['body'][_0x31b8('0x1d')]['to'],'cc':_0x3d0fe[_0x31b8('0x32')]['message']['cc'],'subject':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x55')],'attach':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x4e')],'Attachments':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x5a')],'originTo':_0x3d0fe['body'][_0x31b8('0x1d')]['originTo'],'originCc':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x5b')],'bcc':_0x3d0fe['body'][_0x31b8('0x1d')][_0x31b8('0x5c')],'ChatWebsiteId':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x5d')]||null,'originChannel':_0x3d0fe[_0x31b8('0x32')]['message'][_0x31b8('0x5e')]||_0x31b8('0x5f'),'ChatOfflineMessageId':_0x3d0fe[_0x31b8('0x32')][_0x31b8('0x1d')][_0x31b8('0x60')]||null},{'include':[{'model':db[_0x31b8('0x61')],'as':_0x31b8('0x62')}]});})[_0x31b8('0x14')](function(_0x53335a){_0x2e0e14[_0x31b8('0x1d')]=_0x53335a;if(_0x2e0e14[_0x31b8('0x57')][_0x31b8('0x63')]){return db[_0x31b8('0x64')][_0x31b8('0x2a')]({'attributes':['id','name'],'where':{'id':_0x2e0e14[_0x31b8('0x57')][_0x31b8('0x63')]}})['then'](function(_0x4583b0){if(_0x4583b0){_0x2e0e14[_0x31b8('0x40')][_0x31b8('0x65')]({'id':0x0,'priority':0x0,'app':_0x31b8('0x66'),'appdata':_0x4583b0[_0x31b8('0x67')]+','+(_0x2e0e14['account'][_0x31b8('0x68')]||0xa),'interval':_0x31b8('0x47')});}return respondWithRpcPromise(_0x31b8('0x69'),_0x31b8('0x6a'),_0x2e0e14);});}return respondWithRpcPromise(_0x31b8('0x69'),_0x31b8('0x6a'),_0x2e0e14);})[_0x31b8('0x14')](function(_0xd5257){_0x5c97bf(_0xd5257);})[_0x31b8('0x27')](function(_0x302207){_0x35f558(_0x4ea90b['error'](0x1f4,_0x302207[_0x31b8('0x1d')]));});});};