import { isDefined } from "../../utils/helpers"; /** @type {import("../utils/api-proxy").APIProxyOptions} */ export const APIConfig = { gateway: "/api/dm", endpoints: { /** Project base info */ project: "/project", /** Available columns/fields of the dataset */ columns: "/columns", /** Tabs (materialized views) */ tabs: "/views", /** Creates a new tab */ createTab: "POST:/views", /** Update particular tab (PATCH) */ updateTab: "PATCH:/views/:tabID", /** Delete particular tab (DELETE) */ deleteTab: "DELETE:/views/:tabID", /** Per-task annotations (annotations, predictions) */ annotations: "/views/:tabID/annotations", /** Single task (sample) */ task: "/../tasks/:taskID", /** List of tasks (samples) in the dataset */ tasks: "/../tasks", /** Next task (labelstream, default sequential) */ nextTask: "/tasks/next", /** Single annotation */ annotation: "/../annotations/:id", /** Mark sample as skipped */ skipTask: { method: "post", path: (params) => { const pathBase = "/../tasks/:taskID/annotations"; const isNewAnnotation = !isDefined(params.annotationID); return isNewAnnotation ? pathBase : `${pathBase}/:annotationID`; }, }, /** Submit annotation */ submitAnnotation: "POST:/../tasks/:taskID/annotations", /** Update annotation */ updateAnnotation: "PATCH:/../annotations/:annotationID", /** Delete annotation */ deleteAnnotation: "DELETE:/../annotations/:annotationID", /** Override selected items list (checkboxes) */ setSelectedItems: "POST:/views/:tabID/selected-items", /** Add item to the current selection */ addSelectedItem: "PATCH:/views/:tabID/selected-items", /** List of available actions */ actions: "/actions", /** Subtract item from the current selection */ deleteSelectedItem: "DELETE:/views/:tabID/selected-items", /** Invoke a particular action */ invokeAction: "POST:/actions", }, };