Built motion from commit (unavailable).|2.5.8
[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 _0x49e9=['limit','include','map','model','ShowMailAccount','find','catch','difference','CmContact','rawAttributes','updatedAt','CompanyId','ListId','isNil','body','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','DESC','MailApplication','MailServerOut','get','omit','Applications','applications','orderBy','priority','autoclose','push','length','close','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','create','Contact\x20not\x20found','spread','update','interaction','created','contact','attachments','originTo','originCc','bcc','Attachment','Attachments','name','UserId','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','bluebird','randomstring','ioredis','../../config/logger','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetMailAccount','MailAccount','findAll','options','raw','where','attributes'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0x49e9,0x10f));var _0x949e=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x49e9[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x949e('0x0'));var util=require(_0x949e('0x1'));var moment=require('moment');var BPromise=require(_0x949e('0x2'));var rs=require(_0x949e('0x3'));var fs=require('fs');var Redis=require(_0x949e('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x949e('0x5'))('rpc');var config=require(_0x949e('0x6'));var jayson=require(_0x949e('0x7'));var client=jayson[_0x949e('0x8')]['http']({'port':0x232c});config[_0x949e('0x9')]=_[_0x949e('0xa')](config[_0x949e('0x9')],{'host':_0x949e('0xb'),'port':0x18eb});var socket=require(_0x949e('0xc'))(new Redis(config[_0x949e('0x9')]));require(_0x949e('0xd'))['register'](socket);function respondWithRpcPromise(_0x394859,_0x50ca96,_0x422dcc){return new BPromise(function(_0x3d0674,_0x255814){return client['request'](_0x394859,_0x422dcc)[_0x949e('0xe')](function(_0x1935a3){logger[_0x949e('0xf')](_0x949e('0x10'),_0x50ca96,_0x949e('0x11'));logger[_0x949e('0x12')](_0x949e('0x13'),_0x50ca96,_0x949e('0x11'),JSON[_0x949e('0x14')](_0x1935a3));if(_0x1935a3[_0x949e('0x15')]){if(_0x1935a3[_0x949e('0x15')][_0x949e('0x16')]===0x1f4){logger[_0x949e('0x15')](_0x949e('0x10'),_0x50ca96,_0x1935a3[_0x949e('0x15')]['message']);return _0x255814(_0x1935a3[_0x949e('0x15')][_0x949e('0x17')]);}logger[_0x949e('0x15')](_0x949e('0x10'),_0x50ca96,_0x1935a3['error'][_0x949e('0x17')]);return _0x3d0674(_0x1935a3[_0x949e('0x15')]['message']);}else{logger[_0x949e('0xf')](_0x949e('0x10'),_0x50ca96,_0x949e('0x11'));_0x3d0674(_0x1935a3[_0x949e('0x18')][_0x949e('0x17')]);}})['catch'](function(_0x31a2ad){logger[_0x949e('0x15')](_0x949e('0x10'),_0x50ca96,_0x31a2ad);_0x255814(_0x31a2ad);});});}exports[_0x949e('0x19')]=function(_0xf319f1){var _0x141bc1=this;return new Promise(function(_0x354e89,_0x2f21bd){return db[_0x949e('0x1a')][_0x949e('0x1b')]({'raw':_0xf319f1[_0x949e('0x1c')]?_0xf319f1[_0x949e('0x1c')][_0x949e('0x1d')]===undefined?!![]:![]:!![],'where':_0xf319f1[_0x949e('0x1c')]?_0xf319f1[_0x949e('0x1c')][_0x949e('0x1e')]||null:null,'attributes':_0xf319f1['options']?_0xf319f1[_0x949e('0x1c')][_0x949e('0x1f')]||null:null,'limit':_0xf319f1['options']?_0xf319f1['options'][_0x949e('0x20')]||null:null,'include':_0xf319f1[_0x949e('0x1c')]?_0xf319f1[_0x949e('0x1c')][_0x949e('0x21')]?_[_0x949e('0x22')](_0xf319f1[_0x949e('0x1c')][_0x949e('0x21')],function(_0x255b11){return{'model':db[_0x255b11[_0x949e('0x23')]],'as':_0x255b11['as'],'attributes':_0x255b11[_0x949e('0x1f')],'include':_0x255b11['include']?_[_0x949e('0x22')](_0x255b11[_0x949e('0x21')],function(_0x59b3a1){return{'model':db[_0x59b3a1[_0x949e('0x23')]],'as':_0x59b3a1['as'],'attributes':_0x59b3a1[_0x949e('0x1f')],'include':_0x59b3a1['include']?_[_0x949e('0x22')](_0x59b3a1[_0x949e('0x21')],function(_0x5b9f28){return{'model':db[_0x5b9f28[_0x949e('0x23')]],'as':_0x5b9f28['as'],'attributes':_0x5b9f28['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x4e169d){logger['info']('GetMailAccount',_0xf319f1);logger[_0x949e('0x12')](_0x949e('0x19'),_0xf319f1,JSON[_0x949e('0x14')](_0x4e169d));_0x354e89(_0x4e169d);})['catch'](function(_0x4ca7ae){logger['error']('GetMailAccount',_0x4ca7ae[_0x949e('0x17')],_0xf319f1);_0x2f21bd(_0x141bc1[_0x949e('0x15')](0x1f4,_0x4ca7ae[_0x949e('0x17')]));});});};exports[_0x949e('0x24')]=function(_0x5b88de){var _0x2cb0c3=this;return new Promise(function(_0x1d9ce6,_0xad8500){return db['MailAccount'][_0x949e('0x25')]({'raw':_0x5b88de[_0x949e('0x1c')]?_0x5b88de[_0x949e('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x5b88de['options']?_0x5b88de[_0x949e('0x1c')][_0x949e('0x1e')]||null:null,'attributes':_0x5b88de[_0x949e('0x1c')]?_0x5b88de[_0x949e('0x1c')]['attributes']||null:null,'include':_0x5b88de[_0x949e('0x1c')]?_0x5b88de[_0x949e('0x1c')][_0x949e('0x21')]?_[_0x949e('0x22')](_0x5b88de[_0x949e('0x1c')][_0x949e('0x21')],function(_0x3d84ba){return{'model':db[_0x3d84ba[_0x949e('0x23')]],'as':_0x3d84ba['as'],'attributes':_0x3d84ba['attributes'],'include':_0x3d84ba['include']?_[_0x949e('0x22')](_0x3d84ba['include'],function(_0x52a1ca){return{'model':db[_0x52a1ca[_0x949e('0x23')]],'as':_0x52a1ca['as'],'attributes':_0x52a1ca[_0x949e('0x1f')],'include':_0x52a1ca[_0x949e('0x21')]?_[_0x949e('0x22')](_0x52a1ca[_0x949e('0x21')],function(_0x461a8a){return{'model':db[_0x461a8a[_0x949e('0x23')]],'as':_0x461a8a['as'],'attributes':_0x461a8a[_0x949e('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x949e('0xe')](function(_0x34db2a){logger[_0x949e('0xf')](_0x949e('0x24'),_0x5b88de);logger[_0x949e('0x12')](_0x949e('0x24'),_0x5b88de,JSON[_0x949e('0x14')](_0x34db2a));_0x1d9ce6(_0x34db2a);})[_0x949e('0x26')](function(_0x251414){logger['error'](_0x949e('0x24'),_0x251414['message'],_0x5b88de);_0xad8500(_0x2cb0c3[_0x949e('0x15')](0x1f4,_0x251414[_0x949e('0x17')]));});});};exports['NotifyMailAccount']=function(_0x5084dc){var _0x53d37a=this;return new Promise(function(_0x1e848c,_0x45c2e7){var _0x53f364={'body':_0x5084dc['body'],'channel':'mail'};var _0x333145=_[_0x949e('0x27')](_['keys'](db[_0x949e('0x28')][_0x949e('0x29')]),['createdAt',_0x949e('0x2a'),_0x949e('0x2b'),_0x949e('0x2c')]);var _0xb384ed=![];if(_0x5084dc['body']['id']){delete _0x5084dc['body']['id'];}if(_[_0x949e('0x2d')](_0x5084dc[_0x949e('0x2e')][_0x949e('0x2f')])){return _0x45c2e7(_0x53d37a[_0x949e('0x15')](0x1f4,_0x949e('0x30')));}if(_[_0x949e('0x2d')](_0x5084dc[_0x949e('0x2e')]['body'])||_0x5084dc['body'][_0x949e('0x2e')]===''){return _0x45c2e7(_0x53d37a['error'](0x1f4,_0x949e('0x31')));}if(_[_0x949e('0x2d')](_0x5084dc[_0x949e('0x2e')][_0x949e('0x32')])){return _0x45c2e7(_0x53d37a[_0x949e('0x15')](0x1f4,_0x949e('0x33')+_0x333145));}if(!_['includes'](_0x333145,_0x5084dc['body'][_0x949e('0x32')])){return _0x45c2e7(_0x53d37a[_0x949e('0x15')](0x1f4,_0x949e('0x34')+_0x333145));}var _0x35a2e6={};_0x35a2e6[_0x5084dc[_0x949e('0x2e')]['mapKey']]=_0x5084dc[_0x949e('0x2e')][_0x949e('0x2f')];return db['MailAccount'][_0x949e('0x25')]({'where':{'id':_0x5084dc[_0x949e('0x35')]['id']},'include':[{'model':db[_0x949e('0x36')],'as':_0x949e('0x37'),'include':[{'model':db[_0x949e('0x28')],'as':_0x949e('0x38'),'where':_0x35a2e6,'limit':0x1,'order':[[_0x949e('0x2a'),_0x949e('0x39')]]}]},{'model':db[_0x949e('0x3a')],'as':'Applications'},{'model':db[_0x949e('0x3b')],'as':'Smtp'}]})[_0x949e('0xe')](function(_0x24c7a6){if(_0x24c7a6&&_0x24c7a6['List']){var _0xb9a3c2=_0x24c7a6[_0x949e('0x3c')]({'plain':!![]});_0x53f364[_0x949e('0x35')]=_[_0x949e('0x3d')](_0xb9a3c2,[_0x949e('0x3e'),_0x949e('0x37')]);_0x53f364[_0x949e('0x3f')]=_0xb9a3c2[_0x949e('0x3e')];_0x53f364['list']=_0xb9a3c2[_0x949e('0x37')];_0x53f364[_0x949e('0x3f')]=_[_0x949e('0x40')](_0x53f364[_0x949e('0x3f')],[_0x949e('0x41')],['asc']);if(_0x53f364['account']&&_0x53f364[_0x949e('0x35')][_0x949e('0x42')]){_0x53f364['applications'][_0x949e('0x43')]({'id':0x0,'priority':_0x53f364[_0x949e('0x3f')][_0x949e('0x44')]+0x1,'app':_0x949e('0x45'),'appdata':'autoclose','interval':'*,*,*,*'});}if(_0x53f364[_0x949e('0x35')][_0x949e('0x3e')]){delete _0x53f364[_0x949e('0x35')][_0x949e('0x3e')];}if(_0x53f364[_0x949e('0x35')][_0x949e('0x37')]){delete _0x53f364[_0x949e('0x35')][_0x949e('0x37')];}if(_0xb9a3c2[_0x949e('0x37')]['Contacts'][_0x949e('0x44')]){return _0xb9a3c2['List'][_0x949e('0x38')][0x0];}var _0x4fb3d5=_[_0x949e('0xa')](_0x5084dc['body'],{'firstName':_0x5084dc[_0x949e('0x2e')][_0x949e('0x2f')],'ListId':_0xb9a3c2['ListId']});_0x4fb3d5[_0x5084dc[_0x949e('0x2e')][_0x949e('0x32')]]=_0x5084dc[_0x949e('0x2e')][_0x949e('0x2f')];return db[_0x949e('0x28')]['create'](_0x4fb3d5);}else{throw new Error('List\x20not\x20found');}})[_0x949e('0xe')](function(_0xa33728){_0x53f364['contact']=_0xa33728;if(_0xa33728){if(!_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')]['messageId']){_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x46')]=rs[_0x949e('0x47')]()+'\x20'+_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x2f')];}var _0x1d814d={'ContactId':_0xa33728['id'],'MailAccountId':_0x5084dc[_0x949e('0x35')]['id'],'inReplyTo':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x46')],'to':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x2f')],'cc':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')]['cc'],'subject':_0x5084dc[_0x949e('0x2e')]['message'][_0x949e('0x48')],'attach':_0x5084dc['body']['message'][_0x949e('0x49')],'lastMsgAt':moment()[_0x949e('0x4a')](_0x949e('0x4b')),'lastMsgDirection':'in','lastMsgBody':_0x5084dc['body'][_0x949e('0x2e')]};return db[_0x949e('0x4c')][_0x949e('0x25')]({'where':{'closed':![],'MailAccountId':_0x5084dc['account']['id']},'include':[{'model':db[_0x949e('0x4d')],'as':_0x949e('0x4e'),'attributes':[_0x949e('0x46')],'where':{'messageId':_0x5084dc['body'][_0x949e('0x17')][_0x949e('0x4f')]}}]})[_0x949e('0xe')](function(_0x1577ae){if(_0x1577ae){return[_0x1577ae,![]];}return db[_0x949e('0x4c')][_0x949e('0x50')](_0x1d814d)['then'](function(_0x22ae6b){return[_0x22ae6b,!![]];});});}else{throw new Error(_0x949e('0x51'));}})[_0x949e('0x52')](function(_0x5a4d17,_0x56f8ab){if(_0x5a4d17){_0xb384ed=_0x56f8ab;if(!_0x56f8ab){return _0x5a4d17[_0x949e('0x53')]({'inReplyTo':_0x5084dc['body'][_0x949e('0x17')][_0x949e('0x46')],'to':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x2f')],'cc':_0x5084dc[_0x949e('0x2e')]['message']['cc'],'subject':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x48')],'attach':_0x5a4d17[_0x949e('0x49')]?_0x5a4d17[_0x949e('0x49')]:_0x5084dc[_0x949e('0x2e')]['message'][_0x949e('0x49')],'substatus':null,'substatusAt':moment()[_0x949e('0x4a')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()['format'](_0x949e('0x4b')),'lastMsgDirection':'in','lastMsgBody':_0x5084dc['body'][_0x949e('0x2e')]});}else{return _0x5a4d17;}}})['then'](function(_0x5c4c4c){_0x53f364[_0x949e('0x54')]=_0x5c4c4c[_0x949e('0x3c')]({'plain':!![]});_0x53f364[_0x949e('0x54')][_0x949e('0x55')]=_0xb384ed;return db[_0x949e('0x4d')][_0x949e('0x50')]({'body':_0x5084dc[_0x949e('0x2e')][_0x949e('0x2e')],'MailAccountId':_0x5084dc[_0x949e('0x35')]['id'],'MailInteractionId':_0x5c4c4c['id'],'direction':'in','ContactId':_0x53f364[_0x949e('0x56')]['id'],'messageId':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x46')],'from':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x2f')],'to':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')]['to'],'cc':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')]['cc'],'subject':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x48')],'attach':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')]['attach'],'Attachments':_0x5084dc['body'][_0x949e('0x17')][_0x949e('0x57')],'originTo':_0x5084dc['body'][_0x949e('0x17')][_0x949e('0x58')],'originCc':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x59')],'bcc':_0x5084dc[_0x949e('0x2e')][_0x949e('0x17')][_0x949e('0x5a')]},{'include':[{'model':db[_0x949e('0x5b')],'as':_0x949e('0x5c')}]});})[_0x949e('0xe')](function(_0x2a62ed){_0x53f364[_0x949e('0x17')]=_0x2a62ed;if(_0x53f364[_0x949e('0x54')]['UserId']){return db['User']['find']({'attributes':['id',_0x949e('0x5d')],'where':{'id':_0x53f364[_0x949e('0x54')][_0x949e('0x5e')]}})['then'](function(_0x3ef5a8){if(_0x3ef5a8){_0x53f364[_0x949e('0x3f')][_0x949e('0x5f')]({'id':0x0,'priority':0x0,'app':_0x949e('0x60'),'appdata':_0x3ef5a8['name']+','+(_0x53f364[_0x949e('0x35')][_0x949e('0x61')]||0xa),'interval':_0x949e('0x62')});}return respondWithRpcPromise(_0x949e('0x63'),_0x949e('0x64'),_0x53f364);});}return respondWithRpcPromise(_0x949e('0x63'),_0x949e('0x64'),_0x53f364);})[_0x949e('0xe')](function(_0x4048ba){_0x1e848c(_0x4048ba);})[_0x949e('0x26')](function(_0x16250f){_0x45c2e7(_0x53d37a[_0x949e('0x15')](0x1f4,_0x16250f['message']));});});};