Built motion from commit (unavailable).|2.5.11
[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 _0x6611=['messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','inReplyTo','MailInteraction','spread','update','interaction','created','MailMessage','attachments','originTo','originCc','bcc','Attachment','UserId','User','name','unshift','agent','waitForTheAssignedAgent','startRouting','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','defaults','redis','./mailAccount.socket','register','then','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','GetMailAccount','MailAccount','findAll','options','raw','attributes','include','map','model','ShowMailAccount','find','where','catch','body','mail','difference','keys','CmContact','updatedAt','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','List','Contacts','DESC','MailApplication','Applications','Smtp','get','omit','applications','list','orderBy','priority','asc','push','length','close','autoclose','*,*,*,*','create','contact'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x6611,0xdd));var _0x1661=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x6611[_0x19e35c];return _0x3e1fe8;};'use strict';var _=require('lodash');var util=require(_0x1661('0x0'));var moment=require(_0x1661('0x1'));var BPromise=require(_0x1661('0x2'));var rs=require(_0x1661('0x3'));var fs=require('fs');var Redis=require(_0x1661('0x4'));var db=require(_0x1661('0x5'))['db'];var utils=require(_0x1661('0x6'));var logger=require(_0x1661('0x7'))(_0x1661('0x8'));var config=require(_0x1661('0x9'));var jayson=require(_0x1661('0xa'));var client=jayson[_0x1661('0xb')]['http']({'port':0x232c});config['redis']=_[_0x1661('0xc')](config[_0x1661('0xd')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1661('0xd')]));require(_0x1661('0xe'))[_0x1661('0xf')](socket);function respondWithRpcPromise(_0x6e95e5,_0x352ca0,_0x478300){return new BPromise(function(_0x11a269,_0x265faf){return client['request'](_0x6e95e5,_0x478300)[_0x1661('0x10')](function(_0x2197f2){logger['info'](_0x1661('0x11'),_0x352ca0,'request\x20sent');logger[_0x1661('0x12')](_0x1661('0x13'),_0x352ca0,_0x1661('0x14'),JSON[_0x1661('0x15')](_0x2197f2));if(_0x2197f2[_0x1661('0x16')]){if(_0x2197f2[_0x1661('0x16')][_0x1661('0x17')]===0x1f4){logger[_0x1661('0x16')](_0x1661('0x11'),_0x352ca0,_0x2197f2[_0x1661('0x16')][_0x1661('0x18')]);return _0x265faf(_0x2197f2[_0x1661('0x16')][_0x1661('0x18')]);}logger['error']('MailAccount,\x20%s,\x20%s',_0x352ca0,_0x2197f2[_0x1661('0x16')][_0x1661('0x18')]);return _0x11a269(_0x2197f2['error'][_0x1661('0x18')]);}else{logger[_0x1661('0x19')](_0x1661('0x11'),_0x352ca0,_0x1661('0x14'));_0x11a269(_0x2197f2['result'][_0x1661('0x18')]);}})['catch'](function(_0x358aff){logger['error'](_0x1661('0x11'),_0x352ca0,_0x358aff);_0x265faf(_0x358aff);});});}exports[_0x1661('0x1a')]=function(_0x4f7d40){var _0x2f6528=this;return new Promise(function(_0x5bf58d,_0x3c1559){return db[_0x1661('0x1b')][_0x1661('0x1c')]({'raw':_0x4f7d40[_0x1661('0x1d')]?_0x4f7d40[_0x1661('0x1d')][_0x1661('0x1e')]===undefined?!![]:![]:!![],'where':_0x4f7d40[_0x1661('0x1d')]?_0x4f7d40['options']['where']||null:null,'attributes':_0x4f7d40[_0x1661('0x1d')]?_0x4f7d40[_0x1661('0x1d')][_0x1661('0x1f')]||null:null,'limit':_0x4f7d40[_0x1661('0x1d')]?_0x4f7d40[_0x1661('0x1d')]['limit']||null:null,'include':_0x4f7d40[_0x1661('0x1d')]?_0x4f7d40['options'][_0x1661('0x20')]?_[_0x1661('0x21')](_0x4f7d40[_0x1661('0x1d')][_0x1661('0x20')],function(_0x48b807){return{'model':db[_0x48b807[_0x1661('0x22')]],'as':_0x48b807['as'],'attributes':_0x48b807[_0x1661('0x1f')],'include':_0x48b807[_0x1661('0x20')]?_['map'](_0x48b807[_0x1661('0x20')],function(_0x454c69){return{'model':db[_0x454c69['model']],'as':_0x454c69['as'],'attributes':_0x454c69[_0x1661('0x1f')],'include':_0x454c69['include']?_[_0x1661('0x21')](_0x454c69[_0x1661('0x20')],function(_0x15111e){return{'model':db[_0x15111e[_0x1661('0x22')]],'as':_0x15111e['as'],'attributes':_0x15111e[_0x1661('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x1661('0x10')](function(_0x42886a){logger[_0x1661('0x19')]('GetMailAccount',_0x4f7d40);logger[_0x1661('0x12')](_0x1661('0x1a'),_0x4f7d40,JSON['stringify'](_0x42886a));_0x5bf58d(_0x42886a);})['catch'](function(_0x1e1694){logger['error'](_0x1661('0x1a'),_0x1e1694[_0x1661('0x18')],_0x4f7d40);_0x3c1559(_0x2f6528['error'](0x1f4,_0x1e1694[_0x1661('0x18')]));});});};exports[_0x1661('0x23')]=function(_0x1e40a9){var _0x732cea=this;return new Promise(function(_0x3a91cc,_0x1ffa75){return db['MailAccount'][_0x1661('0x24')]({'raw':_0x1e40a9[_0x1661('0x1d')]?_0x1e40a9['options'][_0x1661('0x1e')]===undefined?!![]:![]:!![],'where':_0x1e40a9[_0x1661('0x1d')]?_0x1e40a9['options'][_0x1661('0x25')]||null:null,'attributes':_0x1e40a9['options']?_0x1e40a9[_0x1661('0x1d')][_0x1661('0x1f')]||null:null,'include':_0x1e40a9[_0x1661('0x1d')]?_0x1e40a9[_0x1661('0x1d')][_0x1661('0x20')]?_[_0x1661('0x21')](_0x1e40a9[_0x1661('0x1d')]['include'],function(_0xfe49fb){return{'model':db[_0xfe49fb[_0x1661('0x22')]],'as':_0xfe49fb['as'],'attributes':_0xfe49fb[_0x1661('0x1f')],'include':_0xfe49fb[_0x1661('0x20')]?_['map'](_0xfe49fb[_0x1661('0x20')],function(_0x267844){return{'model':db[_0x267844[_0x1661('0x22')]],'as':_0x267844['as'],'attributes':_0x267844['attributes'],'include':_0x267844[_0x1661('0x20')]?_['map'](_0x267844['include'],function(_0x5a7751){return{'model':db[_0x5a7751[_0x1661('0x22')]],'as':_0x5a7751['as'],'attributes':_0x5a7751[_0x1661('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x1661('0x10')](function(_0x349cde){logger[_0x1661('0x19')](_0x1661('0x23'),_0x1e40a9);logger['debug'](_0x1661('0x23'),_0x1e40a9,JSON[_0x1661('0x15')](_0x349cde));_0x3a91cc(_0x349cde);})[_0x1661('0x26')](function(_0x502647){logger[_0x1661('0x16')](_0x1661('0x23'),_0x502647[_0x1661('0x18')],_0x1e40a9);_0x1ffa75(_0x732cea[_0x1661('0x16')](0x1f4,_0x502647[_0x1661('0x18')]));});});};exports['NotifyMailAccount']=function(_0x4956c1){var _0x58025d=this;return new Promise(function(_0x29e452,_0x34ad79){var _0x5620a2={'body':_0x4956c1[_0x1661('0x27')],'channel':_0x1661('0x28')};var _0x20bad3=_[_0x1661('0x29')](_[_0x1661('0x2a')](db[_0x1661('0x2b')]['rawAttributes']),['createdAt',_0x1661('0x2c'),'CompanyId',_0x1661('0x2d')]);var _0x41d51d=![];if(_0x4956c1[_0x1661('0x27')]['id']){delete _0x4956c1['body']['id'];}if(_[_0x1661('0x2e')](_0x4956c1[_0x1661('0x27')][_0x1661('0x2f')])){return _0x34ad79(_0x58025d[_0x1661('0x16')](0x1f4,'from\x20is\x20mandatory'));}if(_['isNil'](_0x4956c1[_0x1661('0x27')][_0x1661('0x27')])||_0x4956c1[_0x1661('0x27')]['body']===''){return _0x34ad79(_0x58025d[_0x1661('0x16')](0x1f4,_0x1661('0x30')));}if(_[_0x1661('0x2e')](_0x4956c1[_0x1661('0x27')][_0x1661('0x31')])){return _0x34ad79(_0x58025d[_0x1661('0x16')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x20bad3));}if(!_[_0x1661('0x32')](_0x20bad3,_0x4956c1[_0x1661('0x27')][_0x1661('0x31')])){return _0x34ad79(_0x58025d[_0x1661('0x16')](0x1f4,_0x1661('0x33')+_0x20bad3));}var _0xbc40fe={};_0xbc40fe[_0x4956c1[_0x1661('0x27')][_0x1661('0x31')]]=_0x4956c1['body'][_0x1661('0x2f')];return db[_0x1661('0x1b')][_0x1661('0x24')]({'where':{'id':_0x4956c1[_0x1661('0x34')]['id']},'include':[{'model':db['CmList'],'as':_0x1661('0x35'),'include':[{'model':db[_0x1661('0x2b')],'as':_0x1661('0x36'),'where':_0xbc40fe,'limit':0x1,'order':[[_0x1661('0x2c'),_0x1661('0x37')]]}]},{'model':db[_0x1661('0x38')],'as':_0x1661('0x39')},{'model':db['MailServerOut'],'as':_0x1661('0x3a')}]})['then'](function(_0x4ed509){if(_0x4ed509&&_0x4ed509['List']){var _0x2c8d17=_0x4ed509[_0x1661('0x3b')]({'plain':!![]});_0x5620a2[_0x1661('0x34')]=_[_0x1661('0x3c')](_0x2c8d17,['Applications',_0x1661('0x35')]);_0x5620a2[_0x1661('0x3d')]=_0x2c8d17[_0x1661('0x39')];_0x5620a2[_0x1661('0x3e')]=_0x2c8d17[_0x1661('0x35')];_0x5620a2['applications']=_[_0x1661('0x3f')](_0x5620a2[_0x1661('0x3d')],[_0x1661('0x40')],[_0x1661('0x41')]);if(_0x5620a2[_0x1661('0x34')]&&_0x5620a2['account']['autoclose']){_0x5620a2[_0x1661('0x3d')][_0x1661('0x42')]({'id':0x0,'priority':_0x5620a2[_0x1661('0x3d')][_0x1661('0x43')]+0x1,'app':_0x1661('0x44'),'appdata':_0x1661('0x45'),'interval':_0x1661('0x46')});}if(_0x5620a2[_0x1661('0x34')]['Applications']){delete _0x5620a2[_0x1661('0x34')]['Applications'];}if(_0x5620a2[_0x1661('0x34')][_0x1661('0x35')]){delete _0x5620a2[_0x1661('0x34')][_0x1661('0x35')];}if(_0x2c8d17[_0x1661('0x35')][_0x1661('0x36')][_0x1661('0x43')]){return _0x2c8d17[_0x1661('0x35')][_0x1661('0x36')][0x0];}var _0x34e3a9=_[_0x1661('0xc')](_0x4956c1[_0x1661('0x27')],{'firstName':_0x4956c1[_0x1661('0x27')][_0x1661('0x2f')],'ListId':_0x2c8d17[_0x1661('0x2d')]});_0x34e3a9[_0x4956c1['body']['mapKey']]=_0x4956c1[_0x1661('0x27')][_0x1661('0x2f')];return db[_0x1661('0x2b')][_0x1661('0x47')](_0x34e3a9);}else{throw new Error('List\x20not\x20found');}})['then'](function(_0x1ac938){_0x5620a2[_0x1661('0x48')]=_0x1ac938;if(_0x1ac938){if(!_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x49')]){_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x49')]=rs[_0x1661('0x4a')]()+'\x20'+_0x4956c1[_0x1661('0x27')][_0x1661('0x18')]['from'];}var _0x2f3eb7={'ContactId':_0x1ac938['id'],'MailAccountId':_0x4956c1[_0x1661('0x34')]['id'],'inReplyTo':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x49')],'to':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x2f')],'cc':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')]['cc'],'subject':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x4b')],'attach':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x4c')],'lastMsgAt':moment()[_0x1661('0x4d')](_0x1661('0x4e')),'lastMsgDirection':'in','lastMsgBody':_0x4956c1['body'][_0x1661('0x27')]};return db['MailInteraction'][_0x1661('0x24')]({'where':{'closed':![],'MailAccountId':_0x4956c1[_0x1661('0x34')]['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':['messageId'],'where':{'messageId':_0x4956c1['body'][_0x1661('0x18')][_0x1661('0x4f')]}}]})[_0x1661('0x10')](function(_0x4aa99b){if(_0x4aa99b){return[_0x4aa99b,![]];}return db[_0x1661('0x50')][_0x1661('0x47')](_0x2f3eb7)[_0x1661('0x10')](function(_0x534cab){return[_0x534cab,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x1661('0x51')](function(_0x3867be,_0x3f01a6){if(_0x3867be){_0x41d51d=_0x3f01a6;if(!_0x3f01a6){return _0x3867be[_0x1661('0x52')]({'inReplyTo':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x49')],'to':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')]['from'],'cc':_0x4956c1[_0x1661('0x27')]['message']['cc'],'subject':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')]['subject'],'attach':_0x3867be[_0x1661('0x4c')]?_0x3867be[_0x1661('0x4c')]:_0x4956c1[_0x1661('0x27')]['message'][_0x1661('0x4c')],'substatus':null,'substatusAt':moment()[_0x1661('0x4d')](_0x1661('0x4e')),'lastMsgAt':moment()[_0x1661('0x4d')](_0x1661('0x4e')),'lastMsgDirection':'in','lastMsgBody':_0x4956c1[_0x1661('0x27')][_0x1661('0x27')]});}else{return _0x3867be;}}})[_0x1661('0x10')](function(_0x2ede2b){_0x5620a2[_0x1661('0x53')]=_0x2ede2b[_0x1661('0x3b')]({'plain':!![]});_0x5620a2[_0x1661('0x53')][_0x1661('0x54')]=_0x41d51d;return db[_0x1661('0x55')][_0x1661('0x47')]({'body':_0x4956c1[_0x1661('0x27')][_0x1661('0x27')],'MailAccountId':_0x4956c1['account']['id'],'MailInteractionId':_0x2ede2b['id'],'direction':'in','ContactId':_0x5620a2['contact']['id'],'messageId':_0x4956c1[_0x1661('0x27')]['message']['messageId'],'from':_0x4956c1[_0x1661('0x27')]['message'][_0x1661('0x2f')],'to':_0x4956c1['body'][_0x1661('0x18')]['to'],'cc':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')]['cc'],'subject':_0x4956c1['body'][_0x1661('0x18')][_0x1661('0x4b')],'attach':_0x4956c1['body'][_0x1661('0x18')]['attach'],'Attachments':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x56')],'originTo':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x57')],'originCc':_0x4956c1[_0x1661('0x27')][_0x1661('0x18')][_0x1661('0x58')],'bcc':_0x4956c1[_0x1661('0x27')]['message'][_0x1661('0x59')]},{'include':[{'model':db[_0x1661('0x5a')],'as':'Attachments'}]});})[_0x1661('0x10')](function(_0x5b9b41){_0x5620a2['message']=_0x5b9b41;if(_0x5620a2['interaction'][_0x1661('0x5b')]){return db[_0x1661('0x5c')][_0x1661('0x24')]({'attributes':['id',_0x1661('0x5d')],'where':{'id':_0x5620a2[_0x1661('0x53')][_0x1661('0x5b')]}})[_0x1661('0x10')](function(_0x546697){if(_0x546697){_0x5620a2[_0x1661('0x3d')][_0x1661('0x5e')]({'id':0x0,'priority':0x0,'app':_0x1661('0x5f'),'appdata':_0x546697[_0x1661('0x5d')]+','+(_0x5620a2[_0x1661('0x34')][_0x1661('0x60')]||0xa),'interval':_0x1661('0x46')});}return respondWithRpcPromise('Start',_0x1661('0x61'),_0x5620a2);});}return respondWithRpcPromise('Start',_0x1661('0x61'),_0x5620a2);})['then'](function(_0x30b624){_0x29e452(_0x30b624);})[_0x1661('0x26')](function(_0x33e824){_0x34ad79(_0x58025d[_0x1661('0x16')](0x1f4,_0x33e824[_0x1661('0x18')]));});});};