From 96c19a33e900f5a87abf534c432f81950f48e794 Mon Sep 17 00:00:00 2001 From: Jacob Walls Date: Thu, 20 Feb 2025 12:35:23 -0500 Subject: [PATCH] Remove tileId param from upsertLingoTile #218 --- arches_lingo/src/arches_lingo/api.ts | 11 ++++--- .../components/generic/LabelEditor.vue | 3 +- .../components/generic/NoteEditor.vue | 3 +- arches_lingo/src/arches_lingo/types.ts | 30 ++++++------------- 4 files changed, 16 insertions(+), 31 deletions(-) diff --git a/arches_lingo/src/arches_lingo/api.ts b/arches_lingo/src/arches_lingo/api.ts index 7b1d0224..60a3cddd 100644 --- a/arches_lingo/src/arches_lingo/api.ts +++ b/arches_lingo/src/arches_lingo/api.ts @@ -1,7 +1,7 @@ import arches from "arches"; import Cookies from "js-cookie"; -import type { SchemeInstance, SchemeTile } from "@/arches_lingo/types"; +import type { SchemeInstance, TileData } from "@/arches_lingo/types"; function getToken() { const token = Cookies.get("csrftoken"); @@ -99,14 +99,13 @@ export const updateLingoResource = async ( export const upsertLingoTile = async ( graphSlug: string, nodegroupAlias: string, - tileData: SchemeTile, // TODO: generalize type - tileId: string | undefined, + tileData: TileData, ) => { - const url = tileId + const url = tileData.tileid ? arches.urls.api_lingo_tile : arches.urls.api_lingo_tiles; - const response = await fetch(url(graphSlug, nodegroupAlias, tileId), { - method: tileId ? "PATCH" : "POST", + const response = await fetch(url(graphSlug, nodegroupAlias, tileData.tileid), { + method: tileData.tileid ? "PATCH" : "POST", headers: { "X-CSRFTOKEN": getToken(), "Content-Type": "application/json", diff --git a/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue b/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue index 87269ff6..63a6eee8 100644 --- a/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue +++ b/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue @@ -151,9 +151,8 @@ async function save() { "appellative_status", { resourceinstance: route.params.id as string, - ...formValue.value, + ...formValue.value, // includes tileid }, - formValue.value.tileid, ); newTileId = updated.tileid; } diff --git a/arches_lingo/src/arches_lingo/components/generic/NoteEditor.vue b/arches_lingo/src/arches_lingo/components/generic/NoteEditor.vue index b0b55c28..4695f71a 100644 --- a/arches_lingo/src/arches_lingo/components/generic/NoteEditor.vue +++ b/arches_lingo/src/arches_lingo/components/generic/NoteEditor.vue @@ -188,9 +188,8 @@ async function save() { "statement", { resourceinstance: route.params.id as string, - ...formValue.value, + ...formValue.value, // includes tileid }, - formValue.value.tileid, ); newTileId = updated.tileid; } diff --git a/arches_lingo/src/arches_lingo/types.ts b/arches_lingo/src/arches_lingo/types.ts index b16c1ae8..2949e341 100644 --- a/arches_lingo/src/arches_lingo/types.ts +++ b/arches_lingo/src/arches_lingo/types.ts @@ -114,9 +114,12 @@ export interface MetaStringText { noRecords: string; } -export interface AppellativeStatus { +export interface TileData { resourceinstance?: string; tileid?: string; +} + +export interface AppellativeStatus extends TileData { appellative_status_ascribed_name_content: string; appellative_status_ascribed_name_language?: ControlledListItem[]; appellative_status_ascribed_relation?: ControlledListItem[]; @@ -129,9 +132,7 @@ export interface AppellativeStatus { appellative_status_timespan_end_of_the_end: string; } -export interface SchemeStatement { - resourceinstance?: string; - tileid?: string; +export interface SchemeStatement extends TileData { statement_content_n1: string; statement_language_n1?: ControlledListItem[]; statement_type_n1?: ControlledListItem[]; @@ -143,15 +144,13 @@ export interface SchemeStatement { statement_data_assignment_timespan_end_of_the_end: string; } -export interface SchemeRights { - tileid?: string; +export interface SchemeRights extends TileData { right_holder?: ResourceInstanceReference[]; right_type?: ControlledListItem[]; right_statement?: SchemeRightStatement; } -export interface SchemeRightStatement { - tileid?: string; +export interface SchemeRightStatement extends TileData { right_statement_content?: string; right_statement_label?: string; right_statement_language?: ControlledListItem[]; @@ -159,26 +158,15 @@ export interface SchemeRightStatement { right_statement_type_metatype?: ControlledListItem[]; } -export interface SchemeNamespace { - resourceinstance?: string; - tileid?: string; +export interface SchemeNamespace extends TileData { namespace_name: string; namespace_type: ControlledListItem[]; } -export interface SchemeCreation { - resourceinstance?: string; - tileid?: string; +export interface SchemeCreation extends TileData { creation_sources: ResourceInstanceReference[]; } -export type SchemeTile = - | AppellativeStatus - | SchemeStatement - | SchemeNamespace - | SchemeCreation - | SchemeRights; - export interface SchemeInstance { namespace?: SchemeNamespace; creation?: SchemeCreation;