6076ec3e03a4b07775f07b3c8670142f701becb8
[motion2.git] / server / api / faxAccount / faxAccount.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 _0x61e4=['priority','asc','Contacts','length','create','contact','FaxInteraction','Contact\x20not\x20found','spread','autoclose','push','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','unshift','agent','name','Start','startRouting','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','./faxAccount.socket','register','request','then','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','FaxAccount,\x20%s,\x20%s','info','catch','FaxAccount','findAll','options','where','include','map','model','attributes','GetFaxAccount','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','from','from\x20is\x20mandatory','isNil','ValidationError','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','List','FaxApplication','Applications','get','orderBy','applications'];(function(_0x4f431d,_0xd51a3b){var _0x4f31e1=function(_0x1c688d){while(--_0x1c688d){_0x4f431d['push'](_0x4f431d['shift']());}};_0x4f31e1(++_0xd51a3b);}(_0x61e4,0x1ea));var _0x461e=function(_0x56edce,_0x3718d7){_0x56edce=_0x56edce-0x0;var _0x3ea2fe=_0x61e4[_0x56edce];return _0x3ea2fe;};'use strict';var _=require(_0x461e('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x461e('0x1'));var rs=require(_0x461e('0x2'));var fs=require('fs');var Redis=require(_0x461e('0x3'));var db=require(_0x461e('0x4'))['db'];var utils=require(_0x461e('0x5'));var logger=require(_0x461e('0x6'))(_0x461e('0x7'));var config=require(_0x461e('0x8'));var jayson=require(_0x461e('0x9'));var client=jayson['client'][_0x461e('0xa')]({'port':0x232c});config[_0x461e('0xb')]=_[_0x461e('0xc')](config[_0x461e('0xb')],{'host':_0x461e('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x461e('0xb')]));require(_0x461e('0xe'))[_0x461e('0xf')](socket);function respondWithRpcPromise(_0xd3315b,_0x1653be,_0x904dd){return new BPromise(function(_0x2f75d4,_0x1fce86){return client[_0x461e('0x10')](_0xd3315b,_0x904dd)[_0x461e('0x11')](function(_0x5d9d3c){logger['info']('FaxAccount,\x20%s,\x20%s',_0x1653be,'request\x20sent');logger[_0x461e('0x12')](_0x461e('0x13'),_0x1653be,_0x461e('0x14'),JSON[_0x461e('0x15')](_0x5d9d3c));if(_0x5d9d3c['error']){if(_0x5d9d3c['error'][_0x461e('0x16')]===0x1f4){logger[_0x461e('0x17')]('FaxAccount,\x20%s,\x20%s',_0x1653be,_0x5d9d3c['error'][_0x461e('0x18')]);return _0x1fce86(_0x5d9d3c['error'][_0x461e('0x18')]);}logger['error'](_0x461e('0x19'),_0x1653be,_0x5d9d3c[_0x461e('0x17')]['message']);return _0x2f75d4(_0x5d9d3c[_0x461e('0x17')][_0x461e('0x18')]);}else{logger[_0x461e('0x1a')](_0x461e('0x19'),_0x1653be,_0x461e('0x14'));_0x2f75d4(_0x5d9d3c['result'][_0x461e('0x18')]);}})[_0x461e('0x1b')](function(_0x4cabdd){logger[_0x461e('0x17')](_0x461e('0x19'),_0x1653be,_0x4cabdd);_0x1fce86(_0x4cabdd);});});}exports['GetFaxAccount']=function(_0x1fe838){var _0x538999=this;return new Promise(function(_0x89d443,_0x5b4c88){return db[_0x461e('0x1c')][_0x461e('0x1d')]({'raw':_0x1fe838[_0x461e('0x1e')]?_0x1fe838[_0x461e('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x1fe838[_0x461e('0x1e')]?_0x1fe838[_0x461e('0x1e')][_0x461e('0x1f')]||null:null,'attributes':_0x1fe838['options']?_0x1fe838[_0x461e('0x1e')]['attributes']||null:null,'limit':_0x1fe838['options']?_0x1fe838[_0x461e('0x1e')]['limit']||null:null,'include':_0x1fe838[_0x461e('0x1e')]?_0x1fe838['options'][_0x461e('0x20')]?_[_0x461e('0x21')](_0x1fe838[_0x461e('0x1e')]['include'],function(_0x38565c){return{'model':db[_0x38565c[_0x461e('0x22')]],'as':_0x38565c['as'],'attributes':_0x38565c[_0x461e('0x23')],'include':_0x38565c['include']?_[_0x461e('0x21')](_0x38565c[_0x461e('0x20')],function(_0x1a1edc){return{'model':db[_0x1a1edc[_0x461e('0x22')]],'as':_0x1a1edc['as'],'attributes':_0x1a1edc[_0x461e('0x23')],'include':_0x1a1edc[_0x461e('0x20')]?_['map'](_0x1a1edc[_0x461e('0x20')],function(_0x63c25c){return{'model':db[_0x63c25c[_0x461e('0x22')]],'as':_0x63c25c['as'],'attributes':_0x63c25c[_0x461e('0x23')]};}):[]};}):[]};}):[]:[]})[_0x461e('0x11')](function(_0x2d4b44){logger['info'](_0x461e('0x24'),_0x1fe838);logger[_0x461e('0x12')](_0x461e('0x24'),_0x1fe838,JSON[_0x461e('0x15')](_0x2d4b44));_0x89d443(_0x2d4b44);})['catch'](function(_0xd20ec0){logger['error'](_0x461e('0x24'),_0xd20ec0['message'],_0x1fe838);_0x5b4c88(_0x538999['error'](0x1f4,_0xd20ec0[_0x461e('0x18')]));});});};exports[_0x461e('0x25')]=function(_0x38cfc7,_0x58f7db,_0x5061fc){var _0x567021=this;return new Promise(function(_0x192550,_0x12d38f){var _0x31a687={'body':_0x38cfc7[_0x461e('0x26')],'channel':_0x461e('0x27')};var _0x5b0d29=[];var _0x3d3ba6=[];var _0x2b79ac={};return db[_0x461e('0x28')][_0x461e('0x29')]()[_0x461e('0x11')](function(_0x558a59){if(!_0x558a59){throw new db[(_0x461e('0x2a'))]['ValidationError'](_0x461e('0x2b'));}_0x5b0d29=_[_0x461e('0x2c')](_['keys'](_0x558a59),['createdAt','updatedAt']);_0x3d3ba6=_[_0x461e('0x2c')](_[_0x461e('0x2d')](_0x558a59),[_0x461e('0x2e'),_0x461e('0x2f'),_0x461e('0x30'),_0x461e('0x31')]);if(_0x38cfc7[_0x461e('0x26')]['id']){delete _0x38cfc7[_0x461e('0x26')]['id'];}if(_['isNil'](_0x38cfc7[_0x461e('0x26')][_0x461e('0x32')])){throw new db['Sequelize']['ValidationError'](_0x461e('0x33'));}if(_[_0x461e('0x34')](_0x38cfc7[_0x461e('0x26')]['body'])||_0x38cfc7[_0x461e('0x26')]['body']===''){throw new db[(_0x461e('0x2a'))][(_0x461e('0x35'))](_0x461e('0x36'));}if(_[_0x461e('0x34')](_0x38cfc7['body'][_0x461e('0x37')])){throw new db['Sequelize']['ValidationError'](_0x461e('0x38')+_0x3d3ba6);}if(!_[_0x461e('0x39')](_0x3d3ba6,_0x38cfc7['body'][_0x461e('0x37')])){throw new db[(_0x461e('0x2a'))][(_0x461e('0x35'))](_0x461e('0x3a')+_0x3d3ba6);}_0x2b79ac[_0x38cfc7[_0x461e('0x26')][_0x461e('0x37')]]=_0x38cfc7['body'][_0x461e('0x32')];})[_0x461e('0x11')](function(){return db[_0x461e('0x1c')][_0x461e('0x3b')]({'where':{'id':_0x38cfc7[_0x461e('0x3c')]['id']},'include':[{'model':db[_0x461e('0x3d')],'as':_0x461e('0x3e'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x2b79ac,'limit':0x1,'order':[[_0x461e('0x2f'),'DESC']]}]},{'model':db[_0x461e('0x3f')],'as':_0x461e('0x40')}]});})[_0x461e('0x11')](function(_0x39113b){if(_0x39113b&&_0x39113b['List']){var _0x46818f=_0x39113b[_0x461e('0x41')]({'plain':!![]});_0x31a687[_0x461e('0x3c')]=_0x46818f;_0x31a687['applications']=_0x46818f[_0x461e('0x40')];_0x31a687['list']=_0x46818f[_0x461e('0x3e')];_0x31a687['applications']=_[_0x461e('0x42')](_0x31a687[_0x461e('0x43')],[_0x461e('0x44')],[_0x461e('0x45')]);if(_0x31a687[_0x461e('0x3c')][_0x461e('0x40')]){delete _0x31a687['account'][_0x461e('0x40')];}if(_0x31a687['account'][_0x461e('0x3e')]&&_0x31a687['account'][_0x461e('0x3e')][_0x461e('0x46')][_0x461e('0x47')]){return _0x31a687[_0x461e('0x3c')][_0x461e('0x3e')][_0x461e('0x46')][0x0];}var _0x4368b=_[_0x461e('0xc')](_0x38cfc7[_0x461e('0x26')],{'firstName':_0x38cfc7[_0x461e('0x26')][_0x461e('0x32')],'ListId':_0x46818f[_0x461e('0x31')]});_0x4368b[_0x38cfc7[_0x461e('0x26')][_0x461e('0x37')]]=_0x38cfc7[_0x461e('0x26')]['from'];return db['CmContact'][_0x461e('0x48')](_0x4368b,{'fields':_0x5b0d29,'raw':!![]});}})['then'](function(_0x29b82f){_0x31a687[_0x461e('0x49')]=_0x29b82f;if(_0x29b82f){var _0x37baca={'ContactId':_0x29b82f['id'],'FaxAccountId':_0x38cfc7['account']['id'],'fax':_0x29b82f['fax']};return db['FaxInteraction'][_0x461e('0x3b')]({'where':{'ContactId':_0x29b82f['id'],'closed':![],'FaxAccountId':_0x38cfc7['account']['id']}})['then'](function(_0x2b696f){if(_0x2b696f){return[_0x2b696f,![]];}return db[_0x461e('0x4a')]['create'](_0x37baca)[_0x461e('0x11')](function(_0x1762e1){return[_0x1762e1,!![]];});});}else{throw new Error(_0x461e('0x4b'));}})[_0x461e('0x4c')](function(_0x3800a4,_0x440f63){var _0x281161=_0x3800a4[_0x461e('0x41')]({'plain':!![]});if(_0x440f63){if(_0x31a687['account'][_0x461e('0x4d')]){_0x31a687[_0x461e('0x43')][_0x461e('0x4e')]({'id':0x0,'priority':_0x31a687[_0x461e('0x43')][_0x461e('0x47')]+0x1,'app':'close','appdata':_0x461e('0x4f'),'interval':_0x461e('0x50')});}_0x281161[_0x461e('0x51')]=!![];}else{_0x281161[_0x461e('0x51')]=![];}_0x31a687[_0x461e('0x52')]=_0x281161;return db[_0x461e('0x53')][_0x461e('0x48')]({'body':_0x38cfc7['body']['body'],'FaxAccountId':_0x38cfc7[_0x461e('0x3c')]['id'],'FaxInteractionId':_0x3800a4['id'],'direction':'in','ContactId':_0x3800a4[_0x461e('0x54')],'AttachmentId':_0x38cfc7['body'][_0x461e('0x55')]});})[_0x461e('0x11')](function(_0x1c6264){_0x31a687[_0x461e('0x18')]=_0x1c6264;if(_0x31a687[_0x461e('0x52')][_0x461e('0x56')]){return db[_0x461e('0x57')]['find']({'attributes':['id','name'],'where':{'id':_0x31a687[_0x461e('0x52')][_0x461e('0x56')]}})[_0x461e('0x11')](function(_0x3c314e){if(_0x3c314e){_0x31a687[_0x461e('0x43')][_0x461e('0x58')]({'id':0x0,'priority':0x0,'app':_0x461e('0x59'),'appdata':_0x3c314e[_0x461e('0x5a')]+','+(_0x31a687[_0x461e('0x3c')]['waitForTheAssignedAgent']||0xa),'interval':_0x461e('0x50')});}return respondWithRpcPromise(_0x461e('0x5b'),_0x461e('0x5c'),_0x31a687);});}return respondWithRpcPromise(_0x461e('0x5b'),_0x461e('0x5c'),_0x31a687);})[_0x461e('0x11')](function(_0x74f858){_0x192550(_0x74f858);})[_0x461e('0x1b')](function(_0x750a47){_0x12d38f(_0x567021[_0x461e('0x17')](0x1f4,_0x750a47[_0x461e('0x18')]));});});};