File size: 525 Bytes
e43a4a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { HttpError } from "../utils/httpError.js";

export function createMediaController({ mediaStore }) {
  return function mediaController(req, res, next) {
    try {
      const media = mediaStore.get(req.params.mediaId);
      if (!media) {
        throw new HttpError(404, "Media file not found or expired.");
      }

      res.setHeader("content-type", media.mimeType);
      res.setHeader("cache-control", "private, max-age=3600");
      res.send(media.buffer);
    } catch (error) {
      next(error);
    }
  };
}