Built motion from commit (unavailable).|2.5.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 _0x55ea=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','defaults','redis','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','MailAccount,\x20%s,\x20%s','message','result','catch','MailAccount','findAll','options','raw','attributes','limit','include','map','model','debug','GetMailAccount','find','where','ShowMailAccount','NotifyMailAccount','body','mail','difference','keys','CmContact','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','account','CmList','List','DESC','MailApplication','Applications','MailServerOut','Smtp','get','omit','orderBy','applications','priority','asc','autoclose','length','close','*,*,*,*','Contacts','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','interaction','created','attachments','originCc','bcc','Attachments','UserId','User','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash'];(function(_0x4239b9,_0x3338e8){var _0x447daf=function(_0x815f49){while(--_0x815f49){_0x4239b9['push'](_0x4239b9['shift']());}};_0x447daf(++_0x3338e8);}(_0x55ea,0xc9));var _0xa55e=function(_0x1a3e36,_0x1c8dac){_0x1a3e36=_0x1a3e36-0x0;var _0x396d63=_0x55ea[_0x1a3e36];return _0x396d63;};'use strict';var _=require(_0xa55e('0x0'));var util=require(_0xa55e('0x1'));var moment=require(_0xa55e('0x2'));var BPromise=require('bluebird');var rs=require(_0xa55e('0x3'));var fs=require('fs');var Redis=require(_0xa55e('0x4'));var db=require(_0xa55e('0x5'))['db'];var utils=require(_0xa55e('0x6'));var logger=require(_0xa55e('0x7'))('rpc');var config=require(_0xa55e('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232c});config['redis']=_[_0xa55e('0x9')](config[_0xa55e('0xa')],{'host':_0xa55e('0xb'),'port':0x18eb});var socket=require(_0xa55e('0xc'))(new Redis(config[_0xa55e('0xa')]));require(_0xa55e('0xd'))[_0xa55e('0xe')](socket);function respondWithRpcPromise(_0x3020cc,_0xe58ede,_0x5da3d0){return new BPromise(function(_0x5e38fa,_0x13f6d7){return client[_0xa55e('0xf')](_0x3020cc,_0x5da3d0)[_0xa55e('0x10')](function(_0x8cdcf0){logger[_0xa55e('0x11')]('MailAccount,\x20%s,\x20%s',_0xe58ede,_0xa55e('0x12'));logger['debug'](_0xa55e('0x13'),_0xe58ede,_0xa55e('0x12'),JSON[_0xa55e('0x14')](_0x8cdcf0));if(_0x8cdcf0[_0xa55e('0x15')]){if(_0x8cdcf0[_0xa55e('0x15')][_0xa55e('0x16')]===0x1f4){logger[_0xa55e('0x15')](_0xa55e('0x17'),_0xe58ede,_0x8cdcf0[_0xa55e('0x15')]['message']);return _0x13f6d7(_0x8cdcf0[_0xa55e('0x15')][_0xa55e('0x18')]);}logger[_0xa55e('0x15')](_0xa55e('0x17'),_0xe58ede,_0x8cdcf0[_0xa55e('0x15')][_0xa55e('0x18')]);return _0x5e38fa(_0x8cdcf0['error'][_0xa55e('0x18')]);}else{logger['info']('MailAccount,\x20%s,\x20%s',_0xe58ede,_0xa55e('0x12'));_0x5e38fa(_0x8cdcf0[_0xa55e('0x19')][_0xa55e('0x18')]);}})[_0xa55e('0x1a')](function(_0x3980b4){logger['error'](_0xa55e('0x17'),_0xe58ede,_0x3980b4);_0x13f6d7(_0x3980b4);});});}exports['GetMailAccount']=function(_0x5bc240){var _0x45e9d3=this;return new Promise(function(_0x1bd874,_0x262f6c){return db[_0xa55e('0x1b')][_0xa55e('0x1c')]({'raw':_0x5bc240[_0xa55e('0x1d')]?_0x5bc240[_0xa55e('0x1d')][_0xa55e('0x1e')]===undefined?!![]:![]:!![],'where':_0x5bc240[_0xa55e('0x1d')]?_0x5bc240['options']['where']||null:null,'attributes':_0x5bc240[_0xa55e('0x1d')]?_0x5bc240['options'][_0xa55e('0x1f')]||null:null,'limit':_0x5bc240[_0xa55e('0x1d')]?_0x5bc240[_0xa55e('0x1d')][_0xa55e('0x20')]||null:null,'include':_0x5bc240[_0xa55e('0x1d')]?_0x5bc240[_0xa55e('0x1d')][_0xa55e('0x21')]?_[_0xa55e('0x22')](_0x5bc240[_0xa55e('0x1d')][_0xa55e('0x21')],function(_0x3c519d){return{'model':db[_0x3c519d[_0xa55e('0x23')]],'as':_0x3c519d['as'],'attributes':_0x3c519d[_0xa55e('0x1f')],'include':_0x3c519d[_0xa55e('0x21')]?_[_0xa55e('0x22')](_0x3c519d[_0xa55e('0x21')],function(_0x2f2579){return{'model':db[_0x2f2579[_0xa55e('0x23')]],'as':_0x2f2579['as'],'attributes':_0x2f2579[_0xa55e('0x1f')],'include':_0x2f2579['include']?_['map'](_0x2f2579[_0xa55e('0x21')],function(_0x4ebcbd){return{'model':db[_0x4ebcbd[_0xa55e('0x23')]],'as':_0x4ebcbd['as'],'attributes':_0x4ebcbd['attributes']};}):[]};}):[]};}):[]:[]})[_0xa55e('0x10')](function(_0x4d9634){logger[_0xa55e('0x11')]('GetMailAccount',_0x5bc240);logger[_0xa55e('0x24')](_0xa55e('0x25'),_0x5bc240,JSON['stringify'](_0x4d9634));_0x1bd874(_0x4d9634);})[_0xa55e('0x1a')](function(_0x242c47){logger[_0xa55e('0x15')](_0xa55e('0x25'),_0x242c47['message'],_0x5bc240);_0x262f6c(_0x45e9d3[_0xa55e('0x15')](0x1f4,_0x242c47[_0xa55e('0x18')]));});});};exports['ShowMailAccount']=function(_0x29ea3b){var _0x493e2b=this;return new Promise(function(_0xae71b3,_0xcaeba6){return db['MailAccount'][_0xa55e('0x26')]({'raw':_0x29ea3b['options']?_0x29ea3b[_0xa55e('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x29ea3b[_0xa55e('0x1d')]?_0x29ea3b[_0xa55e('0x1d')][_0xa55e('0x27')]||null:null,'attributes':_0x29ea3b[_0xa55e('0x1d')]?_0x29ea3b['options'][_0xa55e('0x1f')]||null:null,'include':_0x29ea3b['options']?_0x29ea3b[_0xa55e('0x1d')][_0xa55e('0x21')]?_[_0xa55e('0x22')](_0x29ea3b['options'][_0xa55e('0x21')],function(_0x40d00e){return{'model':db[_0x40d00e[_0xa55e('0x23')]],'as':_0x40d00e['as'],'attributes':_0x40d00e[_0xa55e('0x1f')],'include':_0x40d00e[_0xa55e('0x21')]?_[_0xa55e('0x22')](_0x40d00e['include'],function(_0x5cac2e){return{'model':db[_0x5cac2e[_0xa55e('0x23')]],'as':_0x5cac2e['as'],'attributes':_0x5cac2e[_0xa55e('0x1f')],'include':_0x5cac2e[_0xa55e('0x21')]?_[_0xa55e('0x22')](_0x5cac2e[_0xa55e('0x21')],function(_0x2b0207){return{'model':db[_0x2b0207[_0xa55e('0x23')]],'as':_0x2b0207['as'],'attributes':_0x2b0207['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x30fe5e){logger[_0xa55e('0x11')](_0xa55e('0x28'),_0x29ea3b);logger[_0xa55e('0x24')](_0xa55e('0x28'),_0x29ea3b,JSON[_0xa55e('0x14')](_0x30fe5e));_0xae71b3(_0x30fe5e);})[_0xa55e('0x1a')](function(_0x368e71){logger[_0xa55e('0x15')](_0xa55e('0x28'),_0x368e71[_0xa55e('0x18')],_0x29ea3b);_0xcaeba6(_0x493e2b['error'](0x1f4,_0x368e71[_0xa55e('0x18')]));});});};exports[_0xa55e('0x29')]=function(_0x2982db){var _0x5d955e=this;return new Promise(function(_0x1e806a,_0x538450){var _0xc767a={'body':_0x2982db[_0xa55e('0x2a')],'channel':_0xa55e('0x2b')};var _0x164928=_[_0xa55e('0x2c')](_[_0xa55e('0x2d')](db[_0xa55e('0x2e')]['rawAttributes']),['createdAt',_0xa55e('0x2f'),_0xa55e('0x30'),_0xa55e('0x31')]);var _0x518e06=![];if(_0x2982db[_0xa55e('0x2a')]['id']){delete _0x2982db[_0xa55e('0x2a')]['id'];}if(_[_0xa55e('0x32')](_0x2982db[_0xa55e('0x2a')][_0xa55e('0x33')])){return _0x538450(_0x5d955e[_0xa55e('0x15')](0x1f4,_0xa55e('0x34')));}if(_[_0xa55e('0x32')](_0x2982db['body']['body'])||_0x2982db[_0xa55e('0x2a')][_0xa55e('0x2a')]===''){return _0x538450(_0x5d955e[_0xa55e('0x15')](0x1f4,_0xa55e('0x35')));}if(_[_0xa55e('0x32')](_0x2982db[_0xa55e('0x2a')][_0xa55e('0x36')])){return _0x538450(_0x5d955e[_0xa55e('0x15')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x164928));}if(!_['includes'](_0x164928,_0x2982db[_0xa55e('0x2a')]['mapKey'])){return _0x538450(_0x5d955e[_0xa55e('0x15')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x164928));}var _0x4808e2={};_0x4808e2[_0x2982db[_0xa55e('0x2a')][_0xa55e('0x36')]]=_0x2982db['body']['from'];return db[_0xa55e('0x1b')][_0xa55e('0x26')]({'where':{'id':_0x2982db[_0xa55e('0x37')]['id']},'include':[{'model':db[_0xa55e('0x38')],'as':_0xa55e('0x39'),'include':[{'model':db[_0xa55e('0x2e')],'as':'Contacts','where':_0x4808e2,'limit':0x1,'order':[['updatedAt',_0xa55e('0x3a')]]}]},{'model':db[_0xa55e('0x3b')],'as':_0xa55e('0x3c')},{'model':db[_0xa55e('0x3d')],'as':_0xa55e('0x3e')}]})[_0xa55e('0x10')](function(_0x5b8776){if(_0x5b8776&&_0x5b8776[_0xa55e('0x39')]){var _0x1f81af=_0x5b8776[_0xa55e('0x3f')]({'plain':!![]});_0xc767a[_0xa55e('0x37')]=_[_0xa55e('0x40')](_0x1f81af,[_0xa55e('0x3c'),'List']);_0xc767a['applications']=_0x1f81af[_0xa55e('0x3c')];_0xc767a['list']=_0x1f81af[_0xa55e('0x39')];_0xc767a['applications']=_[_0xa55e('0x41')](_0xc767a[_0xa55e('0x42')],[_0xa55e('0x43')],[_0xa55e('0x44')]);if(_0xc767a[_0xa55e('0x37')]&&_0xc767a[_0xa55e('0x37')][_0xa55e('0x45')]){_0xc767a[_0xa55e('0x42')]['push']({'id':0x0,'priority':_0xc767a[_0xa55e('0x42')][_0xa55e('0x46')]+0x1,'app':_0xa55e('0x47'),'appdata':_0xa55e('0x45'),'interval':_0xa55e('0x48')});}if(_0xc767a[_0xa55e('0x37')]['Applications']){delete _0xc767a[_0xa55e('0x37')][_0xa55e('0x3c')];}if(_0xc767a[_0xa55e('0x37')][_0xa55e('0x39')]){delete _0xc767a[_0xa55e('0x37')][_0xa55e('0x39')];}if(_0x1f81af['List'][_0xa55e('0x49')]['length']){return _0x1f81af[_0xa55e('0x39')][_0xa55e('0x49')][0x0];}var _0x8dc49d=_[_0xa55e('0x9')](_0x2982db[_0xa55e('0x2a')],{'firstName':_0x2982db[_0xa55e('0x2a')]['from'],'ListId':_0x1f81af[_0xa55e('0x31')]});_0x8dc49d[_0x2982db['body'][_0xa55e('0x36')]]=_0x2982db[_0xa55e('0x2a')]['from'];return db[_0xa55e('0x2e')][_0xa55e('0x4a')](_0x8dc49d);}else{throw new Error(_0xa55e('0x4b'));}})[_0xa55e('0x10')](function(_0x8e486c){_0xc767a[_0xa55e('0x4c')]=_0x8e486c;if(_0x8e486c){if(!_0x2982db[_0xa55e('0x2a')]['message'][_0xa55e('0x4d')]){_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')]['messageId']=rs[_0xa55e('0x4e')]()+'\x20'+_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')]['from'];}var _0x129a50={'ContactId':_0x8e486c['id'],'MailAccountId':_0x2982db[_0xa55e('0x37')]['id'],'inReplyTo':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')][_0xa55e('0x4d')],'to':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')][_0xa55e('0x33')],'cc':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')]['cc'],'subject':_0x2982db[_0xa55e('0x2a')]['message'][_0xa55e('0x4f')],'attach':_0x2982db['body'][_0xa55e('0x18')][_0xa55e('0x50')],'lastMsgAt':moment()[_0xa55e('0x51')](_0xa55e('0x52')),'lastMsgDirection':'in','lastMsgBody':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x2a')]};return db[_0xa55e('0x53')][_0xa55e('0x26')]({'where':{'closed':![],'MailAccountId':_0x2982db[_0xa55e('0x37')]['id']},'include':[{'model':db[_0xa55e('0x54')],'as':_0xa55e('0x55'),'attributes':[_0xa55e('0x4d')],'where':{'messageId':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')][_0xa55e('0x56')]}}]})[_0xa55e('0x10')](function(_0x4fd475){if(_0x4fd475){return[_0x4fd475,![]];}return db['MailInteraction'][_0xa55e('0x4a')](_0x129a50)[_0xa55e('0x10')](function(_0x3c74f7){return[_0x3c74f7,!![]];});});}else{throw new Error(_0xa55e('0x57'));}})['spread'](function(_0x5908af,_0x77e7f2){if(_0x5908af){_0x518e06=_0x77e7f2;if(!_0x77e7f2){return _0x5908af['update']({'inReplyTo':_0x2982db['body']['message'][_0xa55e('0x4d')],'to':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')][_0xa55e('0x33')],'cc':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')]['cc'],'subject':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')][_0xa55e('0x4f')],'attach':_0x5908af[_0xa55e('0x50')]?_0x5908af['attach']:_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')][_0xa55e('0x50')],'substatus':null,'substatusAt':moment()['format'](_0xa55e('0x52')),'lastMsgAt':moment()[_0xa55e('0x51')](_0xa55e('0x52')),'lastMsgDirection':'in','lastMsgBody':_0x2982db[_0xa55e('0x2a')]['body']});}else{return _0x5908af;}}})[_0xa55e('0x10')](function(_0x14fcad){_0xc767a[_0xa55e('0x58')]=_0x14fcad['get']({'plain':!![]});_0xc767a['interaction'][_0xa55e('0x59')]=_0x518e06;return db['MailMessage'][_0xa55e('0x4a')]({'body':_0x2982db['body'][_0xa55e('0x2a')],'MailAccountId':_0x2982db[_0xa55e('0x37')]['id'],'MailInteractionId':_0x14fcad['id'],'direction':'in','ContactId':_0xc767a['contact']['id'],'messageId':_0x2982db[_0xa55e('0x2a')]['message'][_0xa55e('0x4d')],'from':_0x2982db[_0xa55e('0x2a')]['message'][_0xa55e('0x33')],'to':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')]['to'],'cc':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')]['cc'],'subject':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')][_0xa55e('0x4f')],'attach':_0x2982db['body'][_0xa55e('0x18')][_0xa55e('0x50')],'Attachments':_0x2982db['body'][_0xa55e('0x18')][_0xa55e('0x5a')],'originTo':_0x2982db['body']['message']['originTo'],'originCc':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')][_0xa55e('0x5b')],'bcc':_0x2982db[_0xa55e('0x2a')][_0xa55e('0x18')][_0xa55e('0x5c')]},{'include':[{'model':db['Attachment'],'as':_0xa55e('0x5d')}]});})[_0xa55e('0x10')](function(_0x16dc94){_0xc767a[_0xa55e('0x18')]=_0x16dc94;if(_0xc767a['interaction'][_0xa55e('0x5e')]){return db[_0xa55e('0x5f')][_0xa55e('0x26')]({'attributes':['id',_0xa55e('0x60')],'where':{'id':_0xc767a[_0xa55e('0x58')][_0xa55e('0x5e')]}})[_0xa55e('0x10')](function(_0x1e0eb3){if(_0x1e0eb3){_0xc767a[_0xa55e('0x42')][_0xa55e('0x61')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x1e0eb3[_0xa55e('0x60')]+','+(_0xc767a['account'][_0xa55e('0x62')]||0xa),'interval':_0xa55e('0x48')});}return respondWithRpcPromise(_0xa55e('0x63'),_0xa55e('0x64'),_0xc767a);});}return respondWithRpcPromise('Start',_0xa55e('0x64'),_0xc767a);})[_0xa55e('0x10')](function(_0x2ff915){_0x1e806a(_0x2ff915);})[_0xa55e('0x1a')](function(_0x5c8473){_0x538450(_0x5d955e[_0xa55e('0x15')](0x1f4,_0x5c8473['message']));});});};