Работа над api reader, worker

This commit is contained in:
Book Pauk
2019-01-11 22:20:25 +07:00
parent 33caf94988
commit 75bed20f0c
8 changed files with 181 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
const log = require('../core/getLogger').getLog();
const BaseController = require('./BaseController');
const log = require('../core/getLogger').getLog();
const _ = require('lodash');
class MiscController extends BaseController {

View File

@@ -0,0 +1,39 @@
const BaseController = require('./BaseController');
const ReaderWorker = require('../core/ReaderWorker');
const workerState = require('../core/workerState');
//const log = require('../core/getLogger').getLog();
//const _ = require('lodash');
class ReaderController extends BaseController {
constructor(connPool, config) {
super(connPool, config);
this.readerWorker = new ReaderWorker(config);
}
async loadBook(req, res) {
const request = req.body;
let error = '';
try {
if (!request.type || !(request.type == 'url' || request.type == 'file'))
throw new Error(`key 'type' is wrong`);
if (request.type == 'file')
throw new Error(`file loading is not supported yet`);
if (request.type == 'url') {
if (!request.url)
throw new Error(`key 'url' is empty`);
const workerId = this.readerWorker.loadBookUrl(request.url);
const state = workerState.getState(workerId);
return (state ? state : {});
}
} catch (e) {
error = e.message;
}
//bad request
res.status(400).send({error});
return false;
}
}
module.exports = ReaderController;

View File

@@ -0,0 +1,23 @@
const BaseController = require('./BaseController');
const workerState = require('../core/workerState');
class WorkerController extends BaseController {
async getState(req, res) {
const request = req.body;
let error = '';
try {
if (!request.workerId)
throw new Error(`key 'workerId' is wrong`);
const state = workerState.getState(request.workerId);
return (state ? state : {});
} catch (e) {
error = e.message;
}
//bad request
res.status(400).send({error});
return false;
}
}
module.exports = WorkerController;

View File

@@ -1,3 +1,5 @@
module.exports = {
MiscController: require('./MiscController'),
ReaderController: require('./ReaderController'),
WorkerController: require('./WorkerController'),
}