Built motion from commit (unavailable).|2.5.25
[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 _0xeb62=['CmList','Contacts','DESC','MailApplication','MailServerOut','List','get','omit','Applications','applications','orderBy','priority','asc','push','close','autoclose','*,*,*,*','length','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','update','interaction','attachments','originTo','originCc','bcc','ChatWebsiteId','Attachment','Attachments','UserId','User','unshift','agent','name','waitForTheAssignedAgent','Start','startRouting','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','map','model','debug','ShowMailAccount','NotifyMailAccount','body','mail','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','ListId','isNil','from\x20is\x20mandatory','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','find','account'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0xeb62,0x1de));var _0x2eb6=function(_0xdb983a,_0x5e3b11){_0xdb983a=_0xdb983a-0x0;var _0xc11526=_0xeb62[_0xdb983a];return _0xc11526;};'use strict';var _=require('lodash');var util=require(_0x2eb6('0x0'));var moment=require(_0x2eb6('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2eb6('0x2'));var db=require(_0x2eb6('0x3'))['db'];var utils=require(_0x2eb6('0x4'));var logger=require(_0x2eb6('0x5'))('rpc');var config=require(_0x2eb6('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x2eb6('0x7')]['http']({'port':0x232c});config[_0x2eb6('0x8')]=_[_0x2eb6('0x9')](config[_0x2eb6('0x8')],{'host':_0x2eb6('0xa'),'port':0x18eb});var socket=require(_0x2eb6('0xb'))(new Redis(config[_0x2eb6('0x8')]));require(_0x2eb6('0xc'))[_0x2eb6('0xd')](socket);function respondWithRpcPromise(_0x6efa10,_0x4d92eb,_0x567188){return new BPromise(function(_0xa8894c,_0x1223d8){return client[_0x2eb6('0xe')](_0x6efa10,_0x567188)[_0x2eb6('0xf')](function(_0x7783b){logger[_0x2eb6('0x10')](_0x2eb6('0x11'),_0x4d92eb,'request\x20sent');logger['debug'](_0x2eb6('0x12'),_0x4d92eb,_0x2eb6('0x13'),JSON[_0x2eb6('0x14')](_0x7783b));if(_0x7783b[_0x2eb6('0x15')]){if(_0x7783b[_0x2eb6('0x15')][_0x2eb6('0x16')]===0x1f4){logger['error'](_0x2eb6('0x11'),_0x4d92eb,_0x7783b[_0x2eb6('0x15')][_0x2eb6('0x17')]);return _0x1223d8(_0x7783b['error'][_0x2eb6('0x17')]);}logger[_0x2eb6('0x15')](_0x2eb6('0x11'),_0x4d92eb,_0x7783b[_0x2eb6('0x15')][_0x2eb6('0x17')]);return _0xa8894c(_0x7783b[_0x2eb6('0x15')]['message']);}else{logger[_0x2eb6('0x10')](_0x2eb6('0x11'),_0x4d92eb,_0x2eb6('0x13'));_0xa8894c(_0x7783b[_0x2eb6('0x18')][_0x2eb6('0x17')]);}})[_0x2eb6('0x19')](function(_0x4c78ab){logger[_0x2eb6('0x15')](_0x2eb6('0x11'),_0x4d92eb,_0x4c78ab);_0x1223d8(_0x4c78ab);});});}exports[_0x2eb6('0x1a')]=function(_0x3960a0){var _0x574d20=this;return new Promise(function(_0x2db22e,_0x42652b){return db[_0x2eb6('0x1b')][_0x2eb6('0x1c')]({'raw':_0x3960a0[_0x2eb6('0x1d')]?_0x3960a0['options'][_0x2eb6('0x1e')]===undefined?!![]:![]:!![],'where':_0x3960a0[_0x2eb6('0x1d')]?_0x3960a0['options'][_0x2eb6('0x1f')]||null:null,'attributes':_0x3960a0[_0x2eb6('0x1d')]?_0x3960a0[_0x2eb6('0x1d')][_0x2eb6('0x20')]||null:null,'limit':_0x3960a0['options']?_0x3960a0[_0x2eb6('0x1d')][_0x2eb6('0x21')]||null:null,'include':_0x3960a0[_0x2eb6('0x1d')]?_0x3960a0[_0x2eb6('0x1d')][_0x2eb6('0x22')]?_[_0x2eb6('0x23')](_0x3960a0[_0x2eb6('0x1d')][_0x2eb6('0x22')],function(_0x5b979b){return{'model':db[_0x5b979b[_0x2eb6('0x24')]],'as':_0x5b979b['as'],'attributes':_0x5b979b['attributes'],'include':_0x5b979b[_0x2eb6('0x22')]?_[_0x2eb6('0x23')](_0x5b979b['include'],function(_0x19665f){return{'model':db[_0x19665f[_0x2eb6('0x24')]],'as':_0x19665f['as'],'attributes':_0x19665f[_0x2eb6('0x20')],'include':_0x19665f[_0x2eb6('0x22')]?_[_0x2eb6('0x23')](_0x19665f[_0x2eb6('0x22')],function(_0x3af88d){return{'model':db[_0x3af88d[_0x2eb6('0x24')]],'as':_0x3af88d['as'],'attributes':_0x3af88d[_0x2eb6('0x20')]};}):[]};}):[]};}):[]:[]})[_0x2eb6('0xf')](function(_0x5ded46){logger['info']('GetMailAccount',_0x3960a0);logger[_0x2eb6('0x25')](_0x2eb6('0x1a'),_0x3960a0,JSON['stringify'](_0x5ded46));_0x2db22e(_0x5ded46);})[_0x2eb6('0x19')](function(_0x1b99a8){logger['error']('GetMailAccount',_0x1b99a8[_0x2eb6('0x17')],_0x3960a0);_0x42652b(_0x574d20[_0x2eb6('0x15')](0x1f4,_0x1b99a8[_0x2eb6('0x17')]));});});};exports[_0x2eb6('0x26')]=function(_0x25508f){var _0xdf8820=this;return new Promise(function(_0x40d90e,_0x1cbd68){return db[_0x2eb6('0x1b')]['find']({'raw':_0x25508f[_0x2eb6('0x1d')]?_0x25508f['options'][_0x2eb6('0x1e')]===undefined?!![]:![]:!![],'where':_0x25508f['options']?_0x25508f[_0x2eb6('0x1d')][_0x2eb6('0x1f')]||null:null,'attributes':_0x25508f[_0x2eb6('0x1d')]?_0x25508f[_0x2eb6('0x1d')][_0x2eb6('0x20')]||null:null,'include':_0x25508f['options']?_0x25508f[_0x2eb6('0x1d')][_0x2eb6('0x22')]?_['map'](_0x25508f[_0x2eb6('0x1d')][_0x2eb6('0x22')],function(_0x2eab15){return{'model':db[_0x2eab15[_0x2eb6('0x24')]],'as':_0x2eab15['as'],'attributes':_0x2eab15[_0x2eb6('0x20')],'include':_0x2eab15[_0x2eb6('0x22')]?_[_0x2eb6('0x23')](_0x2eab15['include'],function(_0x5370bb){return{'model':db[_0x5370bb['model']],'as':_0x5370bb['as'],'attributes':_0x5370bb[_0x2eb6('0x20')],'include':_0x5370bb[_0x2eb6('0x22')]?_[_0x2eb6('0x23')](_0x5370bb[_0x2eb6('0x22')],function(_0x1c680b){return{'model':db[_0x1c680b[_0x2eb6('0x24')]],'as':_0x1c680b['as'],'attributes':_0x1c680b[_0x2eb6('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x10a5ef){logger['info'](_0x2eb6('0x26'),_0x25508f);logger[_0x2eb6('0x25')](_0x2eb6('0x26'),_0x25508f,JSON[_0x2eb6('0x14')](_0x10a5ef));_0x40d90e(_0x10a5ef);})[_0x2eb6('0x19')](function(_0x5919cc){logger['error'](_0x2eb6('0x26'),_0x5919cc[_0x2eb6('0x17')],_0x25508f);_0x1cbd68(_0xdf8820[_0x2eb6('0x15')](0x1f4,_0x5919cc[_0x2eb6('0x17')]));});});};exports[_0x2eb6('0x27')]=function(_0xd254e7){var _0x3bd4a1=this;return new Promise(function(_0x3d160,_0x283f91){var _0x50f88c={'body':_0xd254e7[_0x2eb6('0x28')],'channel':_0x2eb6('0x29')};var _0x5ab5da=_[_0x2eb6('0x2a')](_[_0x2eb6('0x2b')](db[_0x2eb6('0x2c')][_0x2eb6('0x2d')]),[_0x2eb6('0x2e'),_0x2eb6('0x2f'),'CompanyId',_0x2eb6('0x30')]);var _0x26cced=![];if(_0xd254e7[_0x2eb6('0x28')]['id']){delete _0xd254e7['body']['id'];}if(_[_0x2eb6('0x31')](_0xd254e7['body']['from'])){return _0x283f91(_0x3bd4a1['error'](0x1f4,_0x2eb6('0x32')));}if(_[_0x2eb6('0x31')](_0xd254e7[_0x2eb6('0x28')]['body'])||_0xd254e7[_0x2eb6('0x28')]['body']===''){return _0x283f91(_0x3bd4a1[_0x2eb6('0x15')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_['isNil'](_0xd254e7['body']['mapKey'])){return _0x283f91(_0x3bd4a1[_0x2eb6('0x15')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5ab5da));}if(!_[_0x2eb6('0x33')](_0x5ab5da,_0xd254e7['body'][_0x2eb6('0x34')])){return _0x283f91(_0x3bd4a1['error'](0x1f4,_0x2eb6('0x35')+_0x5ab5da));}var _0x4dfa60={};_0x4dfa60[_0xd254e7['body'][_0x2eb6('0x34')]]=_0xd254e7['body'][_0x2eb6('0x36')];return db[_0x2eb6('0x1b')][_0x2eb6('0x37')]({'where':{'id':_0xd254e7[_0x2eb6('0x38')]['id']},'include':[{'model':db[_0x2eb6('0x39')],'as':'List','include':[{'model':db['CmContact'],'as':_0x2eb6('0x3a'),'where':_0x4dfa60,'limit':0x1,'order':[[_0x2eb6('0x2f'),_0x2eb6('0x3b')]]}]},{'model':db[_0x2eb6('0x3c')],'as':'Applications'},{'model':db[_0x2eb6('0x3d')],'as':'Smtp'}]})[_0x2eb6('0xf')](function(_0x1035c5){if(_0x1035c5&&_0x1035c5[_0x2eb6('0x3e')]){var _0x439c74=_0x1035c5[_0x2eb6('0x3f')]({'plain':!![]});_0x50f88c[_0x2eb6('0x38')]=_[_0x2eb6('0x40')](_0x439c74,[_0x2eb6('0x41'),_0x2eb6('0x3e')]);_0x50f88c[_0x2eb6('0x42')]=_0x439c74[_0x2eb6('0x41')];_0x50f88c['list']=_0x439c74[_0x2eb6('0x3e')];_0x50f88c[_0x2eb6('0x42')]=_[_0x2eb6('0x43')](_0x50f88c[_0x2eb6('0x42')],[_0x2eb6('0x44')],[_0x2eb6('0x45')]);if(_0x50f88c[_0x2eb6('0x38')]&&_0x50f88c['account']['autoclose']){_0x50f88c[_0x2eb6('0x42')][_0x2eb6('0x46')]({'id':0x0,'priority':_0x50f88c[_0x2eb6('0x42')]['length']+0x1,'app':_0x2eb6('0x47'),'appdata':_0x2eb6('0x48'),'interval':_0x2eb6('0x49')});}if(_0x50f88c['account'][_0x2eb6('0x41')]){delete _0x50f88c[_0x2eb6('0x38')][_0x2eb6('0x41')];}if(_0x50f88c[_0x2eb6('0x38')]['List']){delete _0x50f88c[_0x2eb6('0x38')]['List'];}if(_0x439c74[_0x2eb6('0x3e')][_0x2eb6('0x3a')][_0x2eb6('0x4a')]){return _0x439c74['List'][_0x2eb6('0x3a')][0x0];}var _0x2fd271=_['defaults'](_0xd254e7['body'],{'firstName':_0xd254e7['body'][_0x2eb6('0x36')],'ListId':_0x439c74['ListId']});_0x2fd271[_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x34')]]=_0xd254e7['body'][_0x2eb6('0x36')];return db[_0x2eb6('0x2c')][_0x2eb6('0x4b')](_0x2fd271);}else{throw new Error(_0x2eb6('0x4c'));}})[_0x2eb6('0xf')](function(_0x54934b){_0x50f88c[_0x2eb6('0x4d')]=_0x54934b;if(_0x54934b){if(!_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x4e')]){_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x4e')]=rs[_0x2eb6('0x4f')]()+'\x20'+_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')]['from'];}var _0x1ad48b={'ContactId':_0x54934b['id'],'MailAccountId':_0xd254e7['account']['id'],'inReplyTo':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x4e')],'to':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')]['from'],'cc':_0xd254e7['body']['message']['cc'],'subject':_0xd254e7['body'][_0x2eb6('0x17')][_0x2eb6('0x50')],'attach':_0xd254e7['body'][_0x2eb6('0x17')][_0x2eb6('0x51')],'lastMsgAt':moment()[_0x2eb6('0x52')](_0x2eb6('0x53')),'lastMsgDirection':'in'};return db[_0x2eb6('0x54')][_0x2eb6('0x37')]({'where':{'closed':![],'MailAccountId':_0xd254e7[_0x2eb6('0x38')]['id']},'include':[{'model':db[_0x2eb6('0x55')],'as':_0x2eb6('0x56'),'attributes':[_0x2eb6('0x4e')],'where':{'messageId':_0xd254e7['body']['message'][_0x2eb6('0x57')]}}]})['then'](function(_0x31698c){if(_0x31698c){return[_0x31698c,![]];}return db[_0x2eb6('0x54')]['create'](_0x1ad48b)[_0x2eb6('0xf')](function(_0xbcac1f){return[_0xbcac1f,!![]];});});}else{throw new Error(_0x2eb6('0x58'));}})[_0x2eb6('0x59')](function(_0x3dc426,_0xa53a58){if(_0x3dc426){_0x26cced=_0xa53a58;if(!_0xa53a58){return _0x3dc426[_0x2eb6('0x5a')]({'inReplyTo':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')]['messageId'],'to':_0xd254e7['body'][_0x2eb6('0x17')]['from'],'cc':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')]['cc'],'subject':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x50')],'attach':_0x3dc426[_0x2eb6('0x51')]?_0x3dc426['attach']:_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x51')],'substatus':null,'substatusAt':moment()[_0x2eb6('0x52')](_0x2eb6('0x53')),'lastMsgAt':moment()[_0x2eb6('0x52')](_0x2eb6('0x53')),'lastMsgDirection':'in'});}else{return _0x3dc426;}}})[_0x2eb6('0xf')](function(_0x2e51f0){_0x50f88c[_0x2eb6('0x5b')]=_0x2e51f0['get']({'plain':!![]});_0x50f88c[_0x2eb6('0x5b')]['created']=_0x26cced;return db[_0x2eb6('0x55')][_0x2eb6('0x4b')]({'body':_0xd254e7['body'][_0x2eb6('0x28')],'MailAccountId':_0xd254e7[_0x2eb6('0x38')]['id'],'MailInteractionId':_0x2e51f0['id'],'direction':'in','ContactId':_0x50f88c[_0x2eb6('0x4d')]['id'],'messageId':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x4e')],'from':_0xd254e7[_0x2eb6('0x28')]['message'][_0x2eb6('0x36')],'to':_0xd254e7[_0x2eb6('0x28')]['message']['to'],'cc':_0xd254e7['body'][_0x2eb6('0x17')]['cc'],'subject':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x50')],'attach':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x51')],'Attachments':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x5c')],'originTo':_0xd254e7[_0x2eb6('0x28')]['message'][_0x2eb6('0x5d')],'originCc':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')][_0x2eb6('0x5e')],'bcc':_0xd254e7[_0x2eb6('0x28')]['message'][_0x2eb6('0x5f')],'ChatWebsiteId':_0xd254e7['body']['message'][_0x2eb6('0x60')]||null,'originChannel':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')]['originChannel']||'Email','ChatOfflineMessageId':_0xd254e7[_0x2eb6('0x28')][_0x2eb6('0x17')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0x2eb6('0x61')],'as':_0x2eb6('0x62')}]});})[_0x2eb6('0xf')](function(_0x54b4f7){_0x50f88c[_0x2eb6('0x17')]=_0x54b4f7;if(_0x50f88c[_0x2eb6('0x5b')][_0x2eb6('0x63')]){return db[_0x2eb6('0x64')][_0x2eb6('0x37')]({'attributes':['id','name'],'where':{'id':_0x50f88c[_0x2eb6('0x5b')][_0x2eb6('0x63')]}})[_0x2eb6('0xf')](function(_0x3014fb){if(_0x3014fb){_0x50f88c[_0x2eb6('0x42')][_0x2eb6('0x65')]({'id':0x0,'priority':0x0,'app':_0x2eb6('0x66'),'appdata':_0x3014fb[_0x2eb6('0x67')]+','+(_0x50f88c[_0x2eb6('0x38')][_0x2eb6('0x68')]||0xa),'interval':_0x2eb6('0x49')});}return respondWithRpcPromise(_0x2eb6('0x69'),_0x2eb6('0x6a'),_0x50f88c);});}return respondWithRpcPromise(_0x2eb6('0x69'),_0x2eb6('0x6a'),_0x50f88c);})[_0x2eb6('0xf')](function(_0x1062c8){_0x3d160(_0x1062c8);})[_0x2eb6('0x19')](function(_0xf9db05){_0x283f91(_0x3bd4a1[_0x2eb6('0x15')](0x1f4,_0xf9db05[_0x2eb6('0x17')]));});});};