From ff085aadf59bb976a21bd46bc8ee07f41a09f97f Mon Sep 17 00:00:00 2001 From: mrjvs Date: Wed, 3 Sep 2025 19:57:38 +0200 Subject: [PATCH] feat: use file hashes and title_id hashes for data retrieval --- src/models/task.ts | 1 + src/services/npdi.ts | 7 ++++--- src/services/npts.ts | 8 ++++---- src/types/mongoose/task.ts | 1 + 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/models/task.ts b/src/models/task.ts index ac06bf8..a9dc840 100644 --- a/src/models/task.ts +++ b/src/models/task.ts @@ -15,6 +15,7 @@ const TaskSchema = new mongoose.Schema({ enum: ['open'] // TODO - What else is there? }, title_id: String, + title_id_hash: String, description: Number, created: BigInt, updated: BigInt diff --git a/src/services/npdi.ts b/src/services/npdi.ts index 48f3942..9ccff48 100644 --- a/src/services/npdi.ts +++ b/src/services/npdi.ts @@ -6,11 +6,12 @@ import { getCdnFileAsStream, streamFileToResponse } from '@/cdn'; const npdi = express.Router(); -npdi.get('/p01/data/1/:titleHash/:dataID/:fileHash', async (request, response) => { - const { dataID } = request.params; +npdi.get('/p01/data/1/:titleIdHash/:dataId/:fileHash', async (request, response) => { + const { dataId, fileHash } = request.params; const file = await File.findOne({ - data_id: dataID + data_id: dataId, + hash: fileHash }); if (!file) { return response.sendStatus(404); diff --git a/src/services/npts.ts b/src/services/npts.ts index ff0235b..073138f 100644 --- a/src/services/npts.ts +++ b/src/services/npts.ts @@ -10,12 +10,12 @@ import { File } from '@/models/file'; const npts = express.Router(); -npts.get('/p01/tasksheet/:id/:hash/:taskId', async (request, response) => { - const { id, taskId } = request.params; +npts.get('/p01/tasksheet/:id/:titleIdHash/:taskId', async (request, response) => { + const { titleIdHash, taskId } = request.params; const task = await Task.findOne({ - title_id: id, - id: taskId + id: taskId, + title_id_hash: titleIdHash }); if (!task) { return response.sendStatus(404); diff --git a/src/types/mongoose/task.ts b/src/types/mongoose/task.ts index 9204472..73ae894 100644 --- a/src/types/mongoose/task.ts +++ b/src/types/mongoose/task.ts @@ -8,6 +8,7 @@ export interface ITask { creator_pid: number; status: 'open'; // TODO - Make this a union. What else is there? title_id: string; + title_id_hash: string; description: string; created: bigint; updated: bigint;