From b4e7b435d8cf5b1e5f60e07273648f38ad866293 Mon Sep 17 00:00:00 2001 From: airslice Date: Wed, 12 Nov 2025 09:27:49 +0800 Subject: [PATCH] fix: apply new cms integration api structure --- public/reearth.yml | 9 ++++++++- src/extensions/visualizer/main/hooks.ts | 12 ++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/public/reearth.yml b/public/reearth.yml index 63b0f8b..9cf9700 100644 --- a/public/reearth.yml +++ b/public/reearth.yml @@ -46,6 +46,13 @@ extensions: field: data_source_type type: string value: cms_integration_api + - id: cms_workspace_id + title: CMS Workspace ID + type: string + availableIf: + field: data_source_type + type: string + value: cms_integration_api - id: cms_project_id title: CMS Project ID type: string @@ -119,7 +126,7 @@ extensions: fields: - id: display_fields title: Display Fields - description: "Specify the fields to display in the infobox, separated by commas. Left empty to show all fields." + description: "Specify the fields to display in the infobox, please use field keys separated by commas. Left empty to show all fields." type: string ui: multiline - id: inspector_block diff --git a/src/extensions/visualizer/main/hooks.ts b/src/extensions/visualizer/main/hooks.ts index f9b6267..91d74ec 100644 --- a/src/extensions/visualizer/main/hooks.ts +++ b/src/extensions/visualizer/main/hooks.ts @@ -9,6 +9,7 @@ type WidgetProperty = { server_api_key?: string; integration_api_base_url?: string; integration_api_key?: string; + cms_workspace_id?: string; cms_project_id?: string; cms_model_id?: string; value_filters?: string; @@ -99,11 +100,12 @@ export default () => { if ( !widgetProperty.api.integration_api_base_url || !widgetProperty.api.integration_api_key || + !widgetProperty.api.cms_workspace_id || !widgetProperty.api.cms_project_id || !widgetProperty.api.cms_model_id ) { console.warn( - "Please set the Integration API Base URL, Integration API Key, CMS Project ID, and CMS Model ID in the widget properties." + "Please set the Integration API Base URL, Integration API Key, CMS Workspace ID, CMS Project ID, and CMS Model ID in the widget properties." ); return; } @@ -111,7 +113,8 @@ export default () => { // Fetch Assets with pagination let assets: Asset[]; try { - const baseUrl = `${widgetProperty.api.integration_api_base_url}/projects/${widgetProperty.api.cms_project_id}/assets`; + const baseUrl = `${widgetProperty.api.integration_api_base_url}/${widgetProperty.api.cms_workspace_id}/projects/${widgetProperty.api.cms_project_id}/assets`; + const headers = { "Content-Type": "application/json", Authorization: `Bearer ${widgetProperty.api.integration_api_key}`, @@ -163,7 +166,7 @@ export default () => { // Fetch Schema let schema: Schema; try { - const url = `${widgetProperty.api.integration_api_base_url}/models/${widgetProperty.api.cms_model_id}`; + const url = `${widgetProperty.api.integration_api_base_url}/${widgetProperty.api.cms_workspace_id}/projects/${widgetProperty.api.cms_project_id}/models/${widgetProperty.api.cms_model_id}`; const response = await fetch(url, { method: "GET", headers: { @@ -184,7 +187,8 @@ export default () => { // Fetch Items with pagination try { - const baseUrl = `${widgetProperty.api.integration_api_base_url}/models/${widgetProperty.api.cms_model_id}/items`; + const baseUrl = `${widgetProperty.api.integration_api_base_url}/${widgetProperty.api.cms_workspace_id}/projects/${widgetProperty.api.cms_project_id}/models/${widgetProperty.api.cms_model_id}/items`; + const headers = { "Content-Type": "application/json", Authorization: `Bearer ${widgetProperty.api.integration_api_key}`,