Built motion from commit (unavailable).|2.5.20
[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 _0xf296=['account','CmList','CmContact','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','List','get','omit','list','applications','priority','asc','autoclose','push','*,*,*,*','length','defaults','create','List\x20not\x20found','contact','messageId','generate','subject','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','Messages','inReplyTo','MailInteraction','Contact\x20not\x20found','spread','attach','interaction','created','attachments','originCc','bcc','Attachment','Attachments','name','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','bluebird','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','./mailAccount.socket','register','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','MailAccount','findAll','raw','options','attributes','limit','include','map','model','debug','GetMailAccount','ShowMailAccount','find','where','NotifyMailAccount','body','difference','rawAttributes','updatedAt','CompanyId','ListId','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'];(function(_0x49b935,_0x575d25){var _0x1ef138=function(_0x348a25){while(--_0x348a25){_0x49b935['push'](_0x49b935['shift']());}};_0x1ef138(++_0x575d25);}(_0xf296,0x94));var _0x6f29=function(_0x34365b,_0x418c5a){_0x34365b=_0x34365b-0x0;var _0x12d73a=_0xf296[_0x34365b];return _0x12d73a;};'use strict';var _=require(_0x6f29('0x0'));var util=require(_0x6f29('0x1'));var moment=require('moment');var BPromise=require(_0x6f29('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6f29('0x3'))['db'];var utils=require(_0x6f29('0x4'));var logger=require('../../config/logger')(_0x6f29('0x5'));var config=require(_0x6f29('0x6'));var jayson=require(_0x6f29('0x7'));var client=jayson['client'][_0x6f29('0x8')]({'port':0x232c});config[_0x6f29('0x9')]=_['defaults'](config[_0x6f29('0x9')],{'host':_0x6f29('0xa'),'port':0x18eb});var socket=require(_0x6f29('0xb'))(new Redis(config[_0x6f29('0x9')]));require(_0x6f29('0xc'))[_0x6f29('0xd')](socket);function respondWithRpcPromise(_0x42773f,_0x533e59,_0x53db5d){return new BPromise(function(_0xbf45fd,_0x5cb530){return client['request'](_0x42773f,_0x53db5d)[_0x6f29('0xe')](function(_0x5e24b4){logger[_0x6f29('0xf')](_0x6f29('0x10'),_0x533e59,_0x6f29('0x11'));logger['debug'](_0x6f29('0x12'),_0x533e59,_0x6f29('0x11'),JSON[_0x6f29('0x13')](_0x5e24b4));if(_0x5e24b4[_0x6f29('0x14')]){if(_0x5e24b4[_0x6f29('0x14')]['code']===0x1f4){logger[_0x6f29('0x14')](_0x6f29('0x10'),_0x533e59,_0x5e24b4[_0x6f29('0x14')]['message']);return _0x5cb530(_0x5e24b4[_0x6f29('0x14')]['message']);}logger[_0x6f29('0x14')](_0x6f29('0x10'),_0x533e59,_0x5e24b4[_0x6f29('0x14')][_0x6f29('0x15')]);return _0xbf45fd(_0x5e24b4['error']['message']);}else{logger[_0x6f29('0xf')](_0x6f29('0x10'),_0x533e59,'request\x20sent');_0xbf45fd(_0x5e24b4['result'][_0x6f29('0x15')]);}})[_0x6f29('0x16')](function(_0x324342){logger[_0x6f29('0x14')](_0x6f29('0x10'),_0x533e59,_0x324342);_0x5cb530(_0x324342);});});}exports['GetMailAccount']=function(_0xc148d9){var _0x281947=this;return new Promise(function(_0x1ef4bb,_0x33afa3){return db[_0x6f29('0x17')][_0x6f29('0x18')]({'raw':_0xc148d9['options']?_0xc148d9['options'][_0x6f29('0x19')]===undefined?!![]:![]:!![],'where':_0xc148d9[_0x6f29('0x1a')]?_0xc148d9[_0x6f29('0x1a')]['where']||null:null,'attributes':_0xc148d9[_0x6f29('0x1a')]?_0xc148d9[_0x6f29('0x1a')][_0x6f29('0x1b')]||null:null,'limit':_0xc148d9[_0x6f29('0x1a')]?_0xc148d9[_0x6f29('0x1a')][_0x6f29('0x1c')]||null:null,'include':_0xc148d9['options']?_0xc148d9[_0x6f29('0x1a')][_0x6f29('0x1d')]?_[_0x6f29('0x1e')](_0xc148d9['options']['include'],function(_0x4fa5f9){return{'model':db[_0x4fa5f9[_0x6f29('0x1f')]],'as':_0x4fa5f9['as'],'attributes':_0x4fa5f9[_0x6f29('0x1b')],'include':_0x4fa5f9[_0x6f29('0x1d')]?_[_0x6f29('0x1e')](_0x4fa5f9[_0x6f29('0x1d')],function(_0x445de9){return{'model':db[_0x445de9[_0x6f29('0x1f')]],'as':_0x445de9['as'],'attributes':_0x445de9[_0x6f29('0x1b')],'include':_0x445de9['include']?_[_0x6f29('0x1e')](_0x445de9[_0x6f29('0x1d')],function(_0x4ceaea){return{'model':db[_0x4ceaea[_0x6f29('0x1f')]],'as':_0x4ceaea['as'],'attributes':_0x4ceaea[_0x6f29('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x6f29('0xe')](function(_0x305367){logger[_0x6f29('0xf')]('GetMailAccount',_0xc148d9);logger[_0x6f29('0x20')](_0x6f29('0x21'),_0xc148d9,JSON['stringify'](_0x305367));_0x1ef4bb(_0x305367);})[_0x6f29('0x16')](function(_0xb321a0){logger['error'](_0x6f29('0x21'),_0xb321a0['message'],_0xc148d9);_0x33afa3(_0x281947[_0x6f29('0x14')](0x1f4,_0xb321a0[_0x6f29('0x15')]));});});};exports[_0x6f29('0x22')]=function(_0x52ebd3){var _0x74f027=this;return new Promise(function(_0x220ddf,_0x1837b9){return db['MailAccount'][_0x6f29('0x23')]({'raw':_0x52ebd3[_0x6f29('0x1a')]?_0x52ebd3['options'][_0x6f29('0x19')]===undefined?!![]:![]:!![],'where':_0x52ebd3[_0x6f29('0x1a')]?_0x52ebd3[_0x6f29('0x1a')][_0x6f29('0x24')]||null:null,'attributes':_0x52ebd3[_0x6f29('0x1a')]?_0x52ebd3[_0x6f29('0x1a')][_0x6f29('0x1b')]||null:null,'include':_0x52ebd3[_0x6f29('0x1a')]?_0x52ebd3[_0x6f29('0x1a')][_0x6f29('0x1d')]?_['map'](_0x52ebd3['options'][_0x6f29('0x1d')],function(_0x5c1842){return{'model':db[_0x5c1842[_0x6f29('0x1f')]],'as':_0x5c1842['as'],'attributes':_0x5c1842[_0x6f29('0x1b')],'include':_0x5c1842[_0x6f29('0x1d')]?_['map'](_0x5c1842[_0x6f29('0x1d')],function(_0x16321b){return{'model':db[_0x16321b['model']],'as':_0x16321b['as'],'attributes':_0x16321b[_0x6f29('0x1b')],'include':_0x16321b['include']?_[_0x6f29('0x1e')](_0x16321b[_0x6f29('0x1d')],function(_0x371649){return{'model':db[_0x371649['model']],'as':_0x371649['as'],'attributes':_0x371649[_0x6f29('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x6f29('0xe')](function(_0x20514a){logger[_0x6f29('0xf')](_0x6f29('0x22'),_0x52ebd3);logger[_0x6f29('0x20')](_0x6f29('0x22'),_0x52ebd3,JSON[_0x6f29('0x13')](_0x20514a));_0x220ddf(_0x20514a);})[_0x6f29('0x16')](function(_0x3d86af){logger[_0x6f29('0x14')](_0x6f29('0x22'),_0x3d86af[_0x6f29('0x15')],_0x52ebd3);_0x1837b9(_0x74f027['error'](0x1f4,_0x3d86af['message']));});});};exports[_0x6f29('0x25')]=function(_0x319ed2){var _0x3b23d4=this;return new Promise(function(_0x406702,_0x3eb0ba){var _0x10d028={'body':_0x319ed2[_0x6f29('0x26')],'channel':'mail'};var _0x25d58e=_[_0x6f29('0x27')](_['keys'](db['CmContact'][_0x6f29('0x28')]),['createdAt',_0x6f29('0x29'),_0x6f29('0x2a'),_0x6f29('0x2b')]);var _0x386aa2=![];if(_0x319ed2['body']['id']){delete _0x319ed2['body']['id'];}if(_[_0x6f29('0x2c')](_0x319ed2[_0x6f29('0x26')][_0x6f29('0x2d')])){return _0x3eb0ba(_0x3b23d4[_0x6f29('0x14')](0x1f4,_0x6f29('0x2e')));}if(_[_0x6f29('0x2c')](_0x319ed2['body'][_0x6f29('0x26')])||_0x319ed2[_0x6f29('0x26')]['body']===''){return _0x3eb0ba(_0x3b23d4[_0x6f29('0x14')](0x1f4,_0x6f29('0x2f')));}if(_[_0x6f29('0x2c')](_0x319ed2[_0x6f29('0x26')][_0x6f29('0x30')])){return _0x3eb0ba(_0x3b23d4[_0x6f29('0x14')](0x1f4,_0x6f29('0x31')+_0x25d58e));}if(!_[_0x6f29('0x32')](_0x25d58e,_0x319ed2[_0x6f29('0x26')][_0x6f29('0x30')])){return _0x3eb0ba(_0x3b23d4[_0x6f29('0x14')](0x1f4,_0x6f29('0x33')+_0x25d58e));}var _0x4331ee={};_0x4331ee[_0x319ed2[_0x6f29('0x26')]['mapKey']]=_0x319ed2[_0x6f29('0x26')][_0x6f29('0x2d')];return db['MailAccount'][_0x6f29('0x23')]({'where':{'id':_0x319ed2[_0x6f29('0x34')]['id']},'include':[{'model':db[_0x6f29('0x35')],'as':'List','include':[{'model':db[_0x6f29('0x36')],'as':_0x6f29('0x37'),'where':_0x4331ee,'limit':0x1,'order':[['updatedAt',_0x6f29('0x38')]]}]},{'model':db[_0x6f29('0x39')],'as':_0x6f29('0x3a')},{'model':db[_0x6f29('0x3b')],'as':_0x6f29('0x3c')}]})[_0x6f29('0xe')](function(_0x118f6e){if(_0x118f6e&&_0x118f6e[_0x6f29('0x3d')]){var _0x5369f7=_0x118f6e[_0x6f29('0x3e')]({'plain':!![]});_0x10d028[_0x6f29('0x34')]=_[_0x6f29('0x3f')](_0x5369f7,[_0x6f29('0x3a'),_0x6f29('0x3d')]);_0x10d028['applications']=_0x5369f7[_0x6f29('0x3a')];_0x10d028[_0x6f29('0x40')]=_0x5369f7[_0x6f29('0x3d')];_0x10d028[_0x6f29('0x41')]=_['orderBy'](_0x10d028[_0x6f29('0x41')],[_0x6f29('0x42')],[_0x6f29('0x43')]);if(_0x10d028[_0x6f29('0x34')]&&_0x10d028['account'][_0x6f29('0x44')]){_0x10d028[_0x6f29('0x41')][_0x6f29('0x45')]({'id':0x0,'priority':_0x10d028[_0x6f29('0x41')]['length']+0x1,'app':'close','appdata':_0x6f29('0x44'),'interval':_0x6f29('0x46')});}if(_0x10d028[_0x6f29('0x34')][_0x6f29('0x3a')]){delete _0x10d028[_0x6f29('0x34')][_0x6f29('0x3a')];}if(_0x10d028[_0x6f29('0x34')][_0x6f29('0x3d')]){delete _0x10d028[_0x6f29('0x34')][_0x6f29('0x3d')];}if(_0x5369f7['List'][_0x6f29('0x37')][_0x6f29('0x47')]){return _0x5369f7['List']['Contacts'][0x0];}var _0x1f57fe=_[_0x6f29('0x48')](_0x319ed2['body'],{'firstName':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x2d')],'ListId':_0x5369f7[_0x6f29('0x2b')]});_0x1f57fe[_0x319ed2['body'][_0x6f29('0x30')]]=_0x319ed2[_0x6f29('0x26')][_0x6f29('0x2d')];return db[_0x6f29('0x36')][_0x6f29('0x49')](_0x1f57fe);}else{throw new Error(_0x6f29('0x4a'));}})['then'](function(_0x4e945f){_0x10d028[_0x6f29('0x4b')]=_0x4e945f;if(_0x4e945f){if(!_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')]['messageId']){_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x4c')]=rs[_0x6f29('0x4d')]()+'\x20'+_0x319ed2['body'][_0x6f29('0x15')][_0x6f29('0x2d')];}var _0x56f730={'ContactId':_0x4e945f['id'],'MailAccountId':_0x319ed2[_0x6f29('0x34')]['id'],'inReplyTo':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x4c')],'to':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x2d')],'cc':_0x319ed2['body'][_0x6f29('0x15')]['cc'],'subject':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x4e')],'attach':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')]['attach'],'lastMsgAt':moment()[_0x6f29('0x4f')](_0x6f29('0x50')),'lastMsgDirection':'in','lastMsgBody':_0x319ed2[_0x6f29('0x26')]['body']};return db['MailInteraction'][_0x6f29('0x23')]({'where':{'closed':![],'MailAccountId':_0x319ed2[_0x6f29('0x34')]['id']},'include':[{'model':db[_0x6f29('0x51')],'as':_0x6f29('0x52'),'attributes':[_0x6f29('0x4c')],'where':{'messageId':_0x319ed2['body'][_0x6f29('0x15')][_0x6f29('0x53')]}}]})[_0x6f29('0xe')](function(_0x4b97f5){if(_0x4b97f5){return[_0x4b97f5,![]];}return db[_0x6f29('0x54')][_0x6f29('0x49')](_0x56f730)[_0x6f29('0xe')](function(_0xbcdb17){return[_0xbcdb17,!![]];});});}else{throw new Error(_0x6f29('0x55'));}})[_0x6f29('0x56')](function(_0x969fcd,_0x39a59a){if(_0x969fcd){_0x386aa2=_0x39a59a;if(!_0x39a59a){return _0x969fcd['update']({'inReplyTo':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x4c')],'to':_0x319ed2['body']['message']['from'],'cc':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')]['cc'],'subject':_0x319ed2[_0x6f29('0x26')]['message'][_0x6f29('0x4e')],'attach':_0x969fcd[_0x6f29('0x57')]?_0x969fcd[_0x6f29('0x57')]:_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x57')],'substatus':null,'substatusAt':moment()[_0x6f29('0x4f')](_0x6f29('0x50')),'lastMsgAt':moment()[_0x6f29('0x4f')](_0x6f29('0x50')),'lastMsgDirection':'in','lastMsgBody':_0x319ed2['body'][_0x6f29('0x26')]});}else{return _0x969fcd;}}})['then'](function(_0x2b2766){_0x10d028[_0x6f29('0x58')]=_0x2b2766[_0x6f29('0x3e')]({'plain':!![]});_0x10d028['interaction'][_0x6f29('0x59')]=_0x386aa2;return db[_0x6f29('0x51')][_0x6f29('0x49')]({'body':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x26')],'MailAccountId':_0x319ed2['account']['id'],'MailInteractionId':_0x2b2766['id'],'direction':'in','ContactId':_0x10d028[_0x6f29('0x4b')]['id'],'messageId':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x4c')],'from':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x2d')],'to':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')]['to'],'cc':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')]['cc'],'subject':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x4e')],'attach':_0x319ed2['body'][_0x6f29('0x15')][_0x6f29('0x57')],'Attachments':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x5a')],'originTo':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')]['originTo'],'originCc':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x5b')],'bcc':_0x319ed2[_0x6f29('0x26')][_0x6f29('0x15')][_0x6f29('0x5c')]},{'include':[{'model':db[_0x6f29('0x5d')],'as':_0x6f29('0x5e')}]});})[_0x6f29('0xe')](function(_0xf1d0e8){_0x10d028[_0x6f29('0x15')]=_0xf1d0e8;if(_0x10d028[_0x6f29('0x58')]['UserId']){return db['User']['find']({'attributes':['id',_0x6f29('0x5f')],'where':{'id':_0x10d028[_0x6f29('0x58')]['UserId']}})[_0x6f29('0xe')](function(_0x1496cb){if(_0x1496cb){_0x10d028['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0x6f29('0x60'),'appdata':_0x1496cb[_0x6f29('0x5f')]+','+(_0x10d028[_0x6f29('0x34')][_0x6f29('0x61')]||0xa),'interval':_0x6f29('0x46')});}return respondWithRpcPromise(_0x6f29('0x62'),_0x6f29('0x63'),_0x10d028);});}return respondWithRpcPromise(_0x6f29('0x62'),_0x6f29('0x63'),_0x10d028);})[_0x6f29('0xe')](function(_0x235a3d){_0x406702(_0x235a3d);})[_0x6f29('0x16')](function(_0x195c93){_0x3eb0ba(_0x3b23d4[_0x6f29('0x14')](0x1f4,_0x195c93[_0x6f29('0x15')]));});});};