ReaderController.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. const BaseController = require('./BaseController');
  2. const ReaderWorker = require('../core/ReaderWorker');
  3. const workerState = require('../core/workerState');
  4. //const log = require('../core/getLogger').getLog();
  5. //const _ = require('lodash');
  6. class ReaderController extends BaseController {
  7. constructor(connPool, config) {
  8. super(connPool, config);
  9. this.readerWorker = new ReaderWorker(config);
  10. }
  11. async loadBook(req, res) {
  12. const request = req.body;
  13. let error = '';
  14. try {
  15. if (!request.type || !(request.type == 'url' || request.type == 'file'))
  16. throw new Error(`key 'type' is wrong`);
  17. if (request.type == 'file')
  18. throw new Error(`file loading is not supported yet`);
  19. if (request.type == 'url') {
  20. if (!request.url)
  21. throw new Error(`key 'url' is empty`);
  22. const workerId = this.readerWorker.loadBookUrl(request.url);
  23. const state = workerState.getState(workerId);
  24. return (state ? state : {});
  25. }
  26. } catch (e) {
  27. error = e.message;
  28. }
  29. //bad request
  30. res.status(400).send({error});
  31. return false;
  32. }
  33. }
  34. module.exports = ReaderController;