Built motion from commit (unavailable).|2.5.1
[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 _0xe13a=['attributes','limit','include','map','model','GetMailAccount','debug','ShowMailAccount','find','NotifyMailAccount','body','mail','difference','keys','CmContact','rawAttributes','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','updatedAt','DESC','Applications','MailServerOut','Smtp','get','account','orderBy','applications','priority','asc','autoclose','length','defaults','create','List\x20not\x20found','messageId','generate','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','Messages','inReplyTo','spread','update','subject','attach','interaction','created','MailMessage','contact','attachments','originTo','originCc','bcc','Attachment','UserId','User','name','agent','*,*,*,*','startRouting','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','error','message','result','catch','MailAccount','findAll','options','raw','where'];(function(_0x41017,_0x548fc5){var _0x27a355=function(_0x3ec88f){while(--_0x3ec88f){_0x41017['push'](_0x41017['shift']());}};_0x27a355(++_0x548fc5);}(_0xe13a,0x178));var _0xae13=function(_0x55cac0,_0x13fad3){_0x55cac0=_0x55cac0-0x0;var _0x506150=_0xe13a[_0x55cac0];return _0x506150;};'use strict';var _=require('lodash');var util=require(_0xae13('0x0'));var moment=require(_0xae13('0x1'));var BPromise=require(_0xae13('0x2'));var rs=require(_0xae13('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xae13('0x4'))['db'];var utils=require(_0xae13('0x5'));var logger=require(_0xae13('0x6'))(_0xae13('0x7'));var config=require(_0xae13('0x8'));var jayson=require(_0xae13('0x9'));var client=jayson[_0xae13('0xa')][_0xae13('0xb')]({'port':0x232c});config[_0xae13('0xc')]=_['defaults'](config[_0xae13('0xc')],{'host':_0xae13('0xd'),'port':0x18eb});var socket=require(_0xae13('0xe'))(new Redis(config[_0xae13('0xc')]));require(_0xae13('0xf'))[_0xae13('0x10')](socket);function respondWithRpcPromise(_0x235a37,_0x2d1149,_0x1f3451){return new BPromise(function(_0x5990e3,_0x404b0e){return client[_0xae13('0x11')](_0x235a37,_0x1f3451)[_0xae13('0x12')](function(_0x3a6d41){logger[_0xae13('0x13')](_0xae13('0x14'),_0x2d1149,_0xae13('0x15'));logger['debug'](_0xae13('0x16'),_0x2d1149,_0xae13('0x15'),JSON['stringify'](_0x3a6d41));if(_0x3a6d41['error']){if(_0x3a6d41['error']['code']===0x1f4){logger['error'](_0xae13('0x14'),_0x2d1149,_0x3a6d41[_0xae13('0x17')][_0xae13('0x18')]);return _0x404b0e(_0x3a6d41[_0xae13('0x17')][_0xae13('0x18')]);}logger[_0xae13('0x17')]('MailAccount,\x20%s,\x20%s',_0x2d1149,_0x3a6d41[_0xae13('0x17')]['message']);return _0x5990e3(_0x3a6d41[_0xae13('0x17')][_0xae13('0x18')]);}else{logger[_0xae13('0x13')](_0xae13('0x14'),_0x2d1149,_0xae13('0x15'));_0x5990e3(_0x3a6d41[_0xae13('0x19')][_0xae13('0x18')]);}})[_0xae13('0x1a')](function(_0x42b307){logger['error'](_0xae13('0x14'),_0x2d1149,_0x42b307);_0x404b0e(_0x42b307);});});}exports['GetMailAccount']=function(_0x17a8c6){var _0x1c66b7=this;return new Promise(function(_0x49c7d5,_0x25a195){return db[_0xae13('0x1b')][_0xae13('0x1c')]({'raw':_0x17a8c6[_0xae13('0x1d')]?_0x17a8c6[_0xae13('0x1d')][_0xae13('0x1e')]===undefined?!![]:![]:!![],'where':_0x17a8c6['options']?_0x17a8c6['options'][_0xae13('0x1f')]||null:null,'attributes':_0x17a8c6[_0xae13('0x1d')]?_0x17a8c6['options'][_0xae13('0x20')]||null:null,'limit':_0x17a8c6['options']?_0x17a8c6[_0xae13('0x1d')][_0xae13('0x21')]||null:null,'include':_0x17a8c6[_0xae13('0x1d')]?_0x17a8c6['options']['include']?_['map'](_0x17a8c6[_0xae13('0x1d')][_0xae13('0x22')],function(_0x17ce58){return{'model':db[_0x17ce58['model']],'as':_0x17ce58['as'],'attributes':_0x17ce58[_0xae13('0x20')],'include':_0x17ce58['include']?_[_0xae13('0x23')](_0x17ce58['include'],function(_0xbeda8d){return{'model':db[_0xbeda8d[_0xae13('0x24')]],'as':_0xbeda8d['as'],'attributes':_0xbeda8d['attributes'],'include':_0xbeda8d[_0xae13('0x22')]?_[_0xae13('0x23')](_0xbeda8d[_0xae13('0x22')],function(_0x306dfb){return{'model':db[_0x306dfb['model']],'as':_0x306dfb['as'],'attributes':_0x306dfb[_0xae13('0x20')]};}):[]};}):[]};}):[]:[]})[_0xae13('0x12')](function(_0x1d7152){logger[_0xae13('0x13')](_0xae13('0x25'),_0x17a8c6);logger[_0xae13('0x26')](_0xae13('0x25'),_0x17a8c6,JSON['stringify'](_0x1d7152));_0x49c7d5(_0x1d7152);})[_0xae13('0x1a')](function(_0x591f94){logger[_0xae13('0x17')](_0xae13('0x25'),_0x591f94[_0xae13('0x18')],_0x17a8c6);_0x25a195(_0x1c66b7[_0xae13('0x17')](0x1f4,_0x591f94[_0xae13('0x18')]));});});};exports[_0xae13('0x27')]=function(_0x11c2ba){var _0x48f0f6=this;return new Promise(function(_0x4a3deb,_0x30d2c0){return db[_0xae13('0x1b')][_0xae13('0x28')]({'raw':_0x11c2ba[_0xae13('0x1d')]?_0x11c2ba[_0xae13('0x1d')][_0xae13('0x1e')]===undefined?!![]:![]:!![],'where':_0x11c2ba[_0xae13('0x1d')]?_0x11c2ba[_0xae13('0x1d')][_0xae13('0x1f')]||null:null,'attributes':_0x11c2ba[_0xae13('0x1d')]?_0x11c2ba['options'][_0xae13('0x20')]||null:null,'include':_0x11c2ba[_0xae13('0x1d')]?_0x11c2ba[_0xae13('0x1d')]['include']?_['map'](_0x11c2ba['options']['include'],function(_0x5b4060){return{'model':db[_0x5b4060['model']],'as':_0x5b4060['as'],'attributes':_0x5b4060[_0xae13('0x20')],'include':_0x5b4060[_0xae13('0x22')]?_[_0xae13('0x23')](_0x5b4060['include'],function(_0x337a61){return{'model':db[_0x337a61[_0xae13('0x24')]],'as':_0x337a61['as'],'attributes':_0x337a61[_0xae13('0x20')],'include':_0x337a61[_0xae13('0x22')]?_[_0xae13('0x23')](_0x337a61['include'],function(_0x3df8fc){return{'model':db[_0x3df8fc[_0xae13('0x24')]],'as':_0x3df8fc['as'],'attributes':_0x3df8fc[_0xae13('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5f0870){logger[_0xae13('0x13')](_0xae13('0x27'),_0x11c2ba);logger[_0xae13('0x26')](_0xae13('0x27'),_0x11c2ba,JSON['stringify'](_0x5f0870));_0x4a3deb(_0x5f0870);})[_0xae13('0x1a')](function(_0x133643){logger['error'](_0xae13('0x27'),_0x133643[_0xae13('0x18')],_0x11c2ba);_0x30d2c0(_0x48f0f6['error'](0x1f4,_0x133643[_0xae13('0x18')]));});});};exports[_0xae13('0x29')]=function(_0x3d3569){var _0x231748=this;return new Promise(function(_0x4d7405,_0x20e4ec){var _0x300b4e={'body':_0x3d3569[_0xae13('0x2a')],'channel':_0xae13('0x2b')};var _0x4ed070=_[_0xae13('0x2c')](_[_0xae13('0x2d')](db[_0xae13('0x2e')][_0xae13('0x2f')]),['createdAt','updatedAt',_0xae13('0x30'),_0xae13('0x31')]);var _0x4bff9d=![];if(_0x3d3569[_0xae13('0x2a')]['id']){delete _0x3d3569['body']['id'];}if(_[_0xae13('0x32')](_0x3d3569[_0xae13('0x2a')][_0xae13('0x33')])){return _0x20e4ec(_0x231748['error'](0x1f4,_0xae13('0x34')));}if(_[_0xae13('0x32')](_0x3d3569[_0xae13('0x2a')][_0xae13('0x2a')])||_0x3d3569['body'][_0xae13('0x2a')]===''){return _0x20e4ec(_0x231748[_0xae13('0x17')](0x1f4,_0xae13('0x35')));}if(_[_0xae13('0x32')](_0x3d3569[_0xae13('0x2a')][_0xae13('0x36')])){return _0x20e4ec(_0x231748[_0xae13('0x17')](0x1f4,_0xae13('0x37')+_0x4ed070));}if(!_['includes'](_0x4ed070,_0x3d3569[_0xae13('0x2a')]['mapKey'])){return _0x20e4ec(_0x231748[_0xae13('0x17')](0x1f4,_0xae13('0x38')+_0x4ed070));}var _0x282956={};_0x282956[_0x3d3569[_0xae13('0x2a')]['mapKey']]=_0x3d3569[_0xae13('0x2a')]['from'];return db[_0xae13('0x1b')][_0xae13('0x28')]({'where':{'id':_0x3d3569['account']['id']},'include':[{'model':db[_0xae13('0x39')],'as':_0xae13('0x3a'),'include':[{'model':db[_0xae13('0x2e')],'as':_0xae13('0x3b'),'where':_0x282956,'limit':0x1,'order':[[_0xae13('0x3c'),_0xae13('0x3d')]]}]},{'model':db['MailApplication'],'as':_0xae13('0x3e')},{'model':db[_0xae13('0x3f')],'as':_0xae13('0x40')}]})[_0xae13('0x12')](function(_0x29ba1){if(_0x29ba1&&_0x29ba1['List']){var _0x244f2c=_0x29ba1[_0xae13('0x41')]({'plain':!![]});_0x300b4e[_0xae13('0x42')]=_['omit'](_0x244f2c,['Applications','List']);_0x300b4e['applications']=_0x244f2c[_0xae13('0x3e')];_0x300b4e['list']=_0x244f2c[_0xae13('0x3a')];_0x300b4e['applications']=_[_0xae13('0x43')](_0x300b4e[_0xae13('0x44')],[_0xae13('0x45')],[_0xae13('0x46')]);if(_0x300b4e[_0xae13('0x42')]&&_0x300b4e['account'][_0xae13('0x47')]){_0x300b4e[_0xae13('0x44')]['push']({'id':0x0,'priority':_0x300b4e[_0xae13('0x44')][_0xae13('0x48')]+0x1,'app':'close','appdata':'autoclose','interval':'*,*,*,*'});}if(_0x300b4e['account'][_0xae13('0x3e')]){delete _0x300b4e[_0xae13('0x42')]['Applications'];}if(_0x300b4e[_0xae13('0x42')][_0xae13('0x3a')]){delete _0x300b4e['account'][_0xae13('0x3a')];}if(_0x244f2c[_0xae13('0x3a')][_0xae13('0x3b')][_0xae13('0x48')]){return _0x244f2c[_0xae13('0x3a')][_0xae13('0x3b')][0x0];}var _0x2ac400=_[_0xae13('0x49')](_0x3d3569[_0xae13('0x2a')],{'firstName':_0x3d3569[_0xae13('0x2a')]['from'],'ListId':_0x244f2c[_0xae13('0x31')]});_0x2ac400[_0x3d3569[_0xae13('0x2a')][_0xae13('0x36')]]=_0x3d3569['body'][_0xae13('0x33')];return db['CmContact'][_0xae13('0x4a')](_0x2ac400);}else{throw new Error(_0xae13('0x4b'));}})[_0xae13('0x12')](function(_0x5b61e0){_0x300b4e['contact']=_0x5b61e0;if(_0x5b61e0){if(!_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x4c')]){_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x4c')]=rs[_0xae13('0x4d')]()+'\x20'+_0x3d3569['body'][_0xae13('0x18')][_0xae13('0x33')];}var _0x1cf135={'ContactId':_0x5b61e0['id'],'MailAccountId':_0x3d3569[_0xae13('0x42')]['id'],'inReplyTo':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x4c')],'to':_0x3d3569['body'][_0xae13('0x18')][_0xae13('0x33')],'cc':_0x3d3569['body'][_0xae13('0x18')]['cc'],'subject':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')]['subject'],'attach':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')]['attach'],'lastMsgAt':moment()[_0xae13('0x4e')](_0xae13('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x3d3569[_0xae13('0x2a')][_0xae13('0x2a')]};return db[_0xae13('0x50')][_0xae13('0x28')]({'where':{'closed':![],'MailAccountId':_0x3d3569['account']['id']},'include':[{'model':db['MailMessage'],'as':_0xae13('0x51'),'attributes':[_0xae13('0x4c')],'where':{'messageId':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x52')]}}]})[_0xae13('0x12')](function(_0x47d84e){if(_0x47d84e){return[_0x47d84e,![]];}return db[_0xae13('0x50')][_0xae13('0x4a')](_0x1cf135)['then'](function(_0x507098){return[_0x507098,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xae13('0x53')](function(_0xf998e5,_0x27bcfc){if(_0xf998e5){_0x4bff9d=_0x27bcfc;if(!_0x27bcfc){return _0xf998e5[_0xae13('0x54')]({'inReplyTo':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x4c')],'to':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x33')],'cc':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')]['cc'],'subject':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x55')],'attach':_0xf998e5['attach']?_0xf998e5[_0xae13('0x56')]:_0x3d3569[_0xae13('0x2a')]['message'][_0xae13('0x56')],'substatus':null,'substatusAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0xae13('0x4e')](_0xae13('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x3d3569[_0xae13('0x2a')][_0xae13('0x2a')]});}else{return _0xf998e5;}}})[_0xae13('0x12')](function(_0x3797da){_0x300b4e['interaction']=_0x3797da['get']({'plain':!![]});_0x300b4e[_0xae13('0x57')][_0xae13('0x58')]=_0x4bff9d;return db[_0xae13('0x59')]['create']({'body':_0x3d3569[_0xae13('0x2a')]['body'],'MailAccountId':_0x3d3569[_0xae13('0x42')]['id'],'MailInteractionId':_0x3797da['id'],'direction':'in','ContactId':_0x300b4e[_0xae13('0x5a')]['id'],'messageId':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x4c')],'from':_0x3d3569['body'][_0xae13('0x18')][_0xae13('0x33')],'to':_0x3d3569['body'][_0xae13('0x18')]['to'],'cc':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')]['cc'],'subject':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x55')],'attach':_0x3d3569['body'][_0xae13('0x18')]['attach'],'Attachments':_0x3d3569[_0xae13('0x2a')]['message'][_0xae13('0x5b')],'originTo':_0x3d3569[_0xae13('0x2a')]['message'][_0xae13('0x5c')],'originCc':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x5d')],'bcc':_0x3d3569[_0xae13('0x2a')][_0xae13('0x18')][_0xae13('0x5e')]},{'include':[{'model':db[_0xae13('0x5f')],'as':'Attachments'}]});})[_0xae13('0x12')](function(_0x12c460){_0x300b4e[_0xae13('0x18')]=_0x12c460;if(_0x300b4e[_0xae13('0x57')][_0xae13('0x60')]){return db[_0xae13('0x61')][_0xae13('0x28')]({'attributes':['id',_0xae13('0x62')],'where':{'id':_0x300b4e[_0xae13('0x57')][_0xae13('0x60')]}})['then'](function(_0x40844e){if(_0x40844e){_0x300b4e['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0xae13('0x63'),'appdata':_0x40844e[_0xae13('0x62')]+','+(_0x300b4e[_0xae13('0x42')]['waitForTheAssignedAgent']||0xa),'interval':_0xae13('0x64')});}return respondWithRpcPromise('Start',_0xae13('0x65'),_0x300b4e);});}return respondWithRpcPromise('Start',_0xae13('0x65'),_0x300b4e);})[_0xae13('0x12')](function(_0x4845e6){_0x4d7405(_0x4845e6);})[_0xae13('0x1a')](function(_0x415abb){_0x20e4ec(_0x231748['error'](0x1f4,_0x415abb['message']));});});};