d6201a3464b6e4e027fc0553fc75d1b527624927
[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 _0xc8fe=['CmContact','Contacts','DESC','MailApplication','MailServerOut','get','omit','Applications','list','applications','orderBy','priority','asc','account','autoclose','push','length','close','*,*,*,*','create','List\x20not\x20found','messageId','generate','subject','attach','format','MailInteraction','MailMessage','Messages','Contact\x20not\x20found','update','YYYY-MM-DD\x20HH:mm:ss','interaction','contact','attachments','originTo','originCc','bcc','originChannel','Email','Attachment','Attachments','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetMailAccount','findAll','options','raw','where','attributes','map','include','model','ShowMailAccount','MailAccount','find','NotifyMailAccount','body','keys','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','CmList','List'];(function(_0x42fa42,_0x5eb51d){var _0x3fd390=function(_0x1a7bc2){while(--_0x1a7bc2){_0x42fa42['push'](_0x42fa42['shift']());}};_0x3fd390(++_0x5eb51d);}(_0xc8fe,0x9c));var _0xec8f=function(_0x1502ea,_0x69e94d){_0x1502ea=_0x1502ea-0x0;var _0x58562c=_0xc8fe[_0x1502ea];return _0x58562c;};'use strict';var _=require(_0xec8f('0x0'));var util=require(_0xec8f('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xec8f('0x2'));var fs=require('fs');var Redis=require(_0xec8f('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xec8f('0x4'));var logger=require(_0xec8f('0x5'))(_0xec8f('0x6'));var config=require('../../config/environment');var jayson=require(_0xec8f('0x7'));var client=jayson[_0xec8f('0x8')][_0xec8f('0x9')]({'port':0x232c});config[_0xec8f('0xa')]=_[_0xec8f('0xb')](config[_0xec8f('0xa')],{'host':_0xec8f('0xc'),'port':0x18eb});var socket=require(_0xec8f('0xd'))(new Redis(config[_0xec8f('0xa')]));require(_0xec8f('0xe'))[_0xec8f('0xf')](socket);function respondWithRpcPromise(_0x5ba074,_0x4d5a20,_0x293013){return new BPromise(function(_0x20b1fd,_0x5d0b6e){return client['request'](_0x5ba074,_0x293013)[_0xec8f('0x10')](function(_0x1c0d7a){logger[_0xec8f('0x11')](_0xec8f('0x12'),_0x4d5a20,_0xec8f('0x13'));logger[_0xec8f('0x14')](_0xec8f('0x15'),_0x4d5a20,'request\x20sent',JSON[_0xec8f('0x16')](_0x1c0d7a));if(_0x1c0d7a[_0xec8f('0x17')]){if(_0x1c0d7a[_0xec8f('0x17')][_0xec8f('0x18')]===0x1f4){logger[_0xec8f('0x17')](_0xec8f('0x12'),_0x4d5a20,_0x1c0d7a[_0xec8f('0x17')][_0xec8f('0x19')]);return _0x5d0b6e(_0x1c0d7a[_0xec8f('0x17')][_0xec8f('0x19')]);}logger['error'](_0xec8f('0x12'),_0x4d5a20,_0x1c0d7a[_0xec8f('0x17')][_0xec8f('0x19')]);return _0x20b1fd(_0x1c0d7a[_0xec8f('0x17')][_0xec8f('0x19')]);}else{logger[_0xec8f('0x11')]('MailAccount,\x20%s,\x20%s',_0x4d5a20,_0xec8f('0x13'));_0x20b1fd(_0x1c0d7a[_0xec8f('0x1a')][_0xec8f('0x19')]);}})[_0xec8f('0x1b')](function(_0x413892){logger[_0xec8f('0x17')](_0xec8f('0x12'),_0x4d5a20,_0x413892);_0x5d0b6e(_0x413892);});});}exports[_0xec8f('0x1c')]=function(_0x33e4de){var _0x590c82=this;return new Promise(function(_0x1fb568,_0x4a2455){return db['MailAccount'][_0xec8f('0x1d')]({'raw':_0x33e4de[_0xec8f('0x1e')]?_0x33e4de[_0xec8f('0x1e')][_0xec8f('0x1f')]===undefined?!![]:![]:!![],'where':_0x33e4de[_0xec8f('0x1e')]?_0x33e4de[_0xec8f('0x1e')][_0xec8f('0x20')]||null:null,'attributes':_0x33e4de['options']?_0x33e4de['options'][_0xec8f('0x21')]||null:null,'limit':_0x33e4de[_0xec8f('0x1e')]?_0x33e4de['options']['limit']||null:null,'include':_0x33e4de[_0xec8f('0x1e')]?_0x33e4de[_0xec8f('0x1e')]['include']?_[_0xec8f('0x22')](_0x33e4de['options'][_0xec8f('0x23')],function(_0xf75d7e){return{'model':db[_0xf75d7e[_0xec8f('0x24')]],'as':_0xf75d7e['as'],'attributes':_0xf75d7e[_0xec8f('0x21')],'include':_0xf75d7e[_0xec8f('0x23')]?_['map'](_0xf75d7e[_0xec8f('0x23')],function(_0x4c39c3){return{'model':db[_0x4c39c3[_0xec8f('0x24')]],'as':_0x4c39c3['as'],'attributes':_0x4c39c3[_0xec8f('0x21')],'include':_0x4c39c3[_0xec8f('0x23')]?_[_0xec8f('0x22')](_0x4c39c3[_0xec8f('0x23')],function(_0x2869e5){return{'model':db[_0x2869e5[_0xec8f('0x24')]],'as':_0x2869e5['as'],'attributes':_0x2869e5[_0xec8f('0x21')]};}):[]};}):[]};}):[]:[]})[_0xec8f('0x10')](function(_0x3d625f){logger['info'](_0xec8f('0x1c'),_0x33e4de);logger[_0xec8f('0x14')](_0xec8f('0x1c'),_0x33e4de,JSON[_0xec8f('0x16')](_0x3d625f));_0x1fb568(_0x3d625f);})['catch'](function(_0x2c061a){logger['error'](_0xec8f('0x1c'),_0x2c061a['message'],_0x33e4de);_0x4a2455(_0x590c82[_0xec8f('0x17')](0x1f4,_0x2c061a[_0xec8f('0x19')]));});});};exports[_0xec8f('0x25')]=function(_0x54860a){var _0x329589=this;return new Promise(function(_0x5810ac,_0x21c0c6){return db[_0xec8f('0x26')][_0xec8f('0x27')]({'raw':_0x54860a['options']?_0x54860a[_0xec8f('0x1e')][_0xec8f('0x1f')]===undefined?!![]:![]:!![],'where':_0x54860a[_0xec8f('0x1e')]?_0x54860a['options'][_0xec8f('0x20')]||null:null,'attributes':_0x54860a['options']?_0x54860a[_0xec8f('0x1e')][_0xec8f('0x21')]||null:null,'include':_0x54860a[_0xec8f('0x1e')]?_0x54860a[_0xec8f('0x1e')]['include']?_['map'](_0x54860a[_0xec8f('0x1e')][_0xec8f('0x23')],function(_0x429fe0){return{'model':db[_0x429fe0[_0xec8f('0x24')]],'as':_0x429fe0['as'],'attributes':_0x429fe0[_0xec8f('0x21')],'include':_0x429fe0['include']?_[_0xec8f('0x22')](_0x429fe0[_0xec8f('0x23')],function(_0xc7a8e1){return{'model':db[_0xc7a8e1[_0xec8f('0x24')]],'as':_0xc7a8e1['as'],'attributes':_0xc7a8e1[_0xec8f('0x21')],'include':_0xc7a8e1[_0xec8f('0x23')]?_[_0xec8f('0x22')](_0xc7a8e1[_0xec8f('0x23')],function(_0x1ca2d8){return{'model':db[_0x1ca2d8[_0xec8f('0x24')]],'as':_0x1ca2d8['as'],'attributes':_0x1ca2d8['attributes']};}):[]};}):[]};}):[]:[]})[_0xec8f('0x10')](function(_0x1caff2){logger['info'](_0xec8f('0x25'),_0x54860a);logger['debug']('ShowMailAccount',_0x54860a,JSON['stringify'](_0x1caff2));_0x5810ac(_0x1caff2);})[_0xec8f('0x1b')](function(_0x2e4eb8){logger[_0xec8f('0x17')]('ShowMailAccount',_0x2e4eb8[_0xec8f('0x19')],_0x54860a);_0x21c0c6(_0x329589[_0xec8f('0x17')](0x1f4,_0x2e4eb8[_0xec8f('0x19')]));});});};exports[_0xec8f('0x28')]=function(_0x201072){var _0x1d35db=this;return new Promise(function(_0x53fa5f,_0x33a788){var _0x46e316={'body':_0x201072[_0xec8f('0x29')],'channel':'mail'};var _0x5666eb=_['difference'](_[_0xec8f('0x2a')](db['CmContact'][_0xec8f('0x2b')]),[_0xec8f('0x2c'),_0xec8f('0x2d'),_0xec8f('0x2e'),_0xec8f('0x2f')]);var _0x3f1aed=![];if(_0x201072[_0xec8f('0x29')]['id']){delete _0x201072[_0xec8f('0x29')]['id'];}if(_[_0xec8f('0x30')](_0x201072[_0xec8f('0x29')]['from'])){return _0x33a788(_0x1d35db['error'](0x1f4,'from\x20is\x20mandatory'));}if(_[_0xec8f('0x30')](_0x201072[_0xec8f('0x29')]['body'])||_0x201072[_0xec8f('0x29')]['body']===''){return _0x33a788(_0x1d35db[_0xec8f('0x17')](0x1f4,_0xec8f('0x31')));}if(_[_0xec8f('0x30')](_0x201072[_0xec8f('0x29')][_0xec8f('0x32')])){return _0x33a788(_0x1d35db[_0xec8f('0x17')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5666eb));}if(!_[_0xec8f('0x33')](_0x5666eb,_0x201072[_0xec8f('0x29')][_0xec8f('0x32')])){return _0x33a788(_0x1d35db[_0xec8f('0x17')](0x1f4,_0xec8f('0x34')+_0x5666eb));}var _0x89e618={};_0x89e618[_0x201072[_0xec8f('0x29')]['mapKey']]=_0x201072[_0xec8f('0x29')][_0xec8f('0x35')];return db['MailAccount'][_0xec8f('0x27')]({'where':{'id':_0x201072['account']['id']},'include':[{'model':db[_0xec8f('0x36')],'as':_0xec8f('0x37'),'include':[{'model':db[_0xec8f('0x38')],'as':_0xec8f('0x39'),'where':_0x89e618,'limit':0x1,'order':[['updatedAt',_0xec8f('0x3a')]]}]},{'model':db[_0xec8f('0x3b')],'as':'Applications'},{'model':db[_0xec8f('0x3c')],'as':'Smtp'}]})[_0xec8f('0x10')](function(_0x389242){if(_0x389242&&_0x389242[_0xec8f('0x37')]){var _0x32421e=_0x389242[_0xec8f('0x3d')]({'plain':!![]});_0x46e316['account']=_[_0xec8f('0x3e')](_0x32421e,[_0xec8f('0x3f'),_0xec8f('0x37')]);_0x46e316['applications']=_0x32421e[_0xec8f('0x3f')];_0x46e316[_0xec8f('0x40')]=_0x32421e[_0xec8f('0x37')];_0x46e316[_0xec8f('0x41')]=_[_0xec8f('0x42')](_0x46e316[_0xec8f('0x41')],[_0xec8f('0x43')],[_0xec8f('0x44')]);if(_0x46e316[_0xec8f('0x45')]&&_0x46e316[_0xec8f('0x45')][_0xec8f('0x46')]){_0x46e316['applications'][_0xec8f('0x47')]({'id':0x0,'priority':_0x46e316[_0xec8f('0x41')][_0xec8f('0x48')]+0x1,'app':_0xec8f('0x49'),'appdata':'autoclose','interval':_0xec8f('0x4a')});}if(_0x46e316['account'][_0xec8f('0x3f')]){delete _0x46e316[_0xec8f('0x45')][_0xec8f('0x3f')];}if(_0x46e316[_0xec8f('0x45')][_0xec8f('0x37')]){delete _0x46e316['account'][_0xec8f('0x37')];}if(_0x32421e[_0xec8f('0x37')][_0xec8f('0x39')]['length']){return _0x32421e[_0xec8f('0x37')]['Contacts'][0x0];}var _0x541ffc=_[_0xec8f('0xb')](_0x201072[_0xec8f('0x29')],{'firstName':_0x201072[_0xec8f('0x29')][_0xec8f('0x35')],'ListId':_0x32421e[_0xec8f('0x2f')]});_0x541ffc[_0x201072[_0xec8f('0x29')]['mapKey']]=_0x201072['body'][_0xec8f('0x35')];return db[_0xec8f('0x38')][_0xec8f('0x4b')](_0x541ffc);}else{throw new Error(_0xec8f('0x4c'));}})[_0xec8f('0x10')](function(_0x4c3ff1){_0x46e316['contact']=_0x4c3ff1;if(_0x4c3ff1){if(!_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x4d')]){_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x4d')]=rs[_0xec8f('0x4e')]()+'\x20'+_0x201072[_0xec8f('0x29')]['message'][_0xec8f('0x35')];}var _0x4ab211={'ContactId':_0x4c3ff1['id'],'MailAccountId':_0x201072[_0xec8f('0x45')]['id'],'inReplyTo':_0x201072['body'][_0xec8f('0x19')][_0xec8f('0x4d')],'to':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x35')],'cc':_0x201072[_0xec8f('0x29')]['message']['cc'],'subject':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x4f')],'attach':_0x201072[_0xec8f('0x29')]['message'][_0xec8f('0x50')],'lastMsgAt':moment()[_0xec8f('0x51')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db[_0xec8f('0x52')]['find']({'where':{'closed':![],'MailAccountId':_0x201072[_0xec8f('0x45')]['id']},'include':[{'model':db[_0xec8f('0x53')],'as':_0xec8f('0x54'),'attributes':['messageId'],'where':{'messageId':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')]['inReplyTo']}}]})[_0xec8f('0x10')](function(_0x10cc4c){if(_0x10cc4c){return[_0x10cc4c,![]];}return db[_0xec8f('0x52')]['create'](_0x4ab211)[_0xec8f('0x10')](function(_0x1e9366){return[_0x1e9366,!![]];});});}else{throw new Error(_0xec8f('0x55'));}})['spread'](function(_0x23ad20,_0x55b843){if(_0x23ad20){_0x3f1aed=_0x55b843;if(!_0x55b843){return _0x23ad20[_0xec8f('0x56')]({'inReplyTo':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x4d')],'to':_0x201072[_0xec8f('0x29')]['message'][_0xec8f('0x35')],'cc':_0x201072['body'][_0xec8f('0x19')]['cc'],'subject':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x4f')],'attach':_0x23ad20[_0xec8f('0x50')]?_0x23ad20[_0xec8f('0x50')]:_0x201072[_0xec8f('0x29')]['message'][_0xec8f('0x50')],'substatus':null,'substatusAt':moment()[_0xec8f('0x51')](_0xec8f('0x57')),'lastMsgAt':moment()[_0xec8f('0x51')](_0xec8f('0x57')),'lastMsgDirection':'in'});}else{return _0x23ad20;}}})['then'](function(_0x18d17d){_0x46e316['interaction']=_0x18d17d['get']({'plain':!![]});_0x46e316[_0xec8f('0x58')]['created']=_0x3f1aed;return db['MailMessage'][_0xec8f('0x4b')]({'body':_0x201072[_0xec8f('0x29')][_0xec8f('0x29')],'MailAccountId':_0x201072[_0xec8f('0x45')]['id'],'MailInteractionId':_0x18d17d['id'],'direction':'in','ContactId':_0x46e316[_0xec8f('0x59')]['id'],'messageId':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')]['messageId'],'from':_0x201072['body'][_0xec8f('0x19')]['from'],'to':_0x201072['body'][_0xec8f('0x19')]['to'],'cc':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')]['cc'],'subject':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x4f')],'attach':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')]['attach'],'Attachments':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x5a')],'originTo':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x5b')],'originCc':_0x201072[_0xec8f('0x29')]['message'][_0xec8f('0x5c')],'bcc':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x5d')],'ChatWebsiteId':_0x201072[_0xec8f('0x29')]['message']['ChatWebsiteId']||null,'originChannel':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')][_0xec8f('0x5e')]||_0xec8f('0x5f'),'ChatOfflineMessageId':_0x201072[_0xec8f('0x29')][_0xec8f('0x19')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0xec8f('0x60')],'as':_0xec8f('0x61')}]});})[_0xec8f('0x10')](function(_0xa34679){_0x46e316['message']=_0xa34679;if(_0x46e316[_0xec8f('0x58')][_0xec8f('0x62')]){return db[_0xec8f('0x63')][_0xec8f('0x27')]({'attributes':['id',_0xec8f('0x64')],'where':{'id':_0x46e316[_0xec8f('0x58')][_0xec8f('0x62')]}})[_0xec8f('0x10')](function(_0x40f2ea){if(_0x40f2ea){_0x46e316[_0xec8f('0x41')][_0xec8f('0x65')]({'id':0x0,'priority':0x0,'app':_0xec8f('0x66'),'appdata':_0x40f2ea['name']+','+(_0x46e316[_0xec8f('0x45')][_0xec8f('0x67')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0xec8f('0x68'),_0xec8f('0x69'),_0x46e316);});}return respondWithRpcPromise(_0xec8f('0x68'),_0xec8f('0x69'),_0x46e316);})['then'](function(_0x40d822){_0x53fa5f(_0x40d822);})[_0xec8f('0x1b')](function(_0x2eb893){_0x33a788(_0x1d35db[_0xec8f('0x17')](0x1f4,_0x2eb893[_0xec8f('0x19')]));});});};