Built motion from commit (unavailable).|2.5.29
[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 _0xb91f=['startRouting','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','redis','localhost','request','info','MailAccount,\x20%s,\x20%s','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','error','code','message','catch','GetMailAccount','MailAccount','findAll','options','raw','attributes','map','include','model','then','debug','stringify','ShowMailAccount','find','NotifyMailAccount','body','mail','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','DESC','Applications','MailServerOut','get','omit','list','applications','orderBy','autoclose','push','close','length','defaults','ListId','create','contact','generate','messageId','subject','attach','YYYY-MM-DD\x20HH:mm:ss','MailMessage','Messages','inReplyTo','MailInteraction','spread','update','format','interaction','created','originTo','bcc','ChatWebsiteId','Email','Attachments','UserId','User','name','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start'];(function(_0x1f61f2,_0x59f92b){var _0x14ee07=function(_0x1de995){while(--_0x1de995){_0x1f61f2['push'](_0x1f61f2['shift']());}};_0x14ee07(++_0x59f92b);}(_0xb91f,0x65));var _0xfb91=function(_0x28c635,_0x4c8f6e){_0x28c635=_0x28c635-0x0;var _0x82cbae=_0xb91f[_0x28c635];return _0x82cbae;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xfb91('0x0'));var BPromise=require(_0xfb91('0x1'));var rs=require(_0xfb91('0x2'));var fs=require('fs');var Redis=require(_0xfb91('0x3'));var db=require(_0xfb91('0x4'))['db'];var utils=require(_0xfb91('0x5'));var logger=require(_0xfb91('0x6'))(_0xfb91('0x7'));var config=require('../../config/environment');var jayson=require(_0xfb91('0x8'));var client=jayson['client'][_0xfb91('0x9')]({'port':0x232c});config[_0xfb91('0xa')]=_['defaults'](config[_0xfb91('0xa')],{'host':_0xfb91('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./mailAccount.socket')['register'](socket);function respondWithRpcPromise(_0x26afb1,_0x359865,_0x1b89d0){return new BPromise(function(_0x5b1f07,_0x158d7c){return client[_0xfb91('0xc')](_0x26afb1,_0x1b89d0)['then'](function(_0x42dcc3){logger[_0xfb91('0xd')](_0xfb91('0xe'),_0x359865,_0xfb91('0xf'));logger['debug'](_0xfb91('0x10'),_0x359865,'request\x20sent',JSON['stringify'](_0x42dcc3));if(_0x42dcc3[_0xfb91('0x11')]){if(_0x42dcc3[_0xfb91('0x11')][_0xfb91('0x12')]===0x1f4){logger[_0xfb91('0x11')](_0xfb91('0xe'),_0x359865,_0x42dcc3[_0xfb91('0x11')][_0xfb91('0x13')]);return _0x158d7c(_0x42dcc3[_0xfb91('0x11')][_0xfb91('0x13')]);}logger[_0xfb91('0x11')](_0xfb91('0xe'),_0x359865,_0x42dcc3[_0xfb91('0x11')]['message']);return _0x5b1f07(_0x42dcc3['error'][_0xfb91('0x13')]);}else{logger[_0xfb91('0xd')]('MailAccount,\x20%s,\x20%s',_0x359865,_0xfb91('0xf'));_0x5b1f07(_0x42dcc3['result'][_0xfb91('0x13')]);}})[_0xfb91('0x14')](function(_0x1e7b51){logger[_0xfb91('0x11')](_0xfb91('0xe'),_0x359865,_0x1e7b51);_0x158d7c(_0x1e7b51);});});}exports[_0xfb91('0x15')]=function(_0x18ece6){var _0x181c75=this;return new Promise(function(_0x4e0838,_0x6ee429){return db[_0xfb91('0x16')][_0xfb91('0x17')]({'raw':_0x18ece6[_0xfb91('0x18')]?_0x18ece6[_0xfb91('0x18')][_0xfb91('0x19')]===undefined?!![]:![]:!![],'where':_0x18ece6[_0xfb91('0x18')]?_0x18ece6['options']['where']||null:null,'attributes':_0x18ece6[_0xfb91('0x18')]?_0x18ece6[_0xfb91('0x18')][_0xfb91('0x1a')]||null:null,'limit':_0x18ece6[_0xfb91('0x18')]?_0x18ece6[_0xfb91('0x18')]['limit']||null:null,'include':_0x18ece6[_0xfb91('0x18')]?_0x18ece6[_0xfb91('0x18')]['include']?_[_0xfb91('0x1b')](_0x18ece6[_0xfb91('0x18')][_0xfb91('0x1c')],function(_0x115fc3){return{'model':db[_0x115fc3[_0xfb91('0x1d')]],'as':_0x115fc3['as'],'attributes':_0x115fc3[_0xfb91('0x1a')],'include':_0x115fc3['include']?_['map'](_0x115fc3[_0xfb91('0x1c')],function(_0x5ac142){return{'model':db[_0x5ac142['model']],'as':_0x5ac142['as'],'attributes':_0x5ac142[_0xfb91('0x1a')],'include':_0x5ac142['include']?_[_0xfb91('0x1b')](_0x5ac142[_0xfb91('0x1c')],function(_0x3f33eb){return{'model':db[_0x3f33eb['model']],'as':_0x3f33eb['as'],'attributes':_0x3f33eb[_0xfb91('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xfb91('0x1e')](function(_0x581a30){logger['info'](_0xfb91('0x15'),_0x18ece6);logger[_0xfb91('0x1f')](_0xfb91('0x15'),_0x18ece6,JSON[_0xfb91('0x20')](_0x581a30));_0x4e0838(_0x581a30);})[_0xfb91('0x14')](function(_0x18b3db){logger[_0xfb91('0x11')]('GetMailAccount',_0x18b3db[_0xfb91('0x13')],_0x18ece6);_0x6ee429(_0x181c75[_0xfb91('0x11')](0x1f4,_0x18b3db[_0xfb91('0x13')]));});});};exports[_0xfb91('0x21')]=function(_0xa176e9){var _0x168cab=this;return new Promise(function(_0x498846,_0x11afc0){return db[_0xfb91('0x16')][_0xfb91('0x22')]({'raw':_0xa176e9['options']?_0xa176e9[_0xfb91('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0xa176e9['options']?_0xa176e9[_0xfb91('0x18')]['where']||null:null,'attributes':_0xa176e9[_0xfb91('0x18')]?_0xa176e9['options']['attributes']||null:null,'include':_0xa176e9[_0xfb91('0x18')]?_0xa176e9['options'][_0xfb91('0x1c')]?_[_0xfb91('0x1b')](_0xa176e9[_0xfb91('0x18')][_0xfb91('0x1c')],function(_0x37d33e){return{'model':db[_0x37d33e[_0xfb91('0x1d')]],'as':_0x37d33e['as'],'attributes':_0x37d33e[_0xfb91('0x1a')],'include':_0x37d33e['include']?_['map'](_0x37d33e['include'],function(_0x110a75){return{'model':db[_0x110a75[_0xfb91('0x1d')]],'as':_0x110a75['as'],'attributes':_0x110a75[_0xfb91('0x1a')],'include':_0x110a75[_0xfb91('0x1c')]?_['map'](_0x110a75[_0xfb91('0x1c')],function(_0x257f37){return{'model':db[_0x257f37['model']],'as':_0x257f37['as'],'attributes':_0x257f37['attributes']};}):[]};}):[]};}):[]:[]})[_0xfb91('0x1e')](function(_0x3f591a){logger[_0xfb91('0xd')](_0xfb91('0x21'),_0xa176e9);logger[_0xfb91('0x1f')]('ShowMailAccount',_0xa176e9,JSON[_0xfb91('0x20')](_0x3f591a));_0x498846(_0x3f591a);})[_0xfb91('0x14')](function(_0x4c6aea){logger[_0xfb91('0x11')](_0xfb91('0x21'),_0x4c6aea['message'],_0xa176e9);_0x11afc0(_0x168cab['error'](0x1f4,_0x4c6aea['message']));});});};exports[_0xfb91('0x23')]=function(_0x1fbcd2){var _0x226586=this;return new Promise(function(_0x21e05b,_0x14eae9){var _0x6c73c2={'body':_0x1fbcd2[_0xfb91('0x24')],'channel':_0xfb91('0x25')};var _0x1732c8=_['difference'](_[_0xfb91('0x26')](db[_0xfb91('0x27')][_0xfb91('0x28')]),[_0xfb91('0x29'),_0xfb91('0x2a'),_0xfb91('0x2b'),'ListId']);var _0x58d9ff=![];if(_0x1fbcd2['body']['id']){delete _0x1fbcd2['body']['id'];}if(_[_0xfb91('0x2c')](_0x1fbcd2['body'][_0xfb91('0x2d')])){return _0x14eae9(_0x226586[_0xfb91('0x11')](0x1f4,_0xfb91('0x2e')));}if(_[_0xfb91('0x2c')](_0x1fbcd2['body'][_0xfb91('0x24')])||_0x1fbcd2[_0xfb91('0x24')]['body']===''){return _0x14eae9(_0x226586['error'](0x1f4,_0xfb91('0x2f')));}if(_[_0xfb91('0x2c')](_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x30')])){return _0x14eae9(_0x226586[_0xfb91('0x11')](0x1f4,_0xfb91('0x31')+_0x1732c8));}if(!_[_0xfb91('0x32')](_0x1732c8,_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x30')])){return _0x14eae9(_0x226586[_0xfb91('0x11')](0x1f4,_0xfb91('0x33')+_0x1732c8));}var _0x53c863={};_0x53c863[_0x1fbcd2['body'][_0xfb91('0x30')]]=_0x1fbcd2[_0xfb91('0x24')]['from'];return db[_0xfb91('0x16')][_0xfb91('0x22')]({'where':{'id':_0x1fbcd2[_0xfb91('0x34')]['id']},'include':[{'model':db[_0xfb91('0x35')],'as':_0xfb91('0x36'),'include':[{'model':db['CmContact'],'as':_0xfb91('0x37'),'where':_0x53c863,'limit':0x1,'order':[[_0xfb91('0x2a'),_0xfb91('0x38')]]}]},{'model':db['MailApplication'],'as':_0xfb91('0x39')},{'model':db[_0xfb91('0x3a')],'as':'Smtp'}]})[_0xfb91('0x1e')](function(_0x5af503){if(_0x5af503&&_0x5af503['List']){var _0x51d7f8=_0x5af503[_0xfb91('0x3b')]({'plain':!![]});_0x6c73c2[_0xfb91('0x34')]=_[_0xfb91('0x3c')](_0x51d7f8,[_0xfb91('0x39'),_0xfb91('0x36')]);_0x6c73c2['applications']=_0x51d7f8[_0xfb91('0x39')];_0x6c73c2[_0xfb91('0x3d')]=_0x51d7f8['List'];_0x6c73c2[_0xfb91('0x3e')]=_[_0xfb91('0x3f')](_0x6c73c2['applications'],['priority'],['asc']);if(_0x6c73c2[_0xfb91('0x34')]&&_0x6c73c2[_0xfb91('0x34')][_0xfb91('0x40')]){_0x6c73c2['applications'][_0xfb91('0x41')]({'id':0x0,'priority':_0x6c73c2[_0xfb91('0x3e')]['length']+0x1,'app':_0xfb91('0x42'),'appdata':_0xfb91('0x40'),'interval':'*,*,*,*'});}if(_0x6c73c2[_0xfb91('0x34')]['Applications']){delete _0x6c73c2[_0xfb91('0x34')][_0xfb91('0x39')];}if(_0x6c73c2[_0xfb91('0x34')][_0xfb91('0x36')]){delete _0x6c73c2['account'][_0xfb91('0x36')];}if(_0x51d7f8['List'][_0xfb91('0x37')][_0xfb91('0x43')]){return _0x51d7f8[_0xfb91('0x36')][_0xfb91('0x37')][0x0];}var _0x4bccc7=_[_0xfb91('0x44')](_0x1fbcd2[_0xfb91('0x24')],{'firstName':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x2d')],'ListId':_0x51d7f8[_0xfb91('0x45')]});_0x4bccc7[_0x1fbcd2['body']['mapKey']]=_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x2d')];return db[_0xfb91('0x27')][_0xfb91('0x46')](_0x4bccc7);}else{throw new Error('List\x20not\x20found');}})[_0xfb91('0x1e')](function(_0x2ae7c1){_0x6c73c2[_0xfb91('0x47')]=_0x2ae7c1;if(_0x2ae7c1){if(!_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')]['messageId']){_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')]['messageId']=rs[_0xfb91('0x48')]()+'\x20'+_0x1fbcd2[_0xfb91('0x24')]['message'][_0xfb91('0x2d')];}var _0x484bd8={'ContactId':_0x2ae7c1['id'],'MailAccountId':_0x1fbcd2[_0xfb91('0x34')]['id'],'inReplyTo':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')][_0xfb91('0x49')],'to':_0x1fbcd2[_0xfb91('0x24')]['message'][_0xfb91('0x2d')],'cc':_0x1fbcd2[_0xfb91('0x24')]['message']['cc'],'subject':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')][_0xfb91('0x4a')],'attach':_0x1fbcd2['body'][_0xfb91('0x13')][_0xfb91('0x4b')],'lastMsgAt':moment()['format'](_0xfb91('0x4c')),'lastMsgDirection':'in'};return db['MailInteraction'][_0xfb91('0x22')]({'where':{'closed':![],'MailAccountId':_0x1fbcd2[_0xfb91('0x34')]['id']},'include':[{'model':db[_0xfb91('0x4d')],'as':_0xfb91('0x4e'),'attributes':['messageId'],'where':{'messageId':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')][_0xfb91('0x4f')]}}]})[_0xfb91('0x1e')](function(_0x4074bb){if(_0x4074bb){return[_0x4074bb,![]];}return db[_0xfb91('0x50')][_0xfb91('0x46')](_0x484bd8)[_0xfb91('0x1e')](function(_0x3d7d46){return[_0x3d7d46,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xfb91('0x51')](function(_0x303875,_0x19e62a){if(_0x303875){_0x58d9ff=_0x19e62a;if(!_0x19e62a){return _0x303875[_0xfb91('0x52')]({'inReplyTo':_0x1fbcd2['body'][_0xfb91('0x13')][_0xfb91('0x49')],'to':_0x1fbcd2[_0xfb91('0x24')]['message'][_0xfb91('0x2d')],'cc':_0x1fbcd2['body']['message']['cc'],'subject':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')][_0xfb91('0x4a')],'attach':_0x303875['attach']?_0x303875['attach']:_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')]['attach'],'substatus':null,'substatusAt':moment()['format'](_0xfb91('0x4c')),'lastMsgAt':moment()[_0xfb91('0x53')](_0xfb91('0x4c')),'lastMsgDirection':'in'});}else{return _0x303875;}}})[_0xfb91('0x1e')](function(_0x3282b){_0x6c73c2[_0xfb91('0x54')]=_0x3282b[_0xfb91('0x3b')]({'plain':!![]});_0x6c73c2[_0xfb91('0x54')][_0xfb91('0x55')]=_0x58d9ff;return db[_0xfb91('0x4d')][_0xfb91('0x46')]({'body':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x24')],'MailAccountId':_0x1fbcd2['account']['id'],'MailInteractionId':_0x3282b['id'],'direction':'in','ContactId':_0x6c73c2[_0xfb91('0x47')]['id'],'messageId':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')][_0xfb91('0x49')],'from':_0x1fbcd2[_0xfb91('0x24')]['message'][_0xfb91('0x2d')],'to':_0x1fbcd2[_0xfb91('0x24')]['message']['to'],'cc':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')]['cc'],'subject':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')][_0xfb91('0x4a')],'attach':_0x1fbcd2['body'][_0xfb91('0x13')]['attach'],'Attachments':_0x1fbcd2[_0xfb91('0x24')]['message']['attachments'],'originTo':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')][_0xfb91('0x56')],'originCc':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')]['originCc'],'bcc':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')][_0xfb91('0x57')],'ChatWebsiteId':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')][_0xfb91('0x58')]||null,'originChannel':_0x1fbcd2[_0xfb91('0x24')][_0xfb91('0x13')]['originChannel']||_0xfb91('0x59'),'ChatOfflineMessageId':_0x1fbcd2['body'][_0xfb91('0x13')]['ChatOfflineMessageId']||null},{'include':[{'model':db['Attachment'],'as':_0xfb91('0x5a')}]});})[_0xfb91('0x1e')](function(_0x2b4d53){_0x6c73c2[_0xfb91('0x13')]=_0x2b4d53;if(_0x6c73c2['interaction'][_0xfb91('0x5b')]){return db[_0xfb91('0x5c')]['find']({'attributes':['id',_0xfb91('0x5d')],'where':{'id':_0x6c73c2[_0xfb91('0x54')][_0xfb91('0x5b')]}})['then'](function(_0x330513){if(_0x330513){_0x6c73c2[_0xfb91('0x3e')][_0xfb91('0x5e')]({'id':0x0,'priority':0x0,'app':_0xfb91('0x5f'),'appdata':_0x330513[_0xfb91('0x5d')]+','+(_0x6c73c2[_0xfb91('0x34')][_0xfb91('0x60')]||0xa),'interval':_0xfb91('0x61')});}return respondWithRpcPromise(_0xfb91('0x62'),_0xfb91('0x63'),_0x6c73c2);});}return respondWithRpcPromise(_0xfb91('0x62'),_0xfb91('0x63'),_0x6c73c2);})[_0xfb91('0x1e')](function(_0x102690){_0x21e05b(_0x102690);})[_0xfb91('0x14')](function(_0x2c1644){_0x14eae9(_0x226586[_0xfb91('0x11')](0x1f4,_0x2c1644[_0xfb91('0x13')]));});});};