Built motion from commit (unavailable).|2.3.4
[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 _0x129c=['close','*,*,*,*','Contacts','length','ListId','List\x20not\x20found','contact','messageId','generate','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','Messages','inReplyTo','MailInteraction','update','attach','interaction','created','create','subject','attachments','originTo','originCc','bcc','Attachments','UserId','name','agent','waitForTheAssignedAgent','startRouting','Start','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','redis','localhost','./mailAccount.socket','info','request\x20sent','debug','error','code','MailAccount,\x20%s,\x20%s','message','result','catch','GetMailAccount','MailAccount','options','raw','where','attributes','limit','map','model','include','then','ShowMailAccount','NotifyMailAccount','body','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','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','find','account','CmList','DESC','MailApplication','Applications','Smtp','List','get','applications','orderBy','priority','autoclose','push'];(function(_0x88cd7b,_0x4c884c){var _0x56fcc8=function(_0x513b3d){while(--_0x513b3d){_0x88cd7b['push'](_0x88cd7b['shift']());}};_0x56fcc8(++_0x4c884c);}(_0x129c,0xe4));var _0xc129=function(_0x546afa,_0x2f850d){_0x546afa=_0x546afa-0x0;var _0x2aae2e=_0x129c[_0x546afa];return _0x2aae2e;};'use strict';var _=require(_0xc129('0x0'));var util=require(_0xc129('0x1'));var moment=require(_0xc129('0x2'));var BPromise=require('bluebird');var rs=require(_0xc129('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc129('0x4'))['db'];var utils=require(_0xc129('0x5'));var logger=require(_0xc129('0x6'))(_0xc129('0x7'));var config=require('../../config/environment');var jayson=require(_0xc129('0x8'));var client=jayson[_0xc129('0x9')][_0xc129('0xa')]({'port':0x232c});config['redis']=_[_0xc129('0xb')](config[_0xc129('0xc')],{'host':_0xc129('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xc129('0xe'))['register'](socket);function respondWithRpcPromise(_0x2e7c3d,_0x383390,_0x19f582){return new BPromise(function(_0x4069a1,_0x5ecb11){return client['request'](_0x2e7c3d,_0x19f582)['then'](function(_0x344440){logger[_0xc129('0xf')]('MailAccount,\x20%s,\x20%s',_0x383390,_0xc129('0x10'));logger[_0xc129('0x11')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x383390,_0xc129('0x10'),JSON['stringify'](_0x344440));if(_0x344440[_0xc129('0x12')]){if(_0x344440['error'][_0xc129('0x13')]===0x1f4){logger[_0xc129('0x12')](_0xc129('0x14'),_0x383390,_0x344440['error'][_0xc129('0x15')]);return _0x5ecb11(_0x344440[_0xc129('0x12')][_0xc129('0x15')]);}logger[_0xc129('0x12')]('MailAccount,\x20%s,\x20%s',_0x383390,_0x344440[_0xc129('0x12')][_0xc129('0x15')]);return _0x4069a1(_0x344440[_0xc129('0x12')]['message']);}else{logger['info']('MailAccount,\x20%s,\x20%s',_0x383390,_0xc129('0x10'));_0x4069a1(_0x344440[_0xc129('0x16')][_0xc129('0x15')]);}})[_0xc129('0x17')](function(_0x162a60){logger[_0xc129('0x12')](_0xc129('0x14'),_0x383390,_0x162a60);_0x5ecb11(_0x162a60);});});}exports[_0xc129('0x18')]=function(_0x2bf8ed){var _0x16d16c=this;return new Promise(function(_0x56e3ac,_0x328050){return db[_0xc129('0x19')]['findAll']({'raw':_0x2bf8ed[_0xc129('0x1a')]?_0x2bf8ed[_0xc129('0x1a')][_0xc129('0x1b')]===undefined?!![]:![]:!![],'where':_0x2bf8ed[_0xc129('0x1a')]?_0x2bf8ed[_0xc129('0x1a')][_0xc129('0x1c')]||null:null,'attributes':_0x2bf8ed[_0xc129('0x1a')]?_0x2bf8ed[_0xc129('0x1a')][_0xc129('0x1d')]||null:null,'limit':_0x2bf8ed[_0xc129('0x1a')]?_0x2bf8ed[_0xc129('0x1a')][_0xc129('0x1e')]||null:null,'include':_0x2bf8ed[_0xc129('0x1a')]?_0x2bf8ed['options']['include']?_[_0xc129('0x1f')](_0x2bf8ed[_0xc129('0x1a')]['include'],function(_0x528607){return{'model':db[_0x528607[_0xc129('0x20')]],'as':_0x528607['as'],'attributes':_0x528607[_0xc129('0x1d')],'include':_0x528607['include']?_[_0xc129('0x1f')](_0x528607['include'],function(_0x1125a3){return{'model':db[_0x1125a3[_0xc129('0x20')]],'as':_0x1125a3['as'],'attributes':_0x1125a3[_0xc129('0x1d')],'include':_0x1125a3['include']?_['map'](_0x1125a3[_0xc129('0x21')],function(_0x46f119){return{'model':db[_0x46f119['model']],'as':_0x46f119['as'],'attributes':_0x46f119[_0xc129('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xc129('0x22')](function(_0x2a48c6){logger[_0xc129('0xf')]('GetMailAccount',_0x2bf8ed);logger[_0xc129('0x11')](_0xc129('0x18'),_0x2bf8ed,JSON['stringify'](_0x2a48c6));_0x56e3ac(_0x2a48c6);})['catch'](function(_0x46eba7){logger[_0xc129('0x12')](_0xc129('0x18'),_0x46eba7[_0xc129('0x15')],_0x2bf8ed);_0x328050(_0x16d16c[_0xc129('0x12')](0x1f4,_0x46eba7[_0xc129('0x15')]));});});};exports[_0xc129('0x23')]=function(_0x12b718){var _0x3f6f1a=this;return new Promise(function(_0x463d97,_0x4327c2){return db[_0xc129('0x19')]['find']({'raw':_0x12b718[_0xc129('0x1a')]?_0x12b718[_0xc129('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x12b718['options']?_0x12b718['options'][_0xc129('0x1c')]||null:null,'attributes':_0x12b718[_0xc129('0x1a')]?_0x12b718[_0xc129('0x1a')][_0xc129('0x1d')]||null:null,'include':_0x12b718[_0xc129('0x1a')]?_0x12b718['options'][_0xc129('0x21')]?_[_0xc129('0x1f')](_0x12b718['options'][_0xc129('0x21')],function(_0x59c416){return{'model':db[_0x59c416[_0xc129('0x20')]],'as':_0x59c416['as'],'attributes':_0x59c416[_0xc129('0x1d')],'include':_0x59c416[_0xc129('0x21')]?_[_0xc129('0x1f')](_0x59c416[_0xc129('0x21')],function(_0x520934){return{'model':db[_0x520934[_0xc129('0x20')]],'as':_0x520934['as'],'attributes':_0x520934[_0xc129('0x1d')],'include':_0x520934[_0xc129('0x21')]?_[_0xc129('0x1f')](_0x520934[_0xc129('0x21')],function(_0x44ff74){return{'model':db[_0x44ff74[_0xc129('0x20')]],'as':_0x44ff74['as'],'attributes':_0x44ff74[_0xc129('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xc129('0x22')](function(_0x5ebd78){logger['info']('ShowMailAccount',_0x12b718);logger['debug']('ShowMailAccount',_0x12b718,JSON['stringify'](_0x5ebd78));_0x463d97(_0x5ebd78);})[_0xc129('0x17')](function(_0x14cdf1){logger[_0xc129('0x12')](_0xc129('0x23'),_0x14cdf1['message'],_0x12b718);_0x4327c2(_0x3f6f1a[_0xc129('0x12')](0x1f4,_0x14cdf1[_0xc129('0x15')]));});});};exports[_0xc129('0x24')]=function(_0xa5098b){var _0x3653dc=this;return new Promise(function(_0x286563,_0xa3b1b1){var _0x1ecdd9={'body':_0xa5098b[_0xc129('0x25')],'channel':'mail'};var _0x2d7750=_[_0xc129('0x26')](_[_0xc129('0x27')](db[_0xc129('0x28')][_0xc129('0x29')]),[_0xc129('0x2a'),_0xc129('0x2b'),'CompanyId','ListId']);var _0x269d48=![];if(_0xa5098b[_0xc129('0x25')]['id']){delete _0xa5098b[_0xc129('0x25')]['id'];}if(_[_0xc129('0x2c')](_0xa5098b[_0xc129('0x25')][_0xc129('0x2d')])){return _0xa3b1b1(_0x3653dc[_0xc129('0x12')](0x1f4,_0xc129('0x2e')));}if(_['isNil'](_0xa5098b[_0xc129('0x25')][_0xc129('0x25')])||_0xa5098b[_0xc129('0x25')]['body']===''){return _0xa3b1b1(_0x3653dc[_0xc129('0x12')](0x1f4,_0xc129('0x2f')));}if(_['isNil'](_0xa5098b[_0xc129('0x25')][_0xc129('0x30')])){return _0xa3b1b1(_0x3653dc[_0xc129('0x12')](0x1f4,_0xc129('0x31')+_0x2d7750));}if(!_[_0xc129('0x32')](_0x2d7750,_0xa5098b[_0xc129('0x25')]['mapKey'])){return _0xa3b1b1(_0x3653dc['error'](0x1f4,_0xc129('0x33')+_0x2d7750));}var _0x57bf2a={};_0x57bf2a[_0xa5098b['body']['mapKey']]=_0xa5098b[_0xc129('0x25')][_0xc129('0x2d')];return db[_0xc129('0x19')][_0xc129('0x34')]({'where':{'id':_0xa5098b[_0xc129('0x35')]['id']},'include':[{'model':db[_0xc129('0x36')],'as':'List','include':[{'model':db[_0xc129('0x28')],'as':'Contacts','where':_0x57bf2a,'limit':0x1,'order':[[_0xc129('0x2b'),_0xc129('0x37')]]}]},{'model':db[_0xc129('0x38')],'as':_0xc129('0x39')},{'model':db['MailServerOut'],'as':_0xc129('0x3a')}]})[_0xc129('0x22')](function(_0x368938){if(_0x368938&&_0x368938[_0xc129('0x3b')]){var _0x41e44c=_0x368938[_0xc129('0x3c')]({'plain':!![]});_0x1ecdd9[_0xc129('0x35')]=_['omit'](_0x41e44c,[_0xc129('0x39'),_0xc129('0x3b')]);_0x1ecdd9[_0xc129('0x3d')]=_0x41e44c[_0xc129('0x39')];_0x1ecdd9['list']=_0x41e44c[_0xc129('0x3b')];_0x1ecdd9[_0xc129('0x3d')]=_[_0xc129('0x3e')](_0x1ecdd9[_0xc129('0x3d')],[_0xc129('0x3f')],['asc']);if(_0x1ecdd9['account']&&_0x1ecdd9[_0xc129('0x35')][_0xc129('0x40')]){_0x1ecdd9[_0xc129('0x3d')][_0xc129('0x41')]({'id':0x0,'priority':_0x1ecdd9[_0xc129('0x3d')]['length']+0x1,'app':_0xc129('0x42'),'appdata':_0xc129('0x40'),'interval':_0xc129('0x43')});}if(_0x1ecdd9[_0xc129('0x35')][_0xc129('0x39')]){delete _0x1ecdd9['account'][_0xc129('0x39')];}if(_0x1ecdd9[_0xc129('0x35')][_0xc129('0x3b')]){delete _0x1ecdd9[_0xc129('0x35')]['List'];}if(_0x41e44c[_0xc129('0x3b')][_0xc129('0x44')][_0xc129('0x45')]){return _0x41e44c['List'][_0xc129('0x44')][0x0];}var _0x2ad09d=_[_0xc129('0xb')](_0xa5098b[_0xc129('0x25')],{'firstName':_0xa5098b[_0xc129('0x25')][_0xc129('0x2d')],'ListId':_0x41e44c[_0xc129('0x46')]});_0x2ad09d[_0xa5098b['body'][_0xc129('0x30')]]=_0xa5098b[_0xc129('0x25')][_0xc129('0x2d')];return db[_0xc129('0x28')]['create'](_0x2ad09d);}else{throw new Error(_0xc129('0x47'));}})[_0xc129('0x22')](function(_0xc41d1f){_0x1ecdd9[_0xc129('0x48')]=_0xc41d1f;if(_0xc41d1f){if(!_0xa5098b['body'][_0xc129('0x15')][_0xc129('0x49')]){_0xa5098b['body'][_0xc129('0x15')][_0xc129('0x49')]=rs[_0xc129('0x4a')]()+'\x20'+_0xa5098b[_0xc129('0x25')][_0xc129('0x15')][_0xc129('0x2d')];}var _0x59001e={'ContactId':_0xc41d1f['id'],'MailAccountId':_0xa5098b['account']['id'],'inReplyTo':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')][_0xc129('0x49')],'to':_0xa5098b['body'][_0xc129('0x15')]['from'],'cc':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')]['cc'],'subject':_0xa5098b['body'][_0xc129('0x15')]['subject'],'attach':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')]['attach'],'lastMsgAt':moment()[_0xc129('0x4b')](_0xc129('0x4c')),'lastMsgDirection':'in','lastMsgBody':_0xa5098b[_0xc129('0x25')]['body']};return db['MailInteraction']['find']({'where':{'closed':![],'MailAccountId':_0xa5098b[_0xc129('0x35')]['id']},'include':[{'model':db[_0xc129('0x4d')],'as':_0xc129('0x4e'),'attributes':[_0xc129('0x49')],'where':{'messageId':_0xa5098b['body']['message'][_0xc129('0x4f')]}}]})[_0xc129('0x22')](function(_0x2e4cf3){if(_0x2e4cf3){return[_0x2e4cf3,![]];}return db[_0xc129('0x50')]['create'](_0x59001e)['then'](function(_0x45027c){return[_0x45027c,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x420aaf,_0x4dafb0){if(_0x420aaf){_0x269d48=_0x4dafb0;if(!_0x4dafb0){return _0x420aaf[_0xc129('0x51')]({'inReplyTo':_0xa5098b['body'][_0xc129('0x15')][_0xc129('0x49')],'to':_0xa5098b[_0xc129('0x25')]['message'][_0xc129('0x2d')],'cc':_0xa5098b['body'][_0xc129('0x15')]['cc'],'subject':_0xa5098b[_0xc129('0x25')]['message']['subject'],'attach':_0x420aaf[_0xc129('0x52')]?_0x420aaf['attach']:_0xa5098b['body'][_0xc129('0x15')][_0xc129('0x52')],'substatus':null,'substatusAt':moment()[_0xc129('0x4b')](_0xc129('0x4c')),'lastMsgAt':moment()[_0xc129('0x4b')](_0xc129('0x4c')),'lastMsgDirection':'in','lastMsgBody':_0xa5098b['body'][_0xc129('0x25')]});}else{return _0x420aaf;}}})[_0xc129('0x22')](function(_0x1e26a7){_0x1ecdd9[_0xc129('0x53')]=_0x1e26a7[_0xc129('0x3c')]({'plain':!![]});_0x1ecdd9[_0xc129('0x53')][_0xc129('0x54')]=_0x269d48;return db[_0xc129('0x4d')][_0xc129('0x55')]({'body':_0xa5098b[_0xc129('0x25')][_0xc129('0x25')],'MailAccountId':_0xa5098b[_0xc129('0x35')]['id'],'MailInteractionId':_0x1e26a7['id'],'direction':'in','ContactId':_0x1ecdd9[_0xc129('0x48')]['id'],'messageId':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')][_0xc129('0x49')],'from':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')][_0xc129('0x2d')],'to':_0xa5098b[_0xc129('0x25')]['message']['to'],'cc':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')]['cc'],'subject':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')][_0xc129('0x56')],'attach':_0xa5098b['body']['message'][_0xc129('0x52')],'Attachments':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')][_0xc129('0x57')],'originTo':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')][_0xc129('0x58')],'originCc':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')][_0xc129('0x59')],'bcc':_0xa5098b[_0xc129('0x25')][_0xc129('0x15')][_0xc129('0x5a')]},{'include':[{'model':db['Attachment'],'as':_0xc129('0x5b')}]});})[_0xc129('0x22')](function(_0x36965f){_0x1ecdd9[_0xc129('0x15')]=_0x36965f;if(_0x1ecdd9[_0xc129('0x53')][_0xc129('0x5c')]){return db['User'][_0xc129('0x34')]({'attributes':['id',_0xc129('0x5d')],'where':{'id':_0x1ecdd9[_0xc129('0x53')]['UserId']}})[_0xc129('0x22')](function(_0x470cc3){if(_0x470cc3){_0x1ecdd9[_0xc129('0x3d')]['unshift']({'id':0x0,'priority':0x0,'app':_0xc129('0x5e'),'appdata':_0x470cc3[_0xc129('0x5d')]+','+(_0x1ecdd9[_0xc129('0x35')][_0xc129('0x5f')]||0xa),'interval':_0xc129('0x43')});}return respondWithRpcPromise('Start',_0xc129('0x60'),_0x1ecdd9);});}return respondWithRpcPromise(_0xc129('0x61'),_0xc129('0x60'),_0x1ecdd9);})[_0xc129('0x22')](function(_0x115143){_0x286563(_0x115143);})[_0xc129('0x17')](function(_0x400e1f){_0xa3b1b1(_0x3653dc[_0xc129('0x12')](0x1f4,_0x400e1f[_0xc129('0x15')]));});});};