get-brand-logo.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import express from 'express';
  2. import type {
  3. Response, Router,
  4. } from 'express';
  5. import type { CrowiRequest } from '~/interfaces/crowi-request';
  6. import loggerFactory from '~/utils/logger';
  7. import type Crowi from '../../crowi';
  8. import { AttachmentType } from '../../interfaces/attachment';
  9. import { generateCertifyBrandLogoMiddleware } from '../../middlewares/certify-brand-logo';
  10. import { Attachment } from '../../models';
  11. import ApiResponse from '../../util/apiResponse';
  12. import { getActionFactory } from './get';
  13. const logger = loggerFactory('growi:routes:attachment:get-brand-logo');
  14. export const getBrandLogoRouterFactory = (crowi: Crowi): Router => {
  15. const certifyBrandLogo = generateCertifyBrandLogoMiddleware(crowi);
  16. const loginRequired = require('../../middlewares/login-required')(crowi, true);
  17. const router = express.Router();
  18. router.get('/brand-logo', certifyBrandLogo, loginRequired, async(req: CrowiRequest, res: Response) => {
  19. const brandLogoAttachment = await Attachment.findOne({ attachmentType: AttachmentType.BRAND_LOGO });
  20. if (brandLogoAttachment == null) {
  21. return res.status(404).json(ApiResponse.error('Brand logo does not exist'));
  22. }
  23. const getAction = getActionFactory(crowi, brandLogoAttachment);
  24. getAction(req, res);
  25. });
  26. return router;
  27. };