diff --git a/services/project-history/app/js/HttpController.js b/services/project-history/app/js/HttpController.js index 7c64ea8d26..d0880fea7b 100644 --- a/services/project-history/app/js/HttpController.js +++ b/services/project-history/app/js/HttpController.js @@ -23,7 +23,7 @@ const ONE_DAY_IN_SECONDS = 24 * 60 * 60 const getProjectBlobSchema = z.object({ params: z.object({ - history_id: zz.objectId(), + history_id: zz.objectId().or(z.coerce.number()), hash: z.string(), }), }) diff --git a/services/project-history/test/acceptance/js/NumericProjectIdTests.js b/services/project-history/test/acceptance/js/NumericProjectIdTests.js index d4d8180e9c..1575a358e4 100644 --- a/services/project-history/test/acceptance/js/NumericProjectIdTests.js +++ b/services/project-history/test/acceptance/js/NumericProjectIdTests.js @@ -136,4 +136,20 @@ describe('NumericProjectId', function () { }) expect(response.statusCode).to.equal(200) }) + + it('should accept numeric history_id for getProjectBlob', async function () { + const blobHash = 'a'.repeat(40) + const blobContent = 'test blob content' + + MockHistoryStore() + .get(`/api/projects/${this.historyId}/blobs/${blobHash}`) + .reply(200, blobContent) + + const { response, body } = await makeRequest({ + method: 'GET', + url: `http://127.0.0.1:3054/project/${this.historyId}/blob/${blobHash}`, + }) + expect(response.statusCode).to.equal(200) + expect(body).to.equal(blobContent) + }) })