Built motion from commit 753c950e.|2.5.42
[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 _0x482f=['moment','bluebird','ioredis','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','MailAccount','findAll','options','raw','limit','map','include','model','attributes','GetMailAccount','stringify','ShowMailAccount','where','NotifyMailAccount','body','mail','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','from','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','account','MailApplication','Applications','MailServerOut','List','omit','applications','list','orderBy','asc','autoclose','push','length','close','*,*,*,*','Contacts','create','List\x20not\x20found','contact','messageId','attach','format','MailInteraction','find','inReplyTo','Contact\x20not\x20found','update','YYYY-MM-DD\x20HH:mm:ss','interaction','get','created','MailMessage','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','Attachments','UserId','User','name','unshift','agent','Start','startRouting','lodash','util'];(function(_0xdfcef0,_0xde916e){var _0x4e9c7f=function(_0x366922){while(--_0x366922){_0xdfcef0['push'](_0xdfcef0['shift']());}};_0x4e9c7f(++_0xde916e);}(_0x482f,0x1a6));var _0xf482=function(_0x476cbb,_0xadaec){_0x476cbb=_0x476cbb-0x0;var _0xe02938=_0x482f[_0x476cbb];return _0xe02938;};'use strict';var _=require(_0xf482('0x0'));var util=require(_0xf482('0x1'));var moment=require(_0xf482('0x2'));var BPromise=require(_0xf482('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf482('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xf482('0x5'))(_0xf482('0x6'));var config=require('../../config/environment');var jayson=require(_0xf482('0x7'));var client=jayson[_0xf482('0x8')][_0xf482('0x9')]({'port':0x232c});config[_0xf482('0xa')]=_[_0xf482('0xb')](config['redis'],{'host':_0xf482('0xc'),'port':0x18eb});var socket=require(_0xf482('0xd'))(new Redis(config[_0xf482('0xa')]));require('./mailAccount.socket')[_0xf482('0xe')](socket);function respondWithRpcPromise(_0x447b5b,_0x569e97,_0x5548d8){return new BPromise(function(_0x30cc4b,_0x441325){return client[_0xf482('0xf')](_0x447b5b,_0x5548d8)[_0xf482('0x10')](function(_0x14104a){logger['info'](_0xf482('0x11'),_0x569e97,_0xf482('0x12'));logger[_0xf482('0x13')](_0xf482('0x14'),_0x569e97,_0xf482('0x12'),JSON['stringify'](_0x14104a));if(_0x14104a['error']){if(_0x14104a[_0xf482('0x15')][_0xf482('0x16')]===0x1f4){logger[_0xf482('0x15')]('MailAccount,\x20%s,\x20%s',_0x569e97,_0x14104a['error']['message']);return _0x441325(_0x14104a[_0xf482('0x15')][_0xf482('0x17')]);}logger['error']('MailAccount,\x20%s,\x20%s',_0x569e97,_0x14104a[_0xf482('0x15')]['message']);return _0x30cc4b(_0x14104a['error']['message']);}else{logger[_0xf482('0x18')](_0xf482('0x11'),_0x569e97,_0xf482('0x12'));_0x30cc4b(_0x14104a[_0xf482('0x19')][_0xf482('0x17')]);}})[_0xf482('0x1a')](function(_0xccfc98){logger[_0xf482('0x15')](_0xf482('0x11'),_0x569e97,_0xccfc98);_0x441325(_0xccfc98);});});}exports['GetMailAccount']=function(_0x42e06b){var _0x338681=this;return new Promise(function(_0x1f910d,_0x4a7708){return db[_0xf482('0x1b')][_0xf482('0x1c')]({'raw':_0x42e06b['options']?_0x42e06b[_0xf482('0x1d')][_0xf482('0x1e')]===undefined?!![]:![]:!![],'where':_0x42e06b['options']?_0x42e06b['options']['where']||null:null,'attributes':_0x42e06b['options']?_0x42e06b[_0xf482('0x1d')]['attributes']||null:null,'limit':_0x42e06b[_0xf482('0x1d')]?_0x42e06b[_0xf482('0x1d')][_0xf482('0x1f')]||null:null,'include':_0x42e06b[_0xf482('0x1d')]?_0x42e06b[_0xf482('0x1d')]['include']?_[_0xf482('0x20')](_0x42e06b[_0xf482('0x1d')][_0xf482('0x21')],function(_0x2b64ff){return{'model':db[_0x2b64ff[_0xf482('0x22')]],'as':_0x2b64ff['as'],'attributes':_0x2b64ff[_0xf482('0x23')],'include':_0x2b64ff[_0xf482('0x21')]?_[_0xf482('0x20')](_0x2b64ff[_0xf482('0x21')],function(_0x431fcb){return{'model':db[_0x431fcb[_0xf482('0x22')]],'as':_0x431fcb['as'],'attributes':_0x431fcb[_0xf482('0x23')],'include':_0x431fcb[_0xf482('0x21')]?_[_0xf482('0x20')](_0x431fcb[_0xf482('0x21')],function(_0x5860c7){return{'model':db[_0x5860c7[_0xf482('0x22')]],'as':_0x5860c7['as'],'attributes':_0x5860c7[_0xf482('0x23')]};}):[]};}):[]};}):[]:[]})[_0xf482('0x10')](function(_0x35aadd){logger[_0xf482('0x18')](_0xf482('0x24'),_0x42e06b);logger[_0xf482('0x13')](_0xf482('0x24'),_0x42e06b,JSON[_0xf482('0x25')](_0x35aadd));_0x1f910d(_0x35aadd);})[_0xf482('0x1a')](function(_0x5bbf40){logger['error'](_0xf482('0x24'),_0x5bbf40[_0xf482('0x17')],_0x42e06b);_0x4a7708(_0x338681[_0xf482('0x15')](0x1f4,_0x5bbf40[_0xf482('0x17')]));});});};exports[_0xf482('0x26')]=function(_0x2e1a44){var _0x571c30=this;return new Promise(function(_0x3c591a,_0x54ce2b){return db[_0xf482('0x1b')]['find']({'raw':_0x2e1a44[_0xf482('0x1d')]?_0x2e1a44['options'][_0xf482('0x1e')]===undefined?!![]:![]:!![],'where':_0x2e1a44['options']?_0x2e1a44[_0xf482('0x1d')][_0xf482('0x27')]||null:null,'attributes':_0x2e1a44[_0xf482('0x1d')]?_0x2e1a44[_0xf482('0x1d')]['attributes']||null:null,'include':_0x2e1a44['options']?_0x2e1a44['options']['include']?_[_0xf482('0x20')](_0x2e1a44[_0xf482('0x1d')][_0xf482('0x21')],function(_0xd29578){return{'model':db[_0xd29578[_0xf482('0x22')]],'as':_0xd29578['as'],'attributes':_0xd29578[_0xf482('0x23')],'include':_0xd29578[_0xf482('0x21')]?_['map'](_0xd29578['include'],function(_0x15671f){return{'model':db[_0x15671f['model']],'as':_0x15671f['as'],'attributes':_0x15671f['attributes'],'include':_0x15671f['include']?_[_0xf482('0x20')](_0x15671f['include'],function(_0xe699e8){return{'model':db[_0xe699e8[_0xf482('0x22')]],'as':_0xe699e8['as'],'attributes':_0xe699e8[_0xf482('0x23')]};}):[]};}):[]};}):[]:[]})[_0xf482('0x10')](function(_0x3b9968){logger[_0xf482('0x18')](_0xf482('0x26'),_0x2e1a44);logger[_0xf482('0x13')](_0xf482('0x26'),_0x2e1a44,JSON[_0xf482('0x25')](_0x3b9968));_0x3c591a(_0x3b9968);})[_0xf482('0x1a')](function(_0x40519d){logger[_0xf482('0x15')](_0xf482('0x26'),_0x40519d[_0xf482('0x17')],_0x2e1a44);_0x54ce2b(_0x571c30[_0xf482('0x15')](0x1f4,_0x40519d['message']));});});};exports[_0xf482('0x28')]=function(_0x531e54){var _0x3497d8=this;return new Promise(function(_0x21dcff,_0x55fab1){var _0xe1b5c={'body':_0x531e54[_0xf482('0x29')],'channel':_0xf482('0x2a')};var _0x304145=_[_0xf482('0x2b')](_[_0xf482('0x2c')](db[_0xf482('0x2d')][_0xf482('0x2e')]),[_0xf482('0x2f'),_0xf482('0x30'),_0xf482('0x31'),_0xf482('0x32')]);var _0x475fc7=![];if(_0x531e54['body']['id']){delete _0x531e54[_0xf482('0x29')]['id'];}if(_['isNil'](_0x531e54[_0xf482('0x29')][_0xf482('0x33')])){return _0x55fab1(_0x3497d8[_0xf482('0x15')](0x1f4,_0xf482('0x34')));}if(_[_0xf482('0x35')](_0x531e54['body']['body'])||_0x531e54['body'][_0xf482('0x29')]===''){return _0x55fab1(_0x3497d8[_0xf482('0x15')](0x1f4,_0xf482('0x36')));}if(_[_0xf482('0x35')](_0x531e54['body'][_0xf482('0x37')])){return _0x55fab1(_0x3497d8[_0xf482('0x15')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x304145));}if(!_[_0xf482('0x38')](_0x304145,_0x531e54['body'][_0xf482('0x37')])){return _0x55fab1(_0x3497d8[_0xf482('0x15')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x304145));}var _0x4ec00e={};_0x4ec00e[_0x531e54[_0xf482('0x29')][_0xf482('0x37')]]=_0x531e54[_0xf482('0x29')]['from'];return db[_0xf482('0x1b')]['find']({'where':{'id':_0x531e54[_0xf482('0x39')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db['CmContact'],'as':'Contacts','where':_0x4ec00e,'limit':0x1,'order':[[_0xf482('0x30'),'DESC']]}]},{'model':db[_0xf482('0x3a')],'as':_0xf482('0x3b')},{'model':db[_0xf482('0x3c')],'as':'Smtp'}]})[_0xf482('0x10')](function(_0x34ff3c){if(_0x34ff3c&&_0x34ff3c[_0xf482('0x3d')]){var _0x4e46f5=_0x34ff3c['get']({'plain':!![]});_0xe1b5c['account']=_[_0xf482('0x3e')](_0x4e46f5,[_0xf482('0x3b'),_0xf482('0x3d')]);_0xe1b5c[_0xf482('0x3f')]=_0x4e46f5[_0xf482('0x3b')];_0xe1b5c[_0xf482('0x40')]=_0x4e46f5[_0xf482('0x3d')];_0xe1b5c[_0xf482('0x3f')]=_[_0xf482('0x41')](_0xe1b5c[_0xf482('0x3f')],['priority'],[_0xf482('0x42')]);if(_0xe1b5c['account']&&_0xe1b5c[_0xf482('0x39')][_0xf482('0x43')]){_0xe1b5c[_0xf482('0x3f')][_0xf482('0x44')]({'id':0x0,'priority':_0xe1b5c[_0xf482('0x3f')][_0xf482('0x45')]+0x1,'app':_0xf482('0x46'),'appdata':_0xf482('0x43'),'interval':_0xf482('0x47')});}if(_0xe1b5c[_0xf482('0x39')][_0xf482('0x3b')]){delete _0xe1b5c[_0xf482('0x39')][_0xf482('0x3b')];}if(_0xe1b5c[_0xf482('0x39')][_0xf482('0x3d')]){delete _0xe1b5c['account'][_0xf482('0x3d')];}if(_0x4e46f5[_0xf482('0x3d')][_0xf482('0x48')][_0xf482('0x45')]){return _0x4e46f5[_0xf482('0x3d')][_0xf482('0x48')][0x0];}var _0xfef0ea=_[_0xf482('0xb')](_0x531e54['body'],{'firstName':_0x531e54[_0xf482('0x29')]['from'],'ListId':_0x4e46f5[_0xf482('0x32')]});_0xfef0ea[_0x531e54['body'][_0xf482('0x37')]]=_0x531e54[_0xf482('0x29')][_0xf482('0x33')];return db[_0xf482('0x2d')][_0xf482('0x49')](_0xfef0ea);}else{throw new Error(_0xf482('0x4a'));}})[_0xf482('0x10')](function(_0x1f42a4){_0xe1b5c[_0xf482('0x4b')]=_0x1f42a4;if(_0x1f42a4){if(!_0x531e54[_0xf482('0x29')][_0xf482('0x17')][_0xf482('0x4c')]){_0x531e54[_0xf482('0x29')][_0xf482('0x17')][_0xf482('0x4c')]=rs['generate']()+'\x20'+_0x531e54[_0xf482('0x29')][_0xf482('0x17')]['from'];}var _0x52dfa9={'ContactId':_0x1f42a4['id'],'MailAccountId':_0x531e54[_0xf482('0x39')]['id'],'inReplyTo':_0x531e54['body'][_0xf482('0x17')]['messageId'],'to':_0x531e54[_0xf482('0x29')][_0xf482('0x17')]['from'],'cc':_0x531e54[_0xf482('0x29')][_0xf482('0x17')]['cc'],'subject':_0x531e54[_0xf482('0x29')][_0xf482('0x17')]['subject'],'attach':_0x531e54['body'][_0xf482('0x17')][_0xf482('0x4d')],'lastMsgAt':moment()[_0xf482('0x4e')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db[_0xf482('0x4f')][_0xf482('0x50')]({'where':{'closed':![],'MailAccountId':_0x531e54[_0xf482('0x39')]['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':['messageId'],'where':{'messageId':_0x531e54[_0xf482('0x29')][_0xf482('0x17')][_0xf482('0x51')]}}]})['then'](function(_0x214f9a){if(_0x214f9a){return[_0x214f9a,![]];}return db[_0xf482('0x4f')][_0xf482('0x49')](_0x52dfa9)[_0xf482('0x10')](function(_0xa4a31e){return[_0xa4a31e,!![]];});});}else{throw new Error(_0xf482('0x52'));}})['spread'](function(_0x421561,_0x4e23b9){if(_0x421561){_0x475fc7=_0x4e23b9;if(!_0x4e23b9){return _0x421561[_0xf482('0x53')]({'inReplyTo':_0x531e54['body'][_0xf482('0x17')][_0xf482('0x4c')],'to':_0x531e54[_0xf482('0x29')][_0xf482('0x17')]['from'],'cc':_0x531e54[_0xf482('0x29')][_0xf482('0x17')]['cc'],'subject':_0x531e54[_0xf482('0x29')][_0xf482('0x17')]['subject'],'attach':_0x421561['attach']?_0x421561[_0xf482('0x4d')]:_0x531e54['body']['message'][_0xf482('0x4d')],'substatus':null,'substatusAt':moment()[_0xf482('0x4e')](_0xf482('0x54')),'lastMsgAt':moment()[_0xf482('0x4e')](_0xf482('0x54')),'lastMsgDirection':'in'});}else{return _0x421561;}}})[_0xf482('0x10')](function(_0x229397){_0xe1b5c[_0xf482('0x55')]=_0x229397[_0xf482('0x56')]({'plain':!![]});_0xe1b5c[_0xf482('0x55')][_0xf482('0x57')]=_0x475fc7;return db[_0xf482('0x58')][_0xf482('0x49')]({'body':_0x531e54[_0xf482('0x29')][_0xf482('0x29')],'MailAccountId':_0x531e54[_0xf482('0x39')]['id'],'MailInteractionId':_0x229397['id'],'direction':'in','ContactId':_0xe1b5c[_0xf482('0x4b')]['id'],'messageId':_0x531e54[_0xf482('0x29')][_0xf482('0x17')][_0xf482('0x4c')],'from':_0x531e54[_0xf482('0x29')]['message'][_0xf482('0x33')],'to':_0x531e54[_0xf482('0x29')][_0xf482('0x17')]['to'],'cc':_0x531e54[_0xf482('0x29')][_0xf482('0x17')]['cc'],'subject':_0x531e54['body'][_0xf482('0x17')]['subject'],'attach':_0x531e54[_0xf482('0x29')][_0xf482('0x17')][_0xf482('0x4d')],'Attachments':_0x531e54[_0xf482('0x29')][_0xf482('0x17')][_0xf482('0x59')],'originTo':_0x531e54[_0xf482('0x29')][_0xf482('0x17')][_0xf482('0x5a')],'originCc':_0x531e54[_0xf482('0x29')]['message'][_0xf482('0x5b')],'bcc':_0x531e54[_0xf482('0x29')]['message'][_0xf482('0x5c')],'ChatWebsiteId':_0x531e54['body'][_0xf482('0x17')][_0xf482('0x5d')]||null,'originChannel':_0x531e54['body'][_0xf482('0x17')][_0xf482('0x5e')]||_0xf482('0x5f'),'ChatOfflineMessageId':_0x531e54[_0xf482('0x29')][_0xf482('0x17')][_0xf482('0x60')]||null},{'include':[{'model':db[_0xf482('0x61')],'as':_0xf482('0x62')}]});})[_0xf482('0x10')](function(_0x1e94be){_0xe1b5c['message']=_0x1e94be;if(_0xe1b5c[_0xf482('0x55')][_0xf482('0x63')]){return db[_0xf482('0x64')][_0xf482('0x50')]({'attributes':['id',_0xf482('0x65')],'where':{'id':_0xe1b5c[_0xf482('0x55')][_0xf482('0x63')]}})[_0xf482('0x10')](function(_0x36f676){if(_0x36f676){_0xe1b5c[_0xf482('0x3f')][_0xf482('0x66')]({'id':0x0,'priority':0x0,'app':_0xf482('0x67'),'appdata':_0x36f676[_0xf482('0x65')]+','+(_0xe1b5c[_0xf482('0x39')]['waitForTheAssignedAgent']||0xa),'interval':_0xf482('0x47')});}return respondWithRpcPromise('Start','startRouting',_0xe1b5c);});}return respondWithRpcPromise(_0xf482('0x68'),_0xf482('0x69'),_0xe1b5c);})['then'](function(_0x18199a){_0x21dcff(_0x18199a);})[_0xf482('0x1a')](function(_0x6433ad){_0x55fab1(_0x3497d8[_0xf482('0x15')](0x1f4,_0x6433ad[_0xf482('0x17')]));});});};