Built motion from commit 994c64e1.|2.6.1
[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 _0xa5c3=['difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','ValidationError','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','from','find','CmList','List','Contacts','DESC','FaxApplication','Applications','get','account','applications','list','orderBy','asc','length','create','contact','FaxInteraction','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','name','UserId','unshift','Start','startRouting','moment','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','defaults','redis','localhost','socket.io-emitter','request','info','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','FaxAccount,\x20%s,\x20%s','result','catch','GetFaxAccount','FaxAccount','options','raw','where','attributes','include','map','model','then','NotifyFaxAccount','body','CmContact','describe','Sequelize','no\x20available\x20attributes'];(function(_0x1ca3f0,_0x31a2bd){var _0x3b0017=function(_0x5e2fc9){while(--_0x5e2fc9){_0x1ca3f0['push'](_0x1ca3f0['shift']());}};_0x3b0017(++_0x31a2bd);}(_0xa5c3,0xdb));var _0x3a5c=function(_0x379a21,_0x57174b){_0x379a21=_0x379a21-0x0;var _0x3c9170=_0xa5c3[_0x379a21];return _0x3c9170;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3a5c('0x0'));var BPromise=require('bluebird');var rs=require(_0x3a5c('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3a5c('0x2'))['db'];var utils=require(_0x3a5c('0x3'));var logger=require('../../config/logger')(_0x3a5c('0x4'));var config=require(_0x3a5c('0x5'));var jayson=require(_0x3a5c('0x6'));var client=jayson[_0x3a5c('0x7')]['http']({'port':0x232c});config['redis']=_[_0x3a5c('0x8')](config[_0x3a5c('0x9')],{'host':_0x3a5c('0xa'),'port':0x18eb});var socket=require(_0x3a5c('0xb'))(new Redis(config[_0x3a5c('0x9')]));require('./faxAccount.socket')['register'](socket);function respondWithRpcPromise(_0x1da30c,_0x617aac,_0x41ee24){return new BPromise(function(_0x17c9d7,_0x179efa){return client[_0x3a5c('0xc')](_0x1da30c,_0x41ee24)['then'](function(_0x428ae5){logger[_0x3a5c('0xd')]('FaxAccount,\x20%s,\x20%s',_0x617aac,_0x3a5c('0xe'));logger[_0x3a5c('0xf')](_0x3a5c('0x10'),_0x617aac,_0x3a5c('0xe'),JSON[_0x3a5c('0x11')](_0x428ae5));if(_0x428ae5[_0x3a5c('0x12')]){if(_0x428ae5[_0x3a5c('0x12')]['code']===0x1f4){logger[_0x3a5c('0x12')]('FaxAccount,\x20%s,\x20%s',_0x617aac,_0x428ae5[_0x3a5c('0x12')][_0x3a5c('0x13')]);return _0x179efa(_0x428ae5[_0x3a5c('0x12')][_0x3a5c('0x13')]);}logger[_0x3a5c('0x12')](_0x3a5c('0x14'),_0x617aac,_0x428ae5[_0x3a5c('0x12')][_0x3a5c('0x13')]);return _0x17c9d7(_0x428ae5[_0x3a5c('0x12')]['message']);}else{logger[_0x3a5c('0xd')](_0x3a5c('0x14'),_0x617aac,'request\x20sent');_0x17c9d7(_0x428ae5[_0x3a5c('0x15')][_0x3a5c('0x13')]);}})[_0x3a5c('0x16')](function(_0x4536f9){logger[_0x3a5c('0x12')](_0x3a5c('0x14'),_0x617aac,_0x4536f9);_0x179efa(_0x4536f9);});});}exports[_0x3a5c('0x17')]=function(_0x9b62d4){var _0x5d344d=this;return new Promise(function(_0x248781,_0x6d49dc){return db[_0x3a5c('0x18')]['findAll']({'raw':_0x9b62d4[_0x3a5c('0x19')]?_0x9b62d4[_0x3a5c('0x19')][_0x3a5c('0x1a')]===undefined?!![]:![]:!![],'where':_0x9b62d4['options']?_0x9b62d4[_0x3a5c('0x19')][_0x3a5c('0x1b')]||null:null,'attributes':_0x9b62d4['options']?_0x9b62d4[_0x3a5c('0x19')][_0x3a5c('0x1c')]||null:null,'limit':_0x9b62d4[_0x3a5c('0x19')]?_0x9b62d4[_0x3a5c('0x19')]['limit']||null:null,'include':_0x9b62d4['options']?_0x9b62d4['options'][_0x3a5c('0x1d')]?_['map'](_0x9b62d4[_0x3a5c('0x19')][_0x3a5c('0x1d')],function(_0x3f4391){return{'model':db[_0x3f4391['model']],'as':_0x3f4391['as'],'attributes':_0x3f4391[_0x3a5c('0x1c')],'include':_0x3f4391[_0x3a5c('0x1d')]?_[_0x3a5c('0x1e')](_0x3f4391[_0x3a5c('0x1d')],function(_0x4867c2){return{'model':db[_0x4867c2[_0x3a5c('0x1f')]],'as':_0x4867c2['as'],'attributes':_0x4867c2[_0x3a5c('0x1c')],'include':_0x4867c2['include']?_['map'](_0x4867c2['include'],function(_0x58ee1e){return{'model':db[_0x58ee1e[_0x3a5c('0x1f')]],'as':_0x58ee1e['as'],'attributes':_0x58ee1e[_0x3a5c('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x3a5c('0x20')](function(_0x9c273f){logger[_0x3a5c('0xd')](_0x3a5c('0x17'),_0x9b62d4);logger[_0x3a5c('0xf')](_0x3a5c('0x17'),_0x9b62d4,JSON[_0x3a5c('0x11')](_0x9c273f));_0x248781(_0x9c273f);})['catch'](function(_0xb7e7fe){logger[_0x3a5c('0x12')](_0x3a5c('0x17'),_0xb7e7fe['message'],_0x9b62d4);_0x6d49dc(_0x5d344d['error'](0x1f4,_0xb7e7fe[_0x3a5c('0x13')]));});});};exports[_0x3a5c('0x21')]=function(_0x2ca784,_0x154fc1,_0x1e5228){var _0x5d223a=this;return new Promise(function(_0x27b1c3,_0x5e816d){var _0x2f4d99={'body':_0x2ca784[_0x3a5c('0x22')],'channel':'fax'};var _0x477253=[];var _0x4fbde9=[];var _0xcb769d={};return db[_0x3a5c('0x23')][_0x3a5c('0x24')]()[_0x3a5c('0x20')](function(_0x27d2af){if(!_0x27d2af){throw new db[(_0x3a5c('0x25'))]['ValidationError'](_0x3a5c('0x26'));}_0x477253=_[_0x3a5c('0x27')](_[_0x3a5c('0x28')](_0x27d2af),[_0x3a5c('0x29'),_0x3a5c('0x2a')]);_0x4fbde9=_[_0x3a5c('0x27')](_[_0x3a5c('0x28')](_0x27d2af),[_0x3a5c('0x29'),_0x3a5c('0x2a'),_0x3a5c('0x2b'),_0x3a5c('0x2c')]);if(_0x2ca784[_0x3a5c('0x22')]['id']){delete _0x2ca784[_0x3a5c('0x22')]['id'];}if(_[_0x3a5c('0x2d')](_0x2ca784[_0x3a5c('0x22')]['from'])){throw new db['Sequelize'][(_0x3a5c('0x2e'))](_0x3a5c('0x2f'));}if(_['isNil'](_0x2ca784[_0x3a5c('0x22')]['body'])||_0x2ca784[_0x3a5c('0x22')][_0x3a5c('0x22')]===''){throw new db['Sequelize'][(_0x3a5c('0x2e'))](_0x3a5c('0x30'));}if(_[_0x3a5c('0x2d')](_0x2ca784['body'][_0x3a5c('0x31')])){throw new db[(_0x3a5c('0x25'))][(_0x3a5c('0x2e'))](_0x3a5c('0x32')+_0x4fbde9);}if(!_[_0x3a5c('0x33')](_0x4fbde9,_0x2ca784[_0x3a5c('0x22')][_0x3a5c('0x31')])){throw new db[(_0x3a5c('0x25'))]['ValidationError'](_0x3a5c('0x34')+_0x4fbde9);}_0xcb769d[_0x2ca784['body'][_0x3a5c('0x31')]]=_0x2ca784[_0x3a5c('0x22')][_0x3a5c('0x35')];})['then'](function(){return db[_0x3a5c('0x18')][_0x3a5c('0x36')]({'where':{'id':_0x2ca784['account']['id']},'include':[{'model':db[_0x3a5c('0x37')],'as':_0x3a5c('0x38'),'include':[{'model':db[_0x3a5c('0x23')],'as':_0x3a5c('0x39'),'where':_0xcb769d,'limit':0x1,'order':[['updatedAt',_0x3a5c('0x3a')]]}]},{'model':db[_0x3a5c('0x3b')],'as':_0x3a5c('0x3c')}]});})[_0x3a5c('0x20')](function(_0x3703c8){if(_0x3703c8&&_0x3703c8[_0x3a5c('0x38')]){var _0xd5e433=_0x3703c8[_0x3a5c('0x3d')]({'plain':!![]});_0x2f4d99[_0x3a5c('0x3e')]=_0xd5e433;_0x2f4d99[_0x3a5c('0x3f')]=_0xd5e433['Applications'];_0x2f4d99[_0x3a5c('0x40')]=_0xd5e433[_0x3a5c('0x38')];_0x2f4d99[_0x3a5c('0x3f')]=_[_0x3a5c('0x41')](_0x2f4d99[_0x3a5c('0x3f')],['priority'],[_0x3a5c('0x42')]);if(_0x2f4d99[_0x3a5c('0x3e')][_0x3a5c('0x3c')]){delete _0x2f4d99['account']['Applications'];}if(_0x2f4d99[_0x3a5c('0x3e')][_0x3a5c('0x38')]&&_0x2f4d99[_0x3a5c('0x3e')][_0x3a5c('0x38')]['Contacts'][_0x3a5c('0x43')]){return _0x2f4d99[_0x3a5c('0x3e')][_0x3a5c('0x38')][_0x3a5c('0x39')][0x0];}var _0x28031c=_[_0x3a5c('0x8')](_0x2ca784[_0x3a5c('0x22')],{'firstName':_0x2ca784[_0x3a5c('0x22')][_0x3a5c('0x35')],'ListId':_0xd5e433[_0x3a5c('0x2c')]});_0x28031c[_0x2ca784[_0x3a5c('0x22')][_0x3a5c('0x31')]]=_0x2ca784['body'][_0x3a5c('0x35')];return db[_0x3a5c('0x23')][_0x3a5c('0x44')](_0x28031c,{'fields':_0x477253,'raw':!![]});}})[_0x3a5c('0x20')](function(_0x14dc2d){_0x2f4d99[_0x3a5c('0x45')]=_0x14dc2d;if(_0x14dc2d){var _0x4f6328={'ContactId':_0x14dc2d['id'],'FaxAccountId':_0x2ca784[_0x3a5c('0x3e')]['id'],'fax':_0x14dc2d['fax']};return db['FaxInteraction'][_0x3a5c('0x36')]({'where':{'ContactId':_0x14dc2d['id'],'closed':![],'FaxAccountId':_0x2ca784[_0x3a5c('0x3e')]['id']}})[_0x3a5c('0x20')](function(_0x2366fa){if(_0x2366fa){return[_0x2366fa,![]];}return db[_0x3a5c('0x46')][_0x3a5c('0x44')](_0x4f6328)[_0x3a5c('0x20')](function(_0x5d9cf1){return[_0x5d9cf1,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x987084,_0x5be6ee){var _0x91bd44=_0x987084['get']({'plain':!![]});if(_0x5be6ee){if(_0x2f4d99[_0x3a5c('0x3e')][_0x3a5c('0x47')]){_0x2f4d99[_0x3a5c('0x3f')][_0x3a5c('0x48')]({'id':0x0,'priority':_0x2f4d99[_0x3a5c('0x3f')][_0x3a5c('0x43')]+0x1,'app':_0x3a5c('0x49'),'appdata':_0x3a5c('0x4a'),'interval':_0x3a5c('0x4b')});}_0x91bd44[_0x3a5c('0x4c')]=!![];}else{_0x91bd44[_0x3a5c('0x4c')]=![];}_0x2f4d99[_0x3a5c('0x4d')]=_0x91bd44;return db[_0x3a5c('0x4e')][_0x3a5c('0x44')]({'body':_0x2ca784['body'][_0x3a5c('0x22')],'FaxAccountId':_0x2ca784[_0x3a5c('0x3e')]['id'],'FaxInteractionId':_0x987084['id'],'direction':'in','ContactId':_0x987084[_0x3a5c('0x4f')],'AttachmentId':_0x2ca784[_0x3a5c('0x22')][_0x3a5c('0x50')]});})[_0x3a5c('0x20')](function(_0x31d5c0){_0x2f4d99[_0x3a5c('0x13')]=_0x31d5c0;if(_0x2f4d99[_0x3a5c('0x4d')]['UserId']){return db['User']['find']({'attributes':['id',_0x3a5c('0x51')],'where':{'id':_0x2f4d99[_0x3a5c('0x4d')][_0x3a5c('0x52')]}})['then'](function(_0x30b39e){if(_0x30b39e){_0x2f4d99[_0x3a5c('0x3f')][_0x3a5c('0x53')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x30b39e[_0x3a5c('0x51')]+','+(_0x2f4d99[_0x3a5c('0x3e')]['waitForTheAssignedAgent']||0xa),'interval':_0x3a5c('0x4b')});}return respondWithRpcPromise(_0x3a5c('0x54'),'startRouting',_0x2f4d99);});}return respondWithRpcPromise('Start',_0x3a5c('0x55'),_0x2f4d99);})['then'](function(_0x3db4c9){_0x27b1c3(_0x3db4c9);})['catch'](function(_0x45aeea){_0x5e816d(_0x5d223a[_0x3a5c('0x12')](0x1f4,_0x45aeea['message']));});});};