Skip to content

Commit b48e975

Browse files
authored
Merge pull request galaxyproject#19305 from jmchilton/sample_sheets
Implement Sample Sheets
2 parents 393e005 + c7e8152 commit b48e975

113 files changed

Lines changed: 6504 additions & 235 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

client/src/api/datasetCollections.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,21 @@ import {
88
type HDCASummary,
99
isHDCA,
1010
} from "@/api";
11+
import type { components } from "@/api/schema";
1112
import { rethrowSimple } from "@/utils/simple-error";
1213

1314
const DEFAULT_LIMIT = 50;
1415

1516
export type CollectionType = string;
1617

18+
export type SampleSheetCollectionType =
19+
| "sample_sheet"
20+
| "sample_sheet:paired"
21+
| "sample_sheet:paired_or_unpaired"
22+
| "sample_sheet:record";
23+
// mirror the python definition here
24+
export type SampleSheetColumnValueT = string | number | boolean;
25+
1726
/**
1827
* Fetches the details of a collection.
1928
* @param params.id The ID of the collection (HDCA) to fetch.
@@ -126,3 +135,34 @@ export async function createHistoryDatasetCollectionInstanceFull(payload: Create
126135
}
127136
return data;
128137
}
138+
139+
export type CreateWorkbookForCollectionPayload = components["schemas"]["CreateWorkbookForCollectionApi"];
140+
export type CreateWorkbookPayload = components["schemas"]["CreateWorkbookRequest"];
141+
142+
export async function createWorkbook(payload: CreateWorkbookPayload): Promise<Blob> {
143+
const { data, error } = await GalaxyApi().POST("/api/sample_sheet_workbook", {
144+
body: payload,
145+
parseAs: "blob",
146+
});
147+
148+
if (error) {
149+
rethrowSimple(error);
150+
}
151+
return data;
152+
}
153+
154+
export async function createWorkbookForCollection(
155+
hdca_id: string,
156+
payload: CreateWorkbookForCollectionPayload
157+
): Promise<Blob> {
158+
const { data, error } = await GalaxyApi().POST("/api/dataset_collections/{hdca_id}/sample_sheet_workbook", {
159+
params: { path: { hdca_id: hdca_id } },
160+
body: payload,
161+
parseAs: "blob",
162+
});
163+
164+
if (error) {
165+
rethrowSimple(error);
166+
}
167+
return data;
168+
}

client/src/api/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,10 @@ export type ObjectExportTaskResponse = components["schemas"]["ObjectExportTaskRe
327327
export type ExportObjectRequestMetadata = components["schemas"]["ExportObjectRequestMetadata"];
328328
export type ExportObjectResultMetadata = components["schemas"]["ExportObjectResultMetadata"];
329329

330+
export type SampleSheetColumnDefinition = components["schemas"]["SampleSheetColumnDefinitionModel"];
331+
export type SampleSheetColumnDefinitionType = SampleSheetColumnDefinition["type"];
332+
export type SampleSheetColumnDefinitions = SampleSheetColumnDefinition[] | null;
333+
330334
export type AsyncTaskResultSummary = components["schemas"]["AsyncTaskResultSummary"];
331335

332336
export type CollectionElementIdentifiers = components["schemas"]["CollectionElementIdentifier"][];

client/src/api/jobs.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ export type JobInputSummary = components["schemas"]["JobInputSummary"];
88
export type JobDisplayParametersSummary = components["schemas"]["JobDisplayParametersSummary"];
99
export type JobMetric = components["schemas"]["JobMetric"];
1010

11+
export const NON_TERMINAL_STATES = ["new", "queued", "running", "waiting", "paused", "resubmitted", "stop"];
12+
export const ERROR_STATES = ["error", "deleted", "deleting"];
13+
export const TERMINAL_STATES = ["ok", "skipped", "stop", "stopping", "skipped"].concat(ERROR_STATES);
14+
1115
interface JobDef {
1216
tool_id: string;
1317
}

0 commit comments

Comments
 (0)