diff --git a/src/routes/getVideoLabel.ts b/src/routes/getVideoLabel.ts index a690ac28..4fc92589 100644 --- a/src/routes/getVideoLabel.ts +++ b/src/routes/getVideoLabel.ts @@ -5,6 +5,7 @@ import { SBRecord } from "../types/lib.model"; import { ActionType, Category, DBSegment, Service, VideoID, VideoIDHash } from "../types/segments.model"; import { Logger } from "../utils/logger"; import { QueryCacher } from "../utils/queryCacher"; +import { getEtag } from "../middleware/etag"; import { getService } from "../utils/getService"; interface FullVideoSegment { @@ -166,6 +167,10 @@ async function handleGetLabel(req: Request, res: Response): Promise res.set("ETag", etag)) + .catch(() => null); + if (hasStartSegment) { return segmentData; } else { diff --git a/src/routes/getVideoLabelByHash.ts b/src/routes/getVideoLabelByHash.ts index 076b7562..89425d88 100644 --- a/src/routes/getVideoLabelByHash.ts +++ b/src/routes/getVideoLabelByHash.ts @@ -2,6 +2,7 @@ import { hashPrefixTester } from "../utils/hashPrefixTester"; import { getLabelsByHash } from "./getVideoLabel"; import { Request, Response } from "express"; import { VideoIDHash, Service } from "../types/segments.model"; +import { getEtag } from "../middleware/etag"; import { getService } from "../utils/getService"; export async function getVideoLabelsByHash(req: Request, res: Response): Promise { @@ -25,5 +26,11 @@ export async function getVideoLabelsByHash(req: Request, res: Response): Promise segments: data.segments, hasStartSegment: data.hasStartSegment })); + + + const hashKey = hashPrefix.length === 4 ? "videoLabelHash" : "videoLabelsLargerHash"; + await getEtag(hashKey, hashPrefix, service) + .then(etag => res.set("ETag", etag)) + .catch(() => null); return res.status(output.length === 0 ? 404 : 200).json(output); }