Skip to content

Commit 7272718

Browse files
committed
feat(server): Update getDraftHead to resolve modified time from commit history
1 parent 592d31f commit 7272718

File tree

3 files changed

+23
-9
lines changed

3 files changed

+23
-9
lines changed

packages/openneuro-server/src/datalad/dataset.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,26 @@ export const createDataset = async (
6969
}
7070
}
7171

72+
interface WorkerDraftFields {
73+
// Commit id hash
74+
ref: string
75+
// Commit tree ref
76+
tree: string
77+
// Commit message
78+
message: string
79+
// Commit author time
80+
modified: string
81+
}
82+
7283
/**
7384
* Return the latest commit
7485
* @param {string} id Dataset accession number
7586
*/
76-
export const getDraftHead = async (id) => {
87+
export const getDraftHead = async (id): Promise<WorkerDraftFields> => {
7788
const draftRes = await request
7889
.get(`${getDatasetWorker(id)}/datasets/${id}/draft`)
7990
.set("Accept", "application/json")
80-
return draftRes.body.hexsha
91+
return draftRes.body
8192
}
8293

8394
/**
@@ -87,7 +98,7 @@ export const getDataset = async (id) => {
8798
const dataset = await Dataset.findOne({ id }).lean()
8899
return {
89100
...dataset,
90-
revision: await getDraftHead(id),
101+
revision: (await getDraftHead(id)).ref,
91102
}
92103
}
93104

packages/openneuro-server/src/graphql/resolvers/dataset.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,14 @@ const worker = (obj) => getDatasetWorker(obj.id)
276276
*/
277277
const Dataset = {
278278
uploader: (ds) => user(ds, { id: ds.uploader }),
279-
draft: async (obj) => ({
280-
id: obj.id,
281-
revision: await datalad.getDraftHead(obj.id),
282-
modified: obj.modified,
283-
}),
279+
draft: async (obj) => {
280+
const draftHead = await datalad.getDraftHead(obj.id)
281+
return {
282+
id: obj.id,
283+
revision: draftHead.ref,
284+
modified: draftHead.modified,
285+
}
286+
},
284287
snapshots,
285288
latestSnapshot,
286289
analytics,

packages/openneuro-server/src/graphql/resolvers/snapshots.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ export const latestSnapshot = async (obj, _, context) => {
227227
// In the case where there are no real snapshots, return most recent commit as snapshot
228228
return await snapshot(
229229
obj,
230-
{ datasetId: obj.id, tag: await getDraftHead(obj.id) },
230+
{ datasetId: obj.id, tag: (await getDraftHead(obj.id)).ref },
231231
context,
232232
)
233233
}

0 commit comments

Comments
 (0)