ReaderController.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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.url)
  16. throw new Error(`key 'url' is empty`);
  17. const workerId = this.readerWorker.loadBookUrl(request.url);
  18. const state = workerState.getState(workerId);
  19. return (state ? state : {});
  20. } catch (e) {
  21. error = e.message;
  22. }
  23. //bad request
  24. res.status(400).send({error});
  25. return false;
  26. }
  27. async uploadFile(req, res) {
  28. const file = req.file;
  29. let error = '';
  30. try {
  31. const url = await this.readerWorker.saveFile(file);
  32. return {url};
  33. } catch (e) {
  34. error = e.message;
  35. }
  36. //bad request
  37. res.status(400).send({error});
  38. return false;
  39. }
  40. }
  41. module.exports = ReaderController;