Built motion from commit (unavailable).|2.2.3
[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 _0x8a19=['messageId','generate','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','Contact\x20not\x20found','spread','update','subject','interaction','created','create','contact','attachments','originTo','originCc','bcc','Attachment','Attachments','User','name','UserId','unshift','agent','waitForTheAssignedAgent','Start','startRouting','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetMailAccount','MailAccount','findAll','options','attributes','limit','include','map','model','then','info','ShowMailAccount','raw','NotifyMailAccount','body','mail','difference','keys','CmContact','createdAt','updatedAt','CompanyId','from','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','Contacts','DESC','Applications','MailServerOut','Smtp','get','omit','List','applications','orderBy','priority','autoclose','*,*,*,*','length','List\x20not\x20found'];(function(_0x2cfb58,_0x3d9412){var _0xd99951=function(_0x329afa){while(--_0x329afa){_0x2cfb58['push'](_0x2cfb58['shift']());}};_0xd99951(++_0x3d9412);}(_0x8a19,0xe8));var _0x98a1=function(_0x3b0025,_0x29991e){_0x3b0025=_0x3b0025-0x0;var _0x239bc8=_0x8a19[_0x3b0025];return _0x239bc8;};'use strict';var _=require('lodash');var util=require(_0x98a1('0x0'));var moment=require(_0x98a1('0x1'));var BPromise=require(_0x98a1('0x2'));var rs=require(_0x98a1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x98a1('0x4'))['db'];var utils=require(_0x98a1('0x5'));var logger=require('../../config/logger')(_0x98a1('0x6'));var config=require(_0x98a1('0x7'));var jayson=require(_0x98a1('0x8'));var client=jayson['client']['http']({'port':0x232c});config[_0x98a1('0x9')]=_[_0x98a1('0xa')](config[_0x98a1('0x9')],{'host':_0x98a1('0xb'),'port':0x18eb});var socket=require(_0x98a1('0xc'))(new Redis(config[_0x98a1('0x9')]));require(_0x98a1('0xd'))[_0x98a1('0xe')](socket);function respondWithRpcPromise(_0x4a2209,_0x4982f8,_0x4d802b){return new BPromise(function(_0x32bf1f,_0x3c95d5){return client[_0x98a1('0xf')](_0x4a2209,_0x4d802b)['then'](function(_0x206fd6){logger['info'](_0x98a1('0x10'),_0x4982f8,_0x98a1('0x11'));logger[_0x98a1('0x12')](_0x98a1('0x13'),_0x4982f8,_0x98a1('0x11'),JSON[_0x98a1('0x14')](_0x206fd6));if(_0x206fd6[_0x98a1('0x15')]){if(_0x206fd6[_0x98a1('0x15')][_0x98a1('0x16')]===0x1f4){logger[_0x98a1('0x15')](_0x98a1('0x10'),_0x4982f8,_0x206fd6[_0x98a1('0x15')][_0x98a1('0x17')]);return _0x3c95d5(_0x206fd6[_0x98a1('0x15')]['message']);}logger['error'](_0x98a1('0x10'),_0x4982f8,_0x206fd6['error'][_0x98a1('0x17')]);return _0x32bf1f(_0x206fd6[_0x98a1('0x15')]['message']);}else{logger['info'](_0x98a1('0x10'),_0x4982f8,_0x98a1('0x11'));_0x32bf1f(_0x206fd6['result'][_0x98a1('0x17')]);}})[_0x98a1('0x18')](function(_0x2ec10e){logger['error']('MailAccount,\x20%s,\x20%s',_0x4982f8,_0x2ec10e);_0x3c95d5(_0x2ec10e);});});}exports[_0x98a1('0x19')]=function(_0x97bf8){var _0x541b6e=this;return new Promise(function(_0x4cbb0a,_0x5b250a){return db[_0x98a1('0x1a')][_0x98a1('0x1b')]({'raw':_0x97bf8['options']?_0x97bf8['options']['raw']===undefined?!![]:![]:!![],'where':_0x97bf8[_0x98a1('0x1c')]?_0x97bf8[_0x98a1('0x1c')]['where']||null:null,'attributes':_0x97bf8[_0x98a1('0x1c')]?_0x97bf8[_0x98a1('0x1c')][_0x98a1('0x1d')]||null:null,'limit':_0x97bf8[_0x98a1('0x1c')]?_0x97bf8[_0x98a1('0x1c')][_0x98a1('0x1e')]||null:null,'include':_0x97bf8['options']?_0x97bf8[_0x98a1('0x1c')][_0x98a1('0x1f')]?_[_0x98a1('0x20')](_0x97bf8[_0x98a1('0x1c')]['include'],function(_0x1ff907){return{'model':db[_0x1ff907[_0x98a1('0x21')]],'as':_0x1ff907['as'],'attributes':_0x1ff907['attributes'],'include':_0x1ff907['include']?_[_0x98a1('0x20')](_0x1ff907[_0x98a1('0x1f')],function(_0x23f9e9){return{'model':db[_0x23f9e9[_0x98a1('0x21')]],'as':_0x23f9e9['as'],'attributes':_0x23f9e9[_0x98a1('0x1d')],'include':_0x23f9e9['include']?_[_0x98a1('0x20')](_0x23f9e9[_0x98a1('0x1f')],function(_0x5db428){return{'model':db[_0x5db428[_0x98a1('0x21')]],'as':_0x5db428['as'],'attributes':_0x5db428[_0x98a1('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x98a1('0x22')](function(_0x451508){logger[_0x98a1('0x23')](_0x98a1('0x19'),_0x97bf8);logger[_0x98a1('0x12')](_0x98a1('0x19'),_0x97bf8,JSON[_0x98a1('0x14')](_0x451508));_0x4cbb0a(_0x451508);})['catch'](function(_0x5486b6){logger['error'](_0x98a1('0x19'),_0x5486b6['message'],_0x97bf8);_0x5b250a(_0x541b6e['error'](0x1f4,_0x5486b6[_0x98a1('0x17')]));});});};exports[_0x98a1('0x24')]=function(_0x2b0e76){var _0x1bce18=this;return new Promise(function(_0x37d8e0,_0x30b622){return db[_0x98a1('0x1a')]['find']({'raw':_0x2b0e76[_0x98a1('0x1c')]?_0x2b0e76[_0x98a1('0x1c')][_0x98a1('0x25')]===undefined?!![]:![]:!![],'where':_0x2b0e76[_0x98a1('0x1c')]?_0x2b0e76[_0x98a1('0x1c')]['where']||null:null,'attributes':_0x2b0e76[_0x98a1('0x1c')]?_0x2b0e76[_0x98a1('0x1c')][_0x98a1('0x1d')]||null:null,'include':_0x2b0e76[_0x98a1('0x1c')]?_0x2b0e76['options'][_0x98a1('0x1f')]?_['map'](_0x2b0e76[_0x98a1('0x1c')]['include'],function(_0x26083d){return{'model':db[_0x26083d['model']],'as':_0x26083d['as'],'attributes':_0x26083d['attributes'],'include':_0x26083d['include']?_[_0x98a1('0x20')](_0x26083d[_0x98a1('0x1f')],function(_0x446e76){return{'model':db[_0x446e76[_0x98a1('0x21')]],'as':_0x446e76['as'],'attributes':_0x446e76[_0x98a1('0x1d')],'include':_0x446e76['include']?_['map'](_0x446e76[_0x98a1('0x1f')],function(_0x4c6411){return{'model':db[_0x4c6411['model']],'as':_0x4c6411['as'],'attributes':_0x4c6411[_0x98a1('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x98a1('0x22')](function(_0x3183bc){logger['info'](_0x98a1('0x24'),_0x2b0e76);logger['debug']('ShowMailAccount',_0x2b0e76,JSON['stringify'](_0x3183bc));_0x37d8e0(_0x3183bc);})[_0x98a1('0x18')](function(_0x3bd6da){logger['error'](_0x98a1('0x24'),_0x3bd6da[_0x98a1('0x17')],_0x2b0e76);_0x30b622(_0x1bce18['error'](0x1f4,_0x3bd6da[_0x98a1('0x17')]));});});};exports[_0x98a1('0x26')]=function(_0xa5e6aa){var _0x2575f7=this;return new Promise(function(_0x18069e,_0x35cc6e){var _0x2425cb={'body':_0xa5e6aa[_0x98a1('0x27')],'channel':_0x98a1('0x28')};var _0x594b85=_[_0x98a1('0x29')](_[_0x98a1('0x2a')](db[_0x98a1('0x2b')]['rawAttributes']),[_0x98a1('0x2c'),_0x98a1('0x2d'),_0x98a1('0x2e'),'ListId']);var _0x359a7d=![];if(_0xa5e6aa[_0x98a1('0x27')]['id']){delete _0xa5e6aa[_0x98a1('0x27')]['id'];}if(_['isNil'](_0xa5e6aa['body'][_0x98a1('0x2f')])){return _0x35cc6e(_0x2575f7['error'](0x1f4,'from\x20is\x20mandatory'));}if(_[_0x98a1('0x30')](_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x27')])||_0xa5e6aa['body']['body']===''){return _0x35cc6e(_0x2575f7[_0x98a1('0x15')](0x1f4,_0x98a1('0x31')));}if(_[_0x98a1('0x30')](_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x32')])){return _0x35cc6e(_0x2575f7[_0x98a1('0x15')](0x1f4,_0x98a1('0x33')+_0x594b85));}if(!_['includes'](_0x594b85,_0xa5e6aa[_0x98a1('0x27')]['mapKey'])){return _0x35cc6e(_0x2575f7['error'](0x1f4,_0x98a1('0x34')+_0x594b85));}var _0x29e952={};_0x29e952[_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x32')]]=_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x2f')];return db[_0x98a1('0x1a')][_0x98a1('0x35')]({'where':{'id':_0xa5e6aa[_0x98a1('0x36')]['id']},'include':[{'model':db[_0x98a1('0x37')],'as':'List','include':[{'model':db['CmContact'],'as':_0x98a1('0x38'),'where':_0x29e952,'limit':0x1,'order':[['updatedAt',_0x98a1('0x39')]]}]},{'model':db['MailApplication'],'as':_0x98a1('0x3a')},{'model':db[_0x98a1('0x3b')],'as':_0x98a1('0x3c')}]})[_0x98a1('0x22')](function(_0x43c335){if(_0x43c335&&_0x43c335['List']){var _0x3f0ec9=_0x43c335[_0x98a1('0x3d')]({'plain':!![]});_0x2425cb[_0x98a1('0x36')]=_[_0x98a1('0x3e')](_0x3f0ec9,[_0x98a1('0x3a'),_0x98a1('0x3f')]);_0x2425cb[_0x98a1('0x40')]=_0x3f0ec9[_0x98a1('0x3a')];_0x2425cb['list']=_0x3f0ec9[_0x98a1('0x3f')];_0x2425cb['applications']=_[_0x98a1('0x41')](_0x2425cb[_0x98a1('0x40')],[_0x98a1('0x42')],['asc']);if(_0x2425cb[_0x98a1('0x36')]&&_0x2425cb[_0x98a1('0x36')][_0x98a1('0x43')]){_0x2425cb['applications']['push']({'id':0x0,'priority':_0x2425cb[_0x98a1('0x40')]['length']+0x1,'app':'close','appdata':'autoclose','interval':_0x98a1('0x44')});}if(_0x2425cb[_0x98a1('0x36')][_0x98a1('0x3a')]){delete _0x2425cb['account'][_0x98a1('0x3a')];}if(_0x2425cb[_0x98a1('0x36')][_0x98a1('0x3f')]){delete _0x2425cb['account']['List'];}if(_0x3f0ec9[_0x98a1('0x3f')][_0x98a1('0x38')][_0x98a1('0x45')]){return _0x3f0ec9[_0x98a1('0x3f')][_0x98a1('0x38')][0x0];}var _0x5c254d=_[_0x98a1('0xa')](_0xa5e6aa['body'],{'firstName':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x2f')],'ListId':_0x3f0ec9['ListId']});_0x5c254d[_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x32')]]=_0xa5e6aa['body'][_0x98a1('0x2f')];return db['CmContact']['create'](_0x5c254d);}else{throw new Error(_0x98a1('0x46'));}})['then'](function(_0x559a79){_0x2425cb['contact']=_0x559a79;if(_0x559a79){if(!_0xa5e6aa['body'][_0x98a1('0x17')][_0x98a1('0x47')]){_0xa5e6aa[_0x98a1('0x27')]['message'][_0x98a1('0x47')]=rs[_0x98a1('0x48')]()+'\x20'+_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')][_0x98a1('0x2f')];}var _0x287151={'ContactId':_0x559a79['id'],'MailAccountId':_0xa5e6aa[_0x98a1('0x36')]['id'],'inReplyTo':_0xa5e6aa[_0x98a1('0x27')]['message'][_0x98a1('0x47')],'to':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')]['from'],'cc':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')]['cc'],'subject':_0xa5e6aa[_0x98a1('0x27')]['message']['subject'],'attach':_0xa5e6aa['body'][_0x98a1('0x17')][_0x98a1('0x49')],'lastMsgAt':moment()[_0x98a1('0x4a')](_0x98a1('0x4b')),'lastMsgDirection':'in','lastMsgBody':_0xa5e6aa[_0x98a1('0x27')]['body']};return db[_0x98a1('0x4c')]['find']({'where':{'closed':![],'MailAccountId':_0xa5e6aa[_0x98a1('0x36')]['id']},'include':[{'model':db[_0x98a1('0x4d')],'as':_0x98a1('0x4e'),'attributes':[_0x98a1('0x47')],'where':{'messageId':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')]['inReplyTo']}}]})[_0x98a1('0x22')](function(_0x5c7466){if(_0x5c7466){return[_0x5c7466,![]];}return db[_0x98a1('0x4c')]['create'](_0x287151)['then'](function(_0x4924d8){return[_0x4924d8,!![]];});});}else{throw new Error(_0x98a1('0x4f'));}})[_0x98a1('0x50')](function(_0xd6d274,_0x57c746){if(_0xd6d274){_0x359a7d=_0x57c746;if(!_0x57c746){return _0xd6d274[_0x98a1('0x51')]({'inReplyTo':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')][_0x98a1('0x47')],'to':_0xa5e6aa['body'][_0x98a1('0x17')][_0x98a1('0x2f')],'cc':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')]['cc'],'subject':_0xa5e6aa[_0x98a1('0x27')]['message'][_0x98a1('0x52')],'attach':_0xd6d274[_0x98a1('0x49')]?_0xd6d274[_0x98a1('0x49')]:_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')][_0x98a1('0x49')],'substatus':null,'substatusAt':moment()['format'](_0x98a1('0x4b')),'lastMsgAt':moment()[_0x98a1('0x4a')](_0x98a1('0x4b')),'lastMsgDirection':'in','lastMsgBody':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x27')]});}else{return _0xd6d274;}}})[_0x98a1('0x22')](function(_0x448779){_0x2425cb[_0x98a1('0x53')]=_0x448779['get']({'plain':!![]});_0x2425cb[_0x98a1('0x53')][_0x98a1('0x54')]=_0x359a7d;return db[_0x98a1('0x4d')][_0x98a1('0x55')]({'body':_0xa5e6aa[_0x98a1('0x27')]['body'],'MailAccountId':_0xa5e6aa['account']['id'],'MailInteractionId':_0x448779['id'],'direction':'in','ContactId':_0x2425cb[_0x98a1('0x56')]['id'],'messageId':_0xa5e6aa[_0x98a1('0x27')]['message'][_0x98a1('0x47')],'from':_0xa5e6aa['body'][_0x98a1('0x17')][_0x98a1('0x2f')],'to':_0xa5e6aa['body'][_0x98a1('0x17')]['to'],'cc':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')]['cc'],'subject':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')][_0x98a1('0x52')],'attach':_0xa5e6aa[_0x98a1('0x27')]['message'][_0x98a1('0x49')],'Attachments':_0xa5e6aa['body'][_0x98a1('0x17')][_0x98a1('0x57')],'originTo':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')][_0x98a1('0x58')],'originCc':_0xa5e6aa[_0x98a1('0x27')][_0x98a1('0x17')][_0x98a1('0x59')],'bcc':_0xa5e6aa['body'][_0x98a1('0x17')][_0x98a1('0x5a')]},{'include':[{'model':db[_0x98a1('0x5b')],'as':_0x98a1('0x5c')}]});})[_0x98a1('0x22')](function(_0x114479){_0x2425cb['message']=_0x114479;if(_0x2425cb[_0x98a1('0x53')]['UserId']){return db[_0x98a1('0x5d')][_0x98a1('0x35')]({'attributes':['id',_0x98a1('0x5e')],'where':{'id':_0x2425cb[_0x98a1('0x53')][_0x98a1('0x5f')]}})['then'](function(_0x132f8a){if(_0x132f8a){_0x2425cb[_0x98a1('0x40')][_0x98a1('0x60')]({'id':0x0,'priority':0x0,'app':_0x98a1('0x61'),'appdata':_0x132f8a['name']+','+(_0x2425cb[_0x98a1('0x36')][_0x98a1('0x62')]||0xa),'interval':_0x98a1('0x44')});}return respondWithRpcPromise(_0x98a1('0x63'),_0x98a1('0x64'),_0x2425cb);});}return respondWithRpcPromise('Start',_0x98a1('0x64'),_0x2425cb);})[_0x98a1('0x22')](function(_0x3363a0){_0x18069e(_0x3363a0);})[_0x98a1('0x18')](function(_0x1df57d){_0x35cc6e(_0x2575f7[_0x98a1('0x15')](0x1f4,_0x1df57d[_0x98a1('0x17')]));});});};