plugins-extention.ts 698 B

1234567891011121314151617181920212223242526272829
  1. import express, { Request } from 'express';
  2. import Crowi from '../../crowi';
  3. import { ApiV3Response } from './interfaces/apiv3-response';
  4. type PluginInstallerFormRequest = Request & { form: any };
  5. module.exports = (crowi: Crowi) => {
  6. const router = express.Router();
  7. const { pluginService } = crowi;
  8. router.post('/', async(req: PluginInstallerFormRequest, res: ApiV3Response) => {
  9. if (pluginService == null) {
  10. return res.apiv3Err(400);
  11. }
  12. try {
  13. await pluginService.install(crowi, req.body.pluginInstallerForm);
  14. return res.apiv3({});
  15. }
  16. catch (err) {
  17. // TODO: error handling
  18. return res.apiv3Err(err, 400);
  19. }
  20. });
  21. return router;
  22. };