Built motion from commit cf5ff673.|2.5.41
[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 _0x8cb8=['debug','ShowMailAccount','MailAccount','find','NotifyMailAccount','body','mail','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','mapKey','includes','account','CmList','List','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','get','applications','list','orderBy','asc','autoclose','push','length','close','*,*,*,*','List\x20not\x20found','contact','messageId','generate','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','Messages','inReplyTo','create','spread','interaction','created','subject','attachments','originTo','originCc','bcc','originChannel','ChatOfflineMessageId','Attachment','Attachments','UserId','User','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','./mailAccount.socket','register','request','MailAccount,\x20%s,\x20%s','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','GetMailAccount','raw','options','where','attributes','include','model','map','then'];(function(_0x56d20e,_0x217c31){var _0x18b27a=function(_0x5d68bb){while(--_0x5d68bb){_0x56d20e['push'](_0x56d20e['shift']());}};_0x18b27a(++_0x217c31);}(_0x8cb8,0x113));var _0x88cb=function(_0x87b0ff,_0x314389){_0x87b0ff=_0x87b0ff-0x0;var _0x3bc0b2=_0x8cb8[_0x87b0ff];return _0x3bc0b2;};'use strict';var _=require(_0x88cb('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x88cb('0x1'));var fs=require('fs');var Redis=require(_0x88cb('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x88cb('0x3'));var logger=require('../../config/logger')(_0x88cb('0x4'));var config=require(_0x88cb('0x5'));var jayson=require(_0x88cb('0x6'));var client=jayson[_0x88cb('0x7')][_0x88cb('0x8')]({'port':0x232c});config['redis']=_[_0x88cb('0x9')](config[_0x88cb('0xa')],{'host':_0x88cb('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x88cb('0xa')]));require(_0x88cb('0xc'))[_0x88cb('0xd')](socket);function respondWithRpcPromise(_0x85eaeb,_0x2938a2,_0x3fcb10){return new BPromise(function(_0x3bff77,_0x4909b3){return client[_0x88cb('0xe')](_0x85eaeb,_0x3fcb10)['then'](function(_0x22a33e){logger['info'](_0x88cb('0xf'),_0x2938a2,'request\x20sent');logger['debug'](_0x88cb('0x10'),_0x2938a2,_0x88cb('0x11'),JSON[_0x88cb('0x12')](_0x22a33e));if(_0x22a33e['error']){if(_0x22a33e[_0x88cb('0x13')][_0x88cb('0x14')]===0x1f4){logger[_0x88cb('0x13')](_0x88cb('0xf'),_0x2938a2,_0x22a33e[_0x88cb('0x13')]['message']);return _0x4909b3(_0x22a33e[_0x88cb('0x13')][_0x88cb('0x15')]);}logger[_0x88cb('0x13')]('MailAccount,\x20%s,\x20%s',_0x2938a2,_0x22a33e[_0x88cb('0x13')][_0x88cb('0x15')]);return _0x3bff77(_0x22a33e[_0x88cb('0x13')][_0x88cb('0x15')]);}else{logger[_0x88cb('0x16')](_0x88cb('0xf'),_0x2938a2,_0x88cb('0x11'));_0x3bff77(_0x22a33e[_0x88cb('0x17')]['message']);}})[_0x88cb('0x18')](function(_0x475835){logger[_0x88cb('0x13')](_0x88cb('0xf'),_0x2938a2,_0x475835);_0x4909b3(_0x475835);});});}exports[_0x88cb('0x19')]=function(_0x4491d4){var _0x175ea5=this;return new Promise(function(_0x2e1aa0,_0x15f884){return db['MailAccount']['findAll']({'raw':_0x4491d4['options']?_0x4491d4['options'][_0x88cb('0x1a')]===undefined?!![]:![]:!![],'where':_0x4491d4[_0x88cb('0x1b')]?_0x4491d4['options'][_0x88cb('0x1c')]||null:null,'attributes':_0x4491d4[_0x88cb('0x1b')]?_0x4491d4[_0x88cb('0x1b')][_0x88cb('0x1d')]||null:null,'limit':_0x4491d4['options']?_0x4491d4[_0x88cb('0x1b')]['limit']||null:null,'include':_0x4491d4[_0x88cb('0x1b')]?_0x4491d4[_0x88cb('0x1b')][_0x88cb('0x1e')]?_['map'](_0x4491d4[_0x88cb('0x1b')][_0x88cb('0x1e')],function(_0x2af5fa){return{'model':db[_0x2af5fa[_0x88cb('0x1f')]],'as':_0x2af5fa['as'],'attributes':_0x2af5fa[_0x88cb('0x1d')],'include':_0x2af5fa[_0x88cb('0x1e')]?_[_0x88cb('0x20')](_0x2af5fa[_0x88cb('0x1e')],function(_0x17f3fc){return{'model':db[_0x17f3fc[_0x88cb('0x1f')]],'as':_0x17f3fc['as'],'attributes':_0x17f3fc[_0x88cb('0x1d')],'include':_0x17f3fc['include']?_[_0x88cb('0x20')](_0x17f3fc[_0x88cb('0x1e')],function(_0x896268){return{'model':db[_0x896268[_0x88cb('0x1f')]],'as':_0x896268['as'],'attributes':_0x896268['attributes']};}):[]};}):[]};}):[]:[]})[_0x88cb('0x21')](function(_0x46d336){logger[_0x88cb('0x16')](_0x88cb('0x19'),_0x4491d4);logger[_0x88cb('0x22')]('GetMailAccount',_0x4491d4,JSON['stringify'](_0x46d336));_0x2e1aa0(_0x46d336);})[_0x88cb('0x18')](function(_0x41cbaa){logger[_0x88cb('0x13')](_0x88cb('0x19'),_0x41cbaa[_0x88cb('0x15')],_0x4491d4);_0x15f884(_0x175ea5[_0x88cb('0x13')](0x1f4,_0x41cbaa[_0x88cb('0x15')]));});});};exports[_0x88cb('0x23')]=function(_0x2ef165){var _0x2c7909=this;return new Promise(function(_0x2b566f,_0x44ddd8){return db[_0x88cb('0x24')][_0x88cb('0x25')]({'raw':_0x2ef165[_0x88cb('0x1b')]?_0x2ef165[_0x88cb('0x1b')][_0x88cb('0x1a')]===undefined?!![]:![]:!![],'where':_0x2ef165[_0x88cb('0x1b')]?_0x2ef165[_0x88cb('0x1b')][_0x88cb('0x1c')]||null:null,'attributes':_0x2ef165[_0x88cb('0x1b')]?_0x2ef165[_0x88cb('0x1b')]['attributes']||null:null,'include':_0x2ef165[_0x88cb('0x1b')]?_0x2ef165[_0x88cb('0x1b')][_0x88cb('0x1e')]?_[_0x88cb('0x20')](_0x2ef165[_0x88cb('0x1b')][_0x88cb('0x1e')],function(_0x4dcf6d){return{'model':db[_0x4dcf6d[_0x88cb('0x1f')]],'as':_0x4dcf6d['as'],'attributes':_0x4dcf6d[_0x88cb('0x1d')],'include':_0x4dcf6d[_0x88cb('0x1e')]?_[_0x88cb('0x20')](_0x4dcf6d[_0x88cb('0x1e')],function(_0x2eb8e6){return{'model':db[_0x2eb8e6[_0x88cb('0x1f')]],'as':_0x2eb8e6['as'],'attributes':_0x2eb8e6[_0x88cb('0x1d')],'include':_0x2eb8e6[_0x88cb('0x1e')]?_[_0x88cb('0x20')](_0x2eb8e6['include'],function(_0x2034c6){return{'model':db[_0x2034c6['model']],'as':_0x2034c6['as'],'attributes':_0x2034c6[_0x88cb('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x88cb('0x21')](function(_0x21251f){logger[_0x88cb('0x16')](_0x88cb('0x23'),_0x2ef165);logger[_0x88cb('0x22')]('ShowMailAccount',_0x2ef165,JSON['stringify'](_0x21251f));_0x2b566f(_0x21251f);})[_0x88cb('0x18')](function(_0x5cfa14){logger[_0x88cb('0x13')]('ShowMailAccount',_0x5cfa14[_0x88cb('0x15')],_0x2ef165);_0x44ddd8(_0x2c7909[_0x88cb('0x13')](0x1f4,_0x5cfa14[_0x88cb('0x15')]));});});};exports[_0x88cb('0x26')]=function(_0x41d18d){var _0x413edf=this;return new Promise(function(_0xa805f9,_0x64243f){var _0x3367b7={'body':_0x41d18d[_0x88cb('0x27')],'channel':_0x88cb('0x28')};var _0x49f596=_[_0x88cb('0x29')](_[_0x88cb('0x2a')](db[_0x88cb('0x2b')][_0x88cb('0x2c')]),[_0x88cb('0x2d'),_0x88cb('0x2e'),_0x88cb('0x2f'),_0x88cb('0x30')]);var _0x526a8f=![];if(_0x41d18d['body']['id']){delete _0x41d18d[_0x88cb('0x27')]['id'];}if(_[_0x88cb('0x31')](_0x41d18d[_0x88cb('0x27')][_0x88cb('0x32')])){return _0x64243f(_0x413edf['error'](0x1f4,_0x88cb('0x33')));}if(_[_0x88cb('0x31')](_0x41d18d[_0x88cb('0x27')][_0x88cb('0x27')])||_0x41d18d[_0x88cb('0x27')][_0x88cb('0x27')]===''){return _0x64243f(_0x413edf[_0x88cb('0x13')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_['isNil'](_0x41d18d[_0x88cb('0x27')][_0x88cb('0x34')])){return _0x64243f(_0x413edf[_0x88cb('0x13')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x49f596));}if(!_[_0x88cb('0x35')](_0x49f596,_0x41d18d[_0x88cb('0x27')][_0x88cb('0x34')])){return _0x64243f(_0x413edf[_0x88cb('0x13')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x49f596));}var _0x2d2066={};_0x2d2066[_0x41d18d[_0x88cb('0x27')][_0x88cb('0x34')]]=_0x41d18d[_0x88cb('0x27')][_0x88cb('0x32')];return db[_0x88cb('0x24')]['find']({'where':{'id':_0x41d18d[_0x88cb('0x36')]['id']},'include':[{'model':db[_0x88cb('0x37')],'as':_0x88cb('0x38'),'include':[{'model':db[_0x88cb('0x2b')],'as':_0x88cb('0x39'),'where':_0x2d2066,'limit':0x1,'order':[[_0x88cb('0x2e'),_0x88cb('0x3a')]]}]},{'model':db[_0x88cb('0x3b')],'as':_0x88cb('0x3c')},{'model':db[_0x88cb('0x3d')],'as':_0x88cb('0x3e')}]})[_0x88cb('0x21')](function(_0x47dc45){if(_0x47dc45&&_0x47dc45[_0x88cb('0x38')]){var _0x4f2764=_0x47dc45[_0x88cb('0x3f')]({'plain':!![]});_0x3367b7[_0x88cb('0x36')]=_['omit'](_0x4f2764,['Applications',_0x88cb('0x38')]);_0x3367b7[_0x88cb('0x40')]=_0x4f2764['Applications'];_0x3367b7[_0x88cb('0x41')]=_0x4f2764[_0x88cb('0x38')];_0x3367b7[_0x88cb('0x40')]=_[_0x88cb('0x42')](_0x3367b7[_0x88cb('0x40')],['priority'],[_0x88cb('0x43')]);if(_0x3367b7[_0x88cb('0x36')]&&_0x3367b7[_0x88cb('0x36')][_0x88cb('0x44')]){_0x3367b7['applications'][_0x88cb('0x45')]({'id':0x0,'priority':_0x3367b7[_0x88cb('0x40')][_0x88cb('0x46')]+0x1,'app':_0x88cb('0x47'),'appdata':_0x88cb('0x44'),'interval':_0x88cb('0x48')});}if(_0x3367b7[_0x88cb('0x36')][_0x88cb('0x3c')]){delete _0x3367b7[_0x88cb('0x36')][_0x88cb('0x3c')];}if(_0x3367b7[_0x88cb('0x36')][_0x88cb('0x38')]){delete _0x3367b7[_0x88cb('0x36')][_0x88cb('0x38')];}if(_0x4f2764['List'][_0x88cb('0x39')][_0x88cb('0x46')]){return _0x4f2764[_0x88cb('0x38')][_0x88cb('0x39')][0x0];}var _0x4e83ff=_['defaults'](_0x41d18d['body'],{'firstName':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x32')],'ListId':_0x4f2764[_0x88cb('0x30')]});_0x4e83ff[_0x41d18d[_0x88cb('0x27')][_0x88cb('0x34')]]=_0x41d18d[_0x88cb('0x27')][_0x88cb('0x32')];return db[_0x88cb('0x2b')]['create'](_0x4e83ff);}else{throw new Error(_0x88cb('0x49'));}})[_0x88cb('0x21')](function(_0x258f5f){_0x3367b7[_0x88cb('0x4a')]=_0x258f5f;if(_0x258f5f){if(!_0x41d18d[_0x88cb('0x27')]['message'][_0x88cb('0x4b')]){_0x41d18d[_0x88cb('0x27')]['message']['messageId']=rs[_0x88cb('0x4c')]()+'\x20'+_0x41d18d['body'][_0x88cb('0x15')][_0x88cb('0x32')];}var _0xe6ea7b={'ContactId':_0x258f5f['id'],'MailAccountId':_0x41d18d[_0x88cb('0x36')]['id'],'inReplyTo':_0x41d18d[_0x88cb('0x27')]['message']['messageId'],'to':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')]['from'],'cc':_0x41d18d[_0x88cb('0x27')]['message']['cc'],'subject':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')]['subject'],'attach':_0x41d18d[_0x88cb('0x27')]['message'][_0x88cb('0x4d')],'lastMsgAt':moment()[_0x88cb('0x4e')](_0x88cb('0x4f')),'lastMsgDirection':'in'};return db['MailInteraction'][_0x88cb('0x25')]({'where':{'closed':![],'MailAccountId':_0x41d18d['account']['id']},'include':[{'model':db[_0x88cb('0x50')],'as':_0x88cb('0x51'),'attributes':[_0x88cb('0x4b')],'where':{'messageId':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')][_0x88cb('0x52')]}}]})[_0x88cb('0x21')](function(_0x4e1374){if(_0x4e1374){return[_0x4e1374,![]];}return db['MailInteraction'][_0x88cb('0x53')](_0xe6ea7b)[_0x88cb('0x21')](function(_0x49f146){return[_0x49f146,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x88cb('0x54')](function(_0xb61f8b,_0x4bcfe8){if(_0xb61f8b){_0x526a8f=_0x4bcfe8;if(!_0x4bcfe8){return _0xb61f8b['update']({'inReplyTo':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')][_0x88cb('0x4b')],'to':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')][_0x88cb('0x32')],'cc':_0x41d18d['body']['message']['cc'],'subject':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')]['subject'],'attach':_0xb61f8b[_0x88cb('0x4d')]?_0xb61f8b[_0x88cb('0x4d')]:_0x41d18d[_0x88cb('0x27')]['message'][_0x88cb('0x4d')],'substatus':null,'substatusAt':moment()[_0x88cb('0x4e')](_0x88cb('0x4f')),'lastMsgAt':moment()[_0x88cb('0x4e')](_0x88cb('0x4f')),'lastMsgDirection':'in'});}else{return _0xb61f8b;}}})[_0x88cb('0x21')](function(_0x173765){_0x3367b7[_0x88cb('0x55')]=_0x173765[_0x88cb('0x3f')]({'plain':!![]});_0x3367b7[_0x88cb('0x55')][_0x88cb('0x56')]=_0x526a8f;return db[_0x88cb('0x50')][_0x88cb('0x53')]({'body':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x27')],'MailAccountId':_0x41d18d[_0x88cb('0x36')]['id'],'MailInteractionId':_0x173765['id'],'direction':'in','ContactId':_0x3367b7[_0x88cb('0x4a')]['id'],'messageId':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')][_0x88cb('0x4b')],'from':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')][_0x88cb('0x32')],'to':_0x41d18d[_0x88cb('0x27')]['message']['to'],'cc':_0x41d18d['body']['message']['cc'],'subject':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')][_0x88cb('0x57')],'attach':_0x41d18d['body'][_0x88cb('0x15')][_0x88cb('0x4d')],'Attachments':_0x41d18d[_0x88cb('0x27')]['message'][_0x88cb('0x58')],'originTo':_0x41d18d[_0x88cb('0x27')]['message'][_0x88cb('0x59')],'originCc':_0x41d18d[_0x88cb('0x27')]['message'][_0x88cb('0x5a')],'bcc':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')][_0x88cb('0x5b')],'ChatWebsiteId':_0x41d18d[_0x88cb('0x27')]['message']['ChatWebsiteId']||null,'originChannel':_0x41d18d[_0x88cb('0x27')][_0x88cb('0x15')][_0x88cb('0x5c')]||'Email','ChatOfflineMessageId':_0x41d18d['body'][_0x88cb('0x15')][_0x88cb('0x5d')]||null},{'include':[{'model':db[_0x88cb('0x5e')],'as':_0x88cb('0x5f')}]});})[_0x88cb('0x21')](function(_0x4de9c7){_0x3367b7[_0x88cb('0x15')]=_0x4de9c7;if(_0x3367b7[_0x88cb('0x55')][_0x88cb('0x60')]){return db[_0x88cb('0x61')]['find']({'attributes':['id',_0x88cb('0x62')],'where':{'id':_0x3367b7[_0x88cb('0x55')][_0x88cb('0x60')]}})[_0x88cb('0x21')](function(_0x462c2a){if(_0x462c2a){_0x3367b7[_0x88cb('0x40')][_0x88cb('0x63')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x462c2a[_0x88cb('0x62')]+','+(_0x3367b7[_0x88cb('0x36')][_0x88cb('0x64')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x88cb('0x65'),_0x88cb('0x66'),_0x3367b7);});}return respondWithRpcPromise('Start',_0x88cb('0x66'),_0x3367b7);})[_0x88cb('0x21')](function(_0x4dd076){_0xa805f9(_0x4dd076);})[_0x88cb('0x18')](function(_0x1e89d9){_0x64243f(_0x413edf[_0x88cb('0x13')](0x1f4,_0x1e89d9[_0x88cb('0x15')]));});});};