diff --git a/apps/web/src/api-clients/_common/composables/use-query-key.ts b/apps/web/src/api-clients/_common/composables/use-query-key.ts new file mode 100644 index 0000000000..f5ab16645c --- /dev/null +++ b/apps/web/src/api-clients/_common/composables/use-query-key.ts @@ -0,0 +1,41 @@ +import type { ComputedRef } from 'vue'; +import { computed, reactive } from 'vue'; + + +import type { QueryKey } from '@tanstack/vue-query'; + +import { useAppContextStore } from '@/store/app-context/app-context-store'; +import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; + +/** + * Generates a computed query key for API requests, incorporating global parameters. + * + * @param primaryQueryKey - The primary key for the api query (e.g., 'private-dashboard/get'). It follows the `{api-resource-name}/{api-verb}` convention. + * @param additionalGlobalParams - Optional additional global parameters to include in the api query key. + * @returns A computed reference to the query key array. + */ + +interface GlobalQueryParams { + workspaceId?: string; + isAdminMode?: boolean; +} +export const useAPIQueryKey = ( + primaryQueryKey: string, + additionalGlobalParams?: Partial, +): ComputedRef => { + const appContextStore = useAppContextStore(); + const userWorkspaceStore = useUserWorkspaceStore(); + + const _state = reactive({ + currentWorkdpaceId: computed(() => userWorkspaceStore.getters.currentWorkspaceId), + isAdminMode: computed(() => appContextStore.getters.isAdminMode), + }); + + const globalQueryParams = reactive({ + workspaceId: _state.currentWorkdpaceId, + isAdminMode: _state.isAdminMode, + ...additionalGlobalParams, + }); + + return computed(() => [primaryQueryKey, { ...globalQueryParams }]); +}; diff --git a/apps/web/src/schema/_common/api-verbs/analyze.ts b/apps/web/src/api-clients/_common/schema/api-verbs/analyze.ts similarity index 100% rename from apps/web/src/schema/_common/api-verbs/analyze.ts rename to apps/web/src/api-clients/_common/schema/api-verbs/analyze.ts diff --git a/apps/web/src/schema/_common/api-verbs/export.ts b/apps/web/src/api-clients/_common/schema/api-verbs/export.ts similarity index 100% rename from apps/web/src/schema/_common/api-verbs/export.ts rename to apps/web/src/api-clients/_common/schema/api-verbs/export.ts diff --git a/apps/web/src/schema/_common/api-verbs/list.ts b/apps/web/src/api-clients/_common/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/_common/api-verbs/list.ts rename to apps/web/src/api-clients/_common/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/_common/constant.ts b/apps/web/src/api-clients/_common/schema/constant.ts similarity index 100% rename from apps/web/src/schema/_common/constant.ts rename to apps/web/src/api-clients/_common/schema/constant.ts diff --git a/apps/web/src/schema/_common/model.ts b/apps/web/src/api-clients/_common/schema/model.ts similarity index 100% rename from apps/web/src/schema/_common/model.ts rename to apps/web/src/api-clients/_common/schema/model.ts diff --git a/apps/web/src/schema/_common/type.ts b/apps/web/src/api-clients/_common/schema/type.ts similarity index 73% rename from apps/web/src/schema/_common/type.ts rename to apps/web/src/api-clients/_common/schema/type.ts index 7857281650..54ccf642bd 100644 --- a/apps/web/src/schema/_common/type.ts +++ b/apps/web/src/api-clients/_common/schema/type.ts @@ -1,4 +1,4 @@ -import type { RESOURCE_GROUP } from '@/schema/_common/constant'; +import type { RESOURCE_GROUP } from '@/api-clients/_common/schema/constant'; export type ResourceGroupType = typeof RESOURCE_GROUP[keyof typeof RESOURCE_GROUP]; diff --git a/apps/web/src/schema/add-ons/favorite/list.ts b/apps/web/src/api-clients/add-ons/favorite/schema/list.ts similarity index 57% rename from apps/web/src/schema/add-ons/favorite/list.ts rename to apps/web/src/api-clients/add-ons/favorite/schema/list.ts index 37fb8370a9..58ace2baa1 100644 --- a/apps/web/src/schema/add-ons/favorite/list.ts +++ b/apps/web/src/api-clients/add-ons/favorite/schema/list.ts @@ -1,5 +1,5 @@ -import type { ListResponse } from '@/schema/_common/api-verbs/list'; -import type { FavoriteModel } from '@/schema/add-ons/favorite/model'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { FavoriteModel } from '@/api-clients/add-ons/favorite/schema/model'; import type { FavoriteType } from '@/common/modules/favorites/favorite-button/type'; diff --git a/apps/web/src/schema/add-ons/favorite/model.ts b/apps/web/src/api-clients/add-ons/favorite/schema/model.ts similarity index 100% rename from apps/web/src/schema/add-ons/favorite/model.ts rename to apps/web/src/api-clients/add-ons/favorite/schema/model.ts diff --git a/apps/web/src/api-clients/cost-analysis/budget-usage/composables/use-budget-usage-api.ts b/apps/web/src/api-clients/cost-analysis/budget-usage/composables/use-budget-usage-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/budget-usage/api-verbs/analyze.ts b/apps/web/src/api-clients/cost-analysis/budget-usage/schema/api-verbs/analyze.ts similarity index 88% rename from apps/web/src/schema/cost-analysis/budget-usage/api-verbs/analyze.ts rename to apps/web/src/api-clients/cost-analysis/budget-usage/schema/api-verbs/analyze.ts index 427508fab4..4c68386e74 100644 --- a/apps/web/src/schema/cost-analysis/budget-usage/api-verbs/analyze.ts +++ b/apps/web/src/api-clients/cost-analysis/budget-usage/schema/api-verbs/analyze.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; export interface BudgetUsageAnalyzeParameters { diff --git a/apps/web/src/schema/cost-analysis/budget-usage/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/budget-usage/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/budget-usage/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/budget-usage/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/cost-analysis/budget-usage/model.ts b/apps/web/src/api-clients/cost-analysis/budget-usage/schema/model.ts similarity index 87% rename from apps/web/src/schema/cost-analysis/budget-usage/model.ts rename to apps/web/src/api-clients/cost-analysis/budget-usage/schema/model.ts index aba4f3be26..099704073c 100644 --- a/apps/web/src/schema/cost-analysis/budget-usage/model.ts +++ b/apps/web/src/api-clients/cost-analysis/budget-usage/schema/model.ts @@ -1,4 +1,4 @@ -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import type { Currency } from '@/store/display/type'; diff --git a/apps/web/src/api-clients/cost-analysis/budget/composables/use-budget-api.ts b/apps/web/src/api-clients/cost-analysis/budget/composables/use-budget-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/budget/api-verbs/create.ts b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/create.ts similarity index 72% rename from apps/web/src/schema/cost-analysis/budget/api-verbs/create.ts rename to apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/create.ts index c197f3abe1..23f7c15dfd 100644 --- a/apps/web/src/schema/cost-analysis/budget/api-verbs/create.ts +++ b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/create.ts @@ -1,8 +1,8 @@ -import type { Tags } from '@/schema/_common/model'; -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import type { BudgetNotification, BudgetPlannedLimit, BudgetTimeUnit, ProviderFilter, -} from '@/schema/cost-analysis/budget/type'; +} from '@/api-clients/cost-analysis/budget/schema/type'; export interface BudgetCreateParameters { data_source_id: string; diff --git a/apps/web/src/schema/cost-analysis/budget/api-verbs/delete.ts b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/budget/api-verbs/delete.ts rename to apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/cost-analysis/budget/api-verbs/get.ts b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/budget/api-verbs/get.ts rename to apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/cost-analysis/budget/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/list.ts similarity index 77% rename from apps/web/src/schema/cost-analysis/budget/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/list.ts index 19555094ea..5168491fe1 100644 --- a/apps/web/src/schema/cost-analysis/budget/api-verbs/list.ts +++ b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { BudgetTimeUnit } from '@/schema/cost-analysis/budget/type'; +import type { BudgetTimeUnit } from '@/api-clients/cost-analysis/budget/schema/type'; export interface BudgetListParameters { query?: Query diff --git a/apps/web/src/schema/cost-analysis/budget/api-verbs/set-notification.ts b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/set-notification.ts similarity index 56% rename from apps/web/src/schema/cost-analysis/budget/api-verbs/set-notification.ts rename to apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/set-notification.ts index 27b5098439..050fac8446 100644 --- a/apps/web/src/schema/cost-analysis/budget/api-verbs/set-notification.ts +++ b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/set-notification.ts @@ -1,4 +1,4 @@ -import type { BudgetNotification } from '@/schema/cost-analysis/budget/type'; +import type { BudgetNotification } from '@/api-clients/cost-analysis/budget/schema/type'; export interface BudgetSetNotificationParameters { budget_id: string; diff --git a/apps/web/src/schema/cost-analysis/budget/api-verbs/update.ts b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/update.ts similarity index 52% rename from apps/web/src/schema/cost-analysis/budget/api-verbs/update.ts rename to apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/update.ts index 8af40b8570..eebbefe2f3 100644 --- a/apps/web/src/schema/cost-analysis/budget/api-verbs/update.ts +++ b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { BudgetPlannedLimit } from '@/schema/cost-analysis/budget/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { BudgetPlannedLimit } from '@/api-clients/cost-analysis/budget/schema/type'; export interface BudgetUpdateParameters { budget_id: string; diff --git a/apps/web/src/schema/cost-analysis/budget/model.ts b/apps/web/src/api-clients/cost-analysis/budget/schema/model.ts similarity index 77% rename from apps/web/src/schema/cost-analysis/budget/model.ts rename to apps/web/src/api-clients/cost-analysis/budget/schema/model.ts index 174294ebde..0ad8166b9d 100644 --- a/apps/web/src/schema/cost-analysis/budget/model.ts +++ b/apps/web/src/api-clients/cost-analysis/budget/schema/model.ts @@ -1,8 +1,8 @@ -import type { Tags } from '@/schema/_common/model'; -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import type { BudgetNotification, BudgetPlannedLimit, BudgetTimeUnit, ProviderFilter, -} from '@/schema/cost-analysis/budget/type'; +} from '@/api-clients/cost-analysis/budget/schema/type'; import type { Currency } from '@/store/display/type'; diff --git a/apps/web/src/schema/cost-analysis/budget/type.ts b/apps/web/src/api-clients/cost-analysis/budget/schema/type.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/budget/type.ts rename to apps/web/src/api-clients/cost-analysis/budget/schema/type.ts diff --git a/apps/web/src/api-clients/cost-analysis/cost-query-set/composables/use-cost-query-set-api.ts b/apps/web/src/api-clients/cost-analysis/cost-query-set/composables/use-cost-query-set-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/create.ts b/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/create.ts new file mode 100644 index 0000000000..8020415030 --- /dev/null +++ b/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/create.ts @@ -0,0 +1,10 @@ +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { CostQuerySetOption } from '@/api-clients/cost-analysis/cost-query-set/schema/type'; + + +export interface CostQuerySetCreateParameters { + data_source_id: string; + name: string; + options: CostQuerySetOption; + tags?: Tags; +} diff --git a/apps/web/src/schema/cost-analysis/cost-query-set/api-verbs/delete.ts b/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-query-set/api-verbs/delete.ts rename to apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/cost-analysis/cost-query-set/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-query-set/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/list.ts diff --git a/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/update.ts b/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/update.ts new file mode 100644 index 0000000000..da5249ee25 --- /dev/null +++ b/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/api-verbs/update.ts @@ -0,0 +1,10 @@ +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { CostQuerySetOption } from '@/api-clients/cost-analysis/cost-query-set/schema/type'; + + +export interface CostQuerySetUpdateParameters { + cost_query_set_id: string; + name?: string; + options?: CostQuerySetOption; + tags?: Tags; +} diff --git a/apps/web/src/schema/cost-analysis/cost-query-set/model.ts b/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/model.ts similarity index 63% rename from apps/web/src/schema/cost-analysis/cost-query-set/model.ts rename to apps/web/src/api-clients/cost-analysis/cost-query-set/schema/model.ts index 13e32a4a22..2649bf5443 100644 --- a/apps/web/src/schema/cost-analysis/cost-query-set/model.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/model.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { CostQuerySetOption } from '@/schema/cost-analysis/cost-query-set/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { CostQuerySetOption } from '@/api-clients/cost-analysis/cost-query-set/schema/type'; export interface CostQuerySetModel { diff --git a/apps/web/src/schema/cost-analysis/cost-query-set/type.ts b/apps/web/src/api-clients/cost-analysis/cost-query-set/schema/type.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-query-set/type.ts rename to apps/web/src/api-clients/cost-analysis/cost-query-set/schema/type.ts diff --git a/apps/web/src/api-clients/cost-analysis/cost-report-config/composables/use-cost-report-config-api.ts b/apps/web/src/api-clients/cost-analysis/cost-report-config/composables/use-cost-report-config-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/cost-report-config/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report-config/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/cost-analysis/cost-report-config/api-verbs/update-recipients.ts b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update-recipients.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report-config/api-verbs/update-recipients.ts rename to apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update-recipients.ts diff --git a/apps/web/src/schema/cost-analysis/cost-report-config/api-verbs/update.ts b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report-config/api-verbs/update.ts rename to apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/cost-analysis/cost-report-config/model.ts b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/model.ts similarity index 86% rename from apps/web/src/schema/cost-analysis/cost-report-config/model.ts rename to apps/web/src/api-clients/cost-analysis/cost-report-config/schema/model.ts index 754574d1b7..e755b76087 100644 --- a/apps/web/src/schema/cost-analysis/cost-report-config/model.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/model.ts @@ -1,4 +1,4 @@ -import type { CostReportConfigStatus } from '@/schema/cost-analysis/cost-report-config/type'; +import type { CostReportConfigStatus } from '@/api-clients/cost-analysis/cost-report-config/schema/type'; import type { RoleType } from '@/schema/identity/role/type'; import type { Currency } from '@/store/display/type'; diff --git a/apps/web/src/schema/cost-analysis/cost-report-config/type.ts b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/type.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report-config/type.ts rename to apps/web/src/api-clients/cost-analysis/cost-report-config/schema/type.ts diff --git a/apps/web/src/api-clients/cost-analysis/cost-report-data/composables/use-cost-report-data-api.ts b/apps/web/src/api-clients/cost-analysis/cost-report-data/composables/use-cost-report-data-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/cost-report-data/api-verbs/analyze.ts b/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/analyze.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report-data/api-verbs/analyze.ts rename to apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/analyze.ts diff --git a/apps/web/src/schema/cost-analysis/cost-report-data/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report-data/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/cost-analysis/cost-report-data/model.ts b/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/model.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report-data/model.ts rename to apps/web/src/api-clients/cost-analysis/cost-report-data/schema/model.ts diff --git a/apps/web/src/schema/cost-analysis/cost-report-data/type.ts b/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/type.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report-data/type.ts rename to apps/web/src/api-clients/cost-analysis/cost-report-data/schema/type.ts diff --git a/apps/web/src/api-clients/cost-analysis/cost-report/composables/use-cost-report-api.ts b/apps/web/src/api-clients/cost-analysis/cost-report/composables/use-cost-report-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/cost-report/api-verbs/get-url.ts b/apps/web/src/api-clients/cost-analysis/cost-report/schema/api-verbs/get-url.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report/api-verbs/get-url.ts rename to apps/web/src/api-clients/cost-analysis/cost-report/schema/api-verbs/get-url.ts diff --git a/apps/web/src/schema/cost-analysis/cost-report/api-verbs/get.ts b/apps/web/src/api-clients/cost-analysis/cost-report/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report/api-verbs/get.ts rename to apps/web/src/api-clients/cost-analysis/cost-report/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/cost-analysis/cost-report/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/cost-report/schema/api-verbs/list.ts similarity index 73% rename from apps/web/src/schema/cost-analysis/cost-report/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/cost-report/schema/api-verbs/list.ts index d99b3f7476..f8f3c6c36e 100644 --- a/apps/web/src/schema/cost-analysis/cost-report/api-verbs/list.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-report/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { CostReportStatus } from '@/schema/cost-analysis/cost-report/type'; +import type { CostReportStatus } from '@/api-clients/cost-analysis/cost-report/schema/type'; export interface CostReportListParameters { diff --git a/apps/web/src/schema/cost-analysis/cost-report/api-verbs/send.ts b/apps/web/src/api-clients/cost-analysis/cost-report/schema/api-verbs/send.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report/api-verbs/send.ts rename to apps/web/src/api-clients/cost-analysis/cost-report/schema/api-verbs/send.ts diff --git a/apps/web/src/schema/cost-analysis/cost-report/model.ts b/apps/web/src/api-clients/cost-analysis/cost-report/schema/model.ts similarity index 85% rename from apps/web/src/schema/cost-analysis/cost-report/model.ts rename to apps/web/src/api-clients/cost-analysis/cost-report/schema/model.ts index ae95d5078a..42725077a8 100644 --- a/apps/web/src/schema/cost-analysis/cost-report/model.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-report/schema/model.ts @@ -1,4 +1,4 @@ -import type { CostReportStatus } from '@/schema/cost-analysis/cost-report/type'; +import type { CostReportStatus } from '@/api-clients/cost-analysis/cost-report/schema/type'; import type { Currency } from '@/store/display/type'; diff --git a/apps/web/src/schema/cost-analysis/cost-report/type.ts b/apps/web/src/api-clients/cost-analysis/cost-report/schema/type.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost-report/type.ts rename to apps/web/src/api-clients/cost-analysis/cost-report/schema/type.ts diff --git a/apps/web/src/api-clients/cost-analysis/cost/composables/use-cost-api.ts b/apps/web/src/api-clients/cost-analysis/cost/composables/use-cost-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/cost/api-verbs/analyze.ts b/apps/web/src/api-clients/cost-analysis/cost/schema/api-verbs/analyze.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost/api-verbs/analyze.ts rename to apps/web/src/api-clients/cost-analysis/cost/schema/api-verbs/analyze.ts diff --git a/apps/web/src/schema/cost-analysis/cost/api-verbs/stat.ts b/apps/web/src/api-clients/cost-analysis/cost/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/cost/api-verbs/stat.ts rename to apps/web/src/api-clients/cost-analysis/cost/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/cost-analysis/cost/model.ts b/apps/web/src/api-clients/cost-analysis/cost/schema/model.ts similarity index 88% rename from apps/web/src/schema/cost-analysis/cost/model.ts rename to apps/web/src/api-clients/cost-analysis/cost/schema/model.ts index 2deec308cb..9e21ca1b57 100644 --- a/apps/web/src/schema/cost-analysis/cost/model.ts +++ b/apps/web/src/api-clients/cost-analysis/cost/schema/model.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; export interface CostModel { cost_id: string; diff --git a/apps/web/src/api-clients/cost-analysis/data-source-account/composables/use-data-source-account-api.ts b/apps/web/src/api-clients/cost-analysis/data-source-account/composables/use-data-source-account-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/data-source-account/api-verbs/analyze.ts b/apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/analyze.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/data-source-account/api-verbs/analyze.ts rename to apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/analyze.ts diff --git a/apps/web/src/schema/cost-analysis/data-source-account/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/data-source-account/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/cost-analysis/data-source-account/api-verbs/reset.ts b/apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/reset.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/data-source-account/api-verbs/reset.ts rename to apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/reset.ts diff --git a/apps/web/src/schema/cost-analysis/data-source-account/api-verbs/update.ts b/apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/data-source-account/api-verbs/update.ts rename to apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/cost-analysis/data-source-account/model.ts b/apps/web/src/api-clients/cost-analysis/data-source-account/schema/model.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/data-source-account/model.ts rename to apps/web/src/api-clients/cost-analysis/data-source-account/schema/model.ts diff --git a/apps/web/src/api-clients/cost-analysis/data-source/composables/use-data-source-api.ts b/apps/web/src/api-clients/cost-analysis/data-source/composables/use-data-source-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/data-source/api-verbs/get.ts b/apps/web/src/api-clients/cost-analysis/data-source/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/data-source/api-verbs/get.ts rename to apps/web/src/api-clients/cost-analysis/data-source/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/cost-analysis/data-source/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/data-source/schema/api-verbs/list.ts similarity index 88% rename from apps/web/src/schema/cost-analysis/data-source/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/data-source/schema/api-verbs/list.ts index dc3ee4414e..fcfc8f2d13 100644 --- a/apps/web/src/schema/cost-analysis/data-source/api-verbs/list.ts +++ b/apps/web/src/api-clients/cost-analysis/data-source/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { CostDataSourceState, CostDataSourceType } from '@/schema/cost-analysis/data-source/type'; +import type { CostDataSourceState, CostDataSourceType } from '@/api-clients/cost-analysis/data-source/schema/type'; export interface CostDataSourceListParameters { diff --git a/apps/web/src/schema/cost-analysis/data-source/api-verbs/sync.ts b/apps/web/src/api-clients/cost-analysis/data-source/schema/api-verbs/sync.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/data-source/api-verbs/sync.ts rename to apps/web/src/api-clients/cost-analysis/data-source/schema/api-verbs/sync.ts diff --git a/apps/web/src/schema/cost-analysis/data-source/api-verbs/update-permissions.ts b/apps/web/src/api-clients/cost-analysis/data-source/schema/api-verbs/update-permissions.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/data-source/api-verbs/update-permissions.ts rename to apps/web/src/api-clients/cost-analysis/data-source/schema/api-verbs/update-permissions.ts diff --git a/apps/web/src/schema/cost-analysis/data-source/constant.ts b/apps/web/src/api-clients/cost-analysis/data-source/schema/constant.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/data-source/constant.ts rename to apps/web/src/api-clients/cost-analysis/data-source/schema/constant.ts diff --git a/apps/web/src/schema/cost-analysis/data-source/model.ts b/apps/web/src/api-clients/cost-analysis/data-source/schema/model.ts similarity index 84% rename from apps/web/src/schema/cost-analysis/data-source/model.ts rename to apps/web/src/api-clients/cost-analysis/data-source/schema/model.ts index 37162804be..f698bf64fe 100644 --- a/apps/web/src/schema/cost-analysis/data-source/model.ts +++ b/apps/web/src/api-clients/cost-analysis/data-source/schema/model.ts @@ -1,9 +1,7 @@ import type { JsonSchema } from '@cloudforet/mirinae/types/controls/forms/json-schema-form/type'; -import type { ResourceGroupType } from '@/schema/_common/type'; -import type { - CostDataSourceSecretType, CostDataSourceType, CostDataSourceSchedule, -} from '@/schema/cost-analysis/data-source/type'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; +import type { CostDataSourceSecretType, CostDataSourceState, CostDataSourceType } from '@/api-clients/cost-analysis/data-source/schema/type'; interface PluginInfoModel { diff --git a/apps/web/src/schema/cost-analysis/data-source/type.ts b/apps/web/src/api-clients/cost-analysis/data-source/schema/type.ts similarity index 85% rename from apps/web/src/schema/cost-analysis/data-source/type.ts rename to apps/web/src/api-clients/cost-analysis/data-source/schema/type.ts index 944b7811ca..e07e0adb26 100644 --- a/apps/web/src/schema/cost-analysis/data-source/type.ts +++ b/apps/web/src/api-clients/cost-analysis/data-source/schema/type.ts @@ -1,4 +1,4 @@ -import type { COST_DATA_SOURCE_STATE, COST_DATA_SOURCE_TYPE, COST_DATA_SOURCE_SECRET_TYPE } from '@/schema/cost-analysis/data-source/constant'; +import type { COST_DATA_SOURCE_STATE, COST_DATA_SOURCE_TYPE, COST_DATA_SOURCE_SECRET_TYPE } from './constant'; export type CostDataSourceState = typeof COST_DATA_SOURCE_STATE[keyof typeof COST_DATA_SOURCE_STATE]; diff --git a/apps/web/src/api-clients/cost-analysis/job/composables/use-job-api.ts b/apps/web/src/api-clients/cost-analysis/job/composables/use-job-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/job/api-verbs/cancel.ts b/apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/cancel.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/job/api-verbs/cancel.ts rename to apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/cancel.ts diff --git a/apps/web/src/schema/cost-analysis/job/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/job/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/cost-analysis/job/model.ts b/apps/web/src/api-clients/cost-analysis/job/schema/model.ts similarity index 76% rename from apps/web/src/schema/cost-analysis/job/model.ts rename to apps/web/src/api-clients/cost-analysis/job/schema/model.ts index 95d2a6cb90..288d43385b 100644 --- a/apps/web/src/schema/cost-analysis/job/model.ts +++ b/apps/web/src/api-clients/cost-analysis/job/schema/model.ts @@ -1,5 +1,6 @@ -import type { ResourceGroupType } from '@/schema/_common/type'; -import type { CostJobStatus } from '@/schema/cost-analysis/job/type'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; +import type { CostJobStatus } from '@/api-clients/cost-analysis/job/schema/type'; + interface SyncedAccount { account_id: string; diff --git a/apps/web/src/schema/cost-analysis/job/type.ts b/apps/web/src/api-clients/cost-analysis/job/schema/type.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/job/type.ts rename to apps/web/src/api-clients/cost-analysis/job/schema/type.ts diff --git a/apps/web/src/api-clients/cost-analysis/unified-cost/composables/use-unified-cost-api.ts b/apps/web/src/api-clients/cost-analysis/unified-cost/composables/use-unified-cost-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/cost-analysis/unified-cost/api-verbs/analyze.ts b/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/analyze.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/unified-cost/api-verbs/analyze.ts rename to apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/analyze.ts diff --git a/apps/web/src/schema/cost-analysis/unified-cost/api-verbs/get.ts b/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/unified-cost/api-verbs/get.ts rename to apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/cost-analysis/unified-cost/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/unified-cost/api-verbs/list.ts rename to apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/cost-analysis/unified-cost/api-verbs/stat.ts b/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/unified-cost/api-verbs/stat.ts rename to apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/cost-analysis/unified-cost/model.ts b/apps/web/src/api-clients/cost-analysis/unified-cost/schema/model.ts similarity index 100% rename from apps/web/src/schema/cost-analysis/unified-cost/model.ts rename to apps/web/src/api-clients/cost-analysis/unified-cost/schema/model.ts diff --git a/apps/web/src/schema/dashboard/_constants/dashboard-constant.ts b/apps/web/src/api-clients/dashboard/_constants/dashboard-constant.ts similarity index 100% rename from apps/web/src/schema/dashboard/_constants/dashboard-constant.ts rename to apps/web/src/api-clients/dashboard/_constants/dashboard-constant.ts diff --git a/apps/web/src/schema/dashboard/_constants/widget-constant.ts b/apps/web/src/api-clients/dashboard/_constants/widget-constant.ts similarity index 100% rename from apps/web/src/schema/dashboard/_constants/widget-constant.ts rename to apps/web/src/api-clients/dashboard/_constants/widget-constant.ts diff --git a/apps/web/src/schema/dashboard/_types/dashboard-global-variable-type.ts b/apps/web/src/api-clients/dashboard/_types/dashboard-global-variable-type.ts similarity index 100% rename from apps/web/src/schema/dashboard/_types/dashboard-global-variable-type.ts rename to apps/web/src/api-clients/dashboard/_types/dashboard-global-variable-type.ts diff --git a/apps/web/src/schema/dashboard/_types/dashboard-type.ts b/apps/web/src/api-clients/dashboard/_types/dashboard-type.ts similarity index 61% rename from apps/web/src/schema/dashboard/_types/dashboard-type.ts rename to apps/web/src/api-clients/dashboard/_types/dashboard-type.ts index 74e6601cce..c3f990a0f2 100644 --- a/apps/web/src/schema/dashboard/_types/dashboard-type.ts +++ b/apps/web/src/api-clients/dashboard/_types/dashboard-type.ts @@ -1,23 +1,25 @@ import type { REFRESH_INTERVAL_OPTIONS_MAP, DASHBOARD_TYPE, -} from '@/schema/dashboard/_constants/dashboard-constant'; -import type { DashboardGlobalVariable } from '@/schema/dashboard/_types/dashboard-global-variable-type'; +} from '@/api-clients/dashboard/_constants/dashboard-constant'; +import type { DashboardGlobalVariable } from '@/api-clients/dashboard/_types/dashboard-global-variable-type'; import type { InheritOptions, WidgetOptions, WidgetSize, -} from '@/schema/dashboard/_types/widget-type'; -import type { PrivateDashboardChangeFolderParameters } from '@/schema/dashboard/private-dashboard/api-verbs/change-folder'; -import type { PrivateDashboardCreateParameters } from '@/schema/dashboard/private-dashboard/api-verbs/create'; -import type { PrivateDashboardDeleteParameters } from '@/schema/dashboard/private-dashboard/api-verbs/delete'; -import type { PrivateDashboardListParameters } from '@/schema/dashboard/private-dashboard/api-verbs/list'; -import type { PrivateDashboardUpdateParameters } from '@/schema/dashboard/private-dashboard/api-verbs/update'; -import type { PrivateDashboardModel } from '@/schema/dashboard/private-dashboard/model'; -import type { PublicDashboardChangeFolderParameters } from '@/schema/dashboard/public-dashboard/api-verbs/change-folder'; -import type { PublicDashboardCreateParameters } from '@/schema/dashboard/public-dashboard/api-verbs/create'; -import type { PublicDashboardDeleteParameters } from '@/schema/dashboard/public-dashboard/api-verbs/delete'; -import type { PublicDashboardListParameters } from '@/schema/dashboard/public-dashboard/api-verbs/list'; -import type { PublicDashboardUpdateParameters } from '@/schema/dashboard/public-dashboard/api-verbs/update'; -import type { PublicDashboardModel } from '@/schema/dashboard/public-dashboard/model'; +} from '@/api-clients/dashboard/_types/widget-type'; +import type { PrivateDashboardChangeFolderParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/change-folder'; +import type { PrivateDashboardCreateParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/create'; +import type { PrivateDashboardDeleteParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/delete'; +import type { PrivateDashboardGetParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/get'; +import type { PrivateDashboardListParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/list'; +import type { PrivateDashboardUpdateParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/update'; +import type { PrivateDashboardModel } from '@/api-clients/dashboard/private-dashboard/schema/model'; +import type { PublicDashboardChangeFolderParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/change-folder'; +import type { PublicDashboardCreateParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/create'; +import type { PublicDashboardDeleteParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/delete'; +import type { PublicDashboardGetParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/get'; +import type { PublicDashboardListParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/list'; +import type { PublicDashboardUpdateParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/update'; +import type { PublicDashboardModel } from '@/api-clients/dashboard/public-dashboard/schema/model'; import type { VariableModelType } from '@/lib/variable-models'; import type { Value } from '@/lib/variable-models/_base/types'; @@ -27,12 +29,13 @@ export type DashboardFolderType = 'PUBLIC'|'PRIVATE'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -export type DashboardModel = PublicDashboardModel & PrivateDashboardModel; +export type DashboardModel = PublicDashboardModel | PrivateDashboardModel; export type DashboardCreateParams = PublicDashboardCreateParameters | PrivateDashboardCreateParameters; export type DashboardChangeFolderParams = PublicDashboardChangeFolderParameters | PrivateDashboardChangeFolderParameters; export type DashboardListParams = PublicDashboardListParameters | PrivateDashboardListParameters; export type DashboardUpdateParams = PublicDashboardUpdateParameters | PrivateDashboardUpdateParameters; export type DashboardDeleteParams = PublicDashboardDeleteParameters | PrivateDashboardDeleteParameters; +export type DashboardGetParams = PublicDashboardGetParameters | PrivateDashboardGetParameters; // dashboard variable schema types type VariableSelectionType = 'SINGLE' | 'MULTI'; @@ -67,8 +70,9 @@ export interface DashboardVariablesSchema { } export interface DashboardGlobalVariablesSchema { - properties: Record; + properties: DashboardGlobalVariableSchemaProperties; } +export type DashboardGlobalVariableSchemaProperties = Record; // dashboard variables types export type DashboardVariables = SingleSelectDashboardVariables | MultiSelectDashboardVariables; diff --git a/apps/web/src/api-clients/dashboard/_types/folder-type.ts b/apps/web/src/api-clients/dashboard/_types/folder-type.ts new file mode 100644 index 0000000000..420a0390c7 --- /dev/null +++ b/apps/web/src/api-clients/dashboard/_types/folder-type.ts @@ -0,0 +1,14 @@ +import type { PrivateFolderCreateParameters } from '@/api-clients/dashboard/private-folder/schema/api-verbs/create'; +import type { PrivateFolderDeleteParameters } from '@/api-clients/dashboard/private-folder/schema/api-verbs/delete'; +import type { PrivateFolderUpdateParameters } from '@/api-clients/dashboard/private-folder/schema/api-verbs/update'; +import type { PrivateFolderModel } from '@/api-clients/dashboard/private-folder/schema/model'; +import type { PublicFolderCreateParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/create'; +import type { PublicFolderDeleteParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/delete'; +import type { PublicFolderUpdateParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/update'; +import type { PublicFolderModel } from '@/api-clients/dashboard/public-folder/schema/model'; + + +export type FolderModel = PublicFolderModel | PrivateFolderModel; +export type FolderCreateParams = PublicFolderCreateParameters | PrivateFolderCreateParameters; +export type FolderUpdateParams = PublicFolderUpdateParameters | PrivateFolderUpdateParameters; +export type FolderDeleteParams = PublicFolderDeleteParameters | PrivateFolderDeleteParameters; diff --git a/apps/web/src/schema/dashboard/_types/widget-type.ts b/apps/web/src/api-clients/dashboard/_types/widget-type.ts similarity index 61% rename from apps/web/src/schema/dashboard/_types/widget-type.ts rename to apps/web/src/api-clients/dashboard/_types/widget-type.ts index ba40bf6b15..87214e7f82 100644 --- a/apps/web/src/schema/dashboard/_types/widget-type.ts +++ b/apps/web/src/api-clients/dashboard/_types/widget-type.ts @@ -1,24 +1,42 @@ import type { ConsoleFilterOperator } from '@cloudforet/core-lib/query/type'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; import type { WIDGET_OPTION_FILTER_KEY_MAP, WIDGET_OPTION_KEYS, ASSET_DATA_FIELD_MAP, CHART_TYPE, COST_DATA_FIELD_MAP, GRANULARITY, WIDGET_SIZE, -} from '@/schema/dashboard/_constants/widget-constant'; -import type { PrivateWidgetListParameters } from '@/schema/dashboard/private-widget/api-verbs/list'; -import type { PrivateWidgetModel } from '@/schema/dashboard/private-widget/model'; -import type { PublicWidgetListParameters } from '@/schema/dashboard/public-widget/api-verbs/list'; -import type { PublicWidgetModel } from '@/schema/dashboard/public-widget/model'; +} from '@/api-clients/dashboard/_constants/widget-constant'; +import type { PrivateWidgetCreateParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/create'; +import type { PrivateWidgetDeleteParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/delete'; +import type { PrivateWidgetListParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/list'; +import type { PrivateWidgetLoadParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/load'; +import type { PrivateWidgetLoadSumParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/load-sum'; +import type { PrivateWidgetUpdateParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/update'; +import type { PrivateWidgetModel } from '@/api-clients/dashboard/private-widget/schema/model'; +import type { PublicWidgetCreateParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/create'; +import type { PublicWidgetDeleteParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/delete'; +import type { PublicWidgetListParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/list'; +import type { PublicWidgetLoadParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/load'; +import type { PublicWidgetLoadSumParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/load-sum'; +import type { PublicWidgetUpdateParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/update'; +import type { PublicWidgetModel } from '@/api-clients/dashboard/public-widget/schema/model'; import type { VariableModelType } from '@/lib/variable-models'; import type { ManagedVariableModelKey } from '@/lib/variable-models/managed-model-config/base-managed-model-config'; +import type { DataInfo, LabelsInfo } from '@/common/modules/widgets/types/widget-model'; + export type WidgetModel = PublicWidgetModel | PrivateWidgetModel; export type WidgetListParams = PublicWidgetListParameters|PrivateWidgetListParameters; +export type WidgetCreateParams = PublicWidgetCreateParameters| PrivateWidgetCreateParameters; +export type WidgetUpdateParams = PublicWidgetUpdateParameters| PrivateWidgetUpdateParameters; +export type WidgetDeleteParams = PublicWidgetDeleteParameters| PrivateWidgetDeleteParameters; +export type WidgetLoadParams = PublicWidgetLoadParameters| PrivateWidgetLoadParameters; +export type WidgetLoadSumParams = PublicWidgetLoadSumParameters| PrivateWidgetLoadSumParameters; interface WidgetItemOptions { type: VariableModelType; @@ -134,4 +152,16 @@ export type InheritOptions = Partial>; +export type WidgetLoadResponse = ListResponse> & { + labels_info: LabelsInfo; + data_info: DataInfo; + order?: string[]; +}; + +export type DataTableLoadResponse = ListResponse> & { + labels_info: LabelsInfo; + data_info: DataInfo; + order?: string[]; +}; + diff --git a/apps/web/src/api-clients/dashboard/private-dashboard/composables/use-private-dashboard-api.ts b/apps/web/src/api-clients/dashboard/private-dashboard/composables/use-private-dashboard-api.ts new file mode 100644 index 0000000000..e6be21d1f7 --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-dashboard/composables/use-private-dashboard-api.ts @@ -0,0 +1,61 @@ +import type { ComputedRef } from 'vue'; + +import type { QueryKey } from '@tanstack/vue-query'; + +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { PrivateDashboardChangeFolderParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/change-folder'; +import type { PrivateDashboardCreateParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/create'; +import type { PrivateDashboardDeleteParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/delete'; +import type { PrivateDashboardGetParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/get'; +import type { PrivateDashboardListParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/list'; +import type { PrivateDashboardUpdateParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/update'; +import type { PrivateDashboardModel } from '@/api-clients/dashboard/private-dashboard/schema/model'; + +interface UsePrivateDashboardApiReturn { + privateDashboardQueryKey: ComputedRef; + privateDashboardListQueryKey: ComputedRef; + privateDashboardAPI: { + create: (params: PrivateDashboardCreateParameters) => Promise; + update: (params: PrivateDashboardUpdateParameters) => Promise; + changeFolder: (params: PrivateDashboardChangeFolderParameters) => Promise; + delete: (params: PrivateDashboardDeleteParameters) => Promise; + get: (params: PrivateDashboardGetParameters) => Promise; + list: (params: PrivateDashboardListParameters) => Promise>; + } +} + + +export const usePrivateDashboardApi = (): UsePrivateDashboardApiReturn => { + const privateDashboardQueryKey = useAPIQueryKey('private-dashboard/get'); + const privateDashboardListQueryKey = useAPIQueryKey('private-dashboard/list'); + + const actions = { + async create(params: PrivateDashboardCreateParameters) { + return SpaceConnector.clientV2.dashboard.privateDashboard.create(params); + }, + async update(params: PrivateDashboardUpdateParameters) { + return SpaceConnector.clientV2.dashboard.privateDashboard.update(params); + }, + async changeFolder(params: PrivateDashboardChangeFolderParameters) { + return SpaceConnector.clientV2.dashboard.privateDashboard.changeFolder(params); + }, + async delete(params: PrivateDashboardDeleteParameters) { + return SpaceConnector.clientV2.dashboard.privateDashboard.delete(params); + }, + async get(params: PrivateDashboardGetParameters) { + return SpaceConnector.clientV2.dashboard.privateDashboard.get(params); + }, + async list(params: PrivateDashboardListParameters) { + return SpaceConnector.clientV2.dashboard.privateDashboard.list>(params); + }, + }; + + return { + privateDashboardQueryKey, + privateDashboardListQueryKey, + privateDashboardAPI: actions, + }; +}; diff --git a/apps/web/src/schema/dashboard/private-dashboard/api-verbs/change-folder.ts b/apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/change-folder.ts similarity index 100% rename from apps/web/src/schema/dashboard/private-dashboard/api-verbs/change-folder.ts rename to apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/change-folder.ts diff --git a/apps/web/src/schema/dashboard/private-dashboard/api-verbs/create.ts b/apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/create.ts similarity index 84% rename from apps/web/src/schema/dashboard/private-dashboard/api-verbs/create.ts rename to apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/create.ts index ba652f4755..dbb65ed664 100644 --- a/apps/web/src/schema/dashboard/private-dashboard/api-verbs/create.ts +++ b/apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/create.ts @@ -1,9 +1,9 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { DashboardGlobalVariablesSchema, DashboardOptions, DashboardVariables, DashboardVariablesSchema, DashboardVars, -} from '@/schema/dashboard/_types/dashboard-type'; +} from '@/api-clients/dashboard/_types/dashboard-type'; import type { SharedDashboardLayout } from '@/services/dashboards/types/shared-dashboard-type'; diff --git a/apps/web/src/schema/dashboard/private-dashboard/api-verbs/delete.ts b/apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/dashboard/private-dashboard/api-verbs/delete.ts rename to apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/dashboard/private-dashboard/api-verbs/get.ts b/apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/dashboard/private-dashboard/api-verbs/get.ts rename to apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/dashboard/private-dashboard/api-verbs/list.ts b/apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/dashboard/private-dashboard/api-verbs/list.ts rename to apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/dashboard/private-dashboard/api-verbs/update.ts b/apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/update.ts similarity index 81% rename from apps/web/src/schema/dashboard/private-dashboard/api-verbs/update.ts rename to apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/update.ts index 5bd06889f7..5267e699c5 100644 --- a/apps/web/src/schema/dashboard/private-dashboard/api-verbs/update.ts +++ b/apps/web/src/api-clients/dashboard/private-dashboard/schema/api-verbs/update.ts @@ -1,9 +1,9 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { DashboardOptions, DashboardVariables, DashboardVariablesSchema, DashboardLayout, DashboardVars, DashboardGlobalVariablesSchema, -} from '@/schema/dashboard/_types/dashboard-type'; +} from '@/api-clients/dashboard/_types/dashboard-type'; export interface PrivateDashboardUpdateParameters { diff --git a/apps/web/src/schema/dashboard/private-dashboard/model.ts b/apps/web/src/api-clients/dashboard/private-dashboard/schema/model.ts similarity index 86% rename from apps/web/src/schema/dashboard/private-dashboard/model.ts rename to apps/web/src/api-clients/dashboard/private-dashboard/schema/model.ts index 287dd77063..22f43ca43b 100644 --- a/apps/web/src/schema/dashboard/private-dashboard/model.ts +++ b/apps/web/src/api-clients/dashboard/private-dashboard/schema/model.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { DashboardLayout, DashboardOptions, @@ -6,7 +6,7 @@ import type { DashboardVariablesSchema, DashboardVars, DashboardGlobalVariablesSchema, -} from '@/schema/dashboard/_types/dashboard-type'; +} from '@/api-clients/dashboard/_types/dashboard-type'; export interface PrivateDashboardModel { diff --git a/apps/web/src/api-clients/dashboard/private-data-table/composables/use-private-data-table-api.ts b/apps/web/src/api-clients/dashboard/private-data-table/composables/use-private-data-table-api.ts new file mode 100644 index 0000000000..69dc86ea2b --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-data-table/composables/use-private-data-table-api.ts @@ -0,0 +1,69 @@ +import type { ComputedRef } from 'vue'; + +import type { QueryKey } from '@tanstack/vue-query'; + +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { DataTableLoadResponse } from '@/api-clients/dashboard/_types/widget-type'; +import type { PrivateDataTableModel } from '@/api-clients/dashboard/private-data-table/schema/model'; +import type { DataTableAddParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/add'; +import type { DataTableDeleteParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/delete'; +import type { DataTableGetParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/get'; +import type { DataTableListParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/list'; +import type { DataTableLoadParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/load'; +import type { DataTableTransformParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/transform'; +import type { DataTableUpdateParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/update'; + +interface UsePrivateDataTableApiReturn { + privateDataTableQueryKey: ComputedRef; + privateDataTableListQueryKey: ComputedRef; + privateDataTableLoadQueryKey: ComputedRef; + privateDataTableAPI: { + add: (params: DataTableAddParameters) => Promise; + transform: (params: DataTableTransformParameters) => Promise; + update: (params: DataTableUpdateParameters) => Promise; + delete: (params: DataTableDeleteParameters) => Promise; + load: (params: DataTableLoadParameters) => Promise; + get: (params: DataTableGetParameters) => Promise; + list: (params: DataTableListParameters) => Promise>; + } +} + +export const usePrivateDataTableApi = (): UsePrivateDataTableApiReturn => { + const privateDataTableQueryKey = useAPIQueryKey('private-data-table/get'); + const privateDataTableListQueryKey = useAPIQueryKey('private-data-table/list'); + const privateDataTableLoadQueryKey = useAPIQueryKey('private-data-table/load'); + + const action = { + async add(params: DataTableAddParameters) { + return SpaceConnector.clientV2.dashboard.privateDataTable.add(params); + }, + async transform(params: DataTableTransformParameters) { + return SpaceConnector.clientV2.dashboard.privateDataTable.transform(params); + }, + async update(params: DataTableUpdateParameters) { + return SpaceConnector.clientV2.dashboard.privateDataTable.update(params); + }, + async delete(params: DataTableDeleteParameters) { + return SpaceConnector.clientV2.dashboard.privateDataTable.delete(params); + }, + async load(params: DataTableLoadParameters) { + return SpaceConnector.clientV2.dashboard.privateDataTable.load(params); + }, + async get(params: DataTableGetParameters) { + return SpaceConnector.clientV2.dashboard.privateDataTable.get(params); + }, + async list(params: DataTableListParameters) { + return SpaceConnector.clientV2.dashboard.privateDataTable.list>(params); + }, + }; + + return { + privateDataTableQueryKey, + privateDataTableListQueryKey, + privateDataTableLoadQueryKey, + privateDataTableAPI: action, + }; +}; diff --git a/apps/web/src/schema/dashboard/private-data-table/model.ts b/apps/web/src/api-clients/dashboard/private-data-table/schema/model.ts similarity index 91% rename from apps/web/src/schema/dashboard/private-data-table/model.ts rename to apps/web/src/api-clients/dashboard/private-data-table/schema/model.ts index 99ede6f499..fcc82fd1c9 100644 --- a/apps/web/src/schema/dashboard/private-data-table/model.ts +++ b/apps/web/src/api-clients/dashboard/private-data-table/schema/model.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { DataInfo, diff --git a/apps/web/src/api-clients/dashboard/private-folder/composables/use-private-folder-api.ts b/apps/web/src/api-clients/dashboard/private-folder/composables/use-private-folder-api.ts new file mode 100644 index 0000000000..bd61398f37 --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-folder/composables/use-private-folder-api.ts @@ -0,0 +1,55 @@ +import type { ComputedRef } from 'vue'; + +import type { QueryKey } from '@tanstack/vue-query'; + +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { PrivateFolderCreateParameters } from '@/api-clients/dashboard/private-folder/schema/api-verbs/create'; +import type { PrivateFolderDeleteParameters } from '@/api-clients/dashboard/private-folder/schema/api-verbs/delete'; +import type { PrivateFolderGetParameters } from '@/api-clients/dashboard/private-folder/schema/api-verbs/get'; +import type { PrivateFolderListParameters } from '@/api-clients/dashboard/private-folder/schema/api-verbs/list'; +import type { PrivateFolderUpdateParameters } from '@/api-clients/dashboard/private-folder/schema/api-verbs/update'; +import type { PrivateFolderModel } from '@/api-clients/dashboard/private-folder/schema/model'; + +interface UsePrivateFolderApiReturn { + privateFolderQueryKey: ComputedRef; + privateFolderListQueryKey: ComputedRef; + privateFolderAPI: { + create: (params: PrivateFolderCreateParameters) => Promise; + update: (params: PrivateFolderUpdateParameters) => Promise; + delete: (params: PrivateFolderDeleteParameters) => Promise; + get: (params: PrivateFolderGetParameters) => Promise; + list: (params: PrivateFolderListParameters) => Promise>; + }; +} + +export const usePrivateFolderApi = (): UsePrivateFolderApiReturn => { + const privateFolderQueryKey = useAPIQueryKey('private-folder/get'); + const privateFolderListQueryKey = useAPIQueryKey('private-folder/list'); + + const action = { + async create(params: PrivateFolderCreateParameters) { + return SpaceConnector.clientV2.dashboard.privateFolder.create(params); + }, + async update(params: PrivateFolderUpdateParameters) { + return SpaceConnector.clientV2.dashboard.privateFolder.update(params); + }, + async delete(params: PrivateFolderDeleteParameters) { + return SpaceConnector.clientV2.dashboard.privateFolder.delete(params); + }, + async get(params: PrivateFolderGetParameters) { + return SpaceConnector.clientV2.dashboard.privateFolder.get(params); + }, + async list(params: PrivateFolderListParameters) { + return SpaceConnector.clientV2.dashboard.privateFolder.list>(params); + }, + }; + + return { + privateFolderQueryKey, + privateFolderListQueryKey, + privateFolderAPI: action, + }; +}; diff --git a/apps/web/src/schema/dashboard/private-folder/api-verbs/create.ts b/apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/create.ts similarity index 68% rename from apps/web/src/schema/dashboard/private-folder/api-verbs/create.ts rename to apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/create.ts index 5ddd40cd00..c0be3d3083 100644 --- a/apps/web/src/schema/dashboard/private-folder/api-verbs/create.ts +++ b/apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/create.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; export interface PrivateFolderCreateParameters { diff --git a/apps/web/src/schema/dashboard/private-folder/api-verbs/delete.ts b/apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/dashboard/private-folder/api-verbs/delete.ts rename to apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/delete.ts diff --git a/apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/get.ts b/apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/get.ts new file mode 100644 index 0000000000..b0e1d6551b --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/get.ts @@ -0,0 +1,3 @@ +export interface PrivateFolderGetParameters { + folder_id: string; +} diff --git a/apps/web/src/schema/dashboard/private-folder/api-verbs/list.ts b/apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/dashboard/private-folder/api-verbs/list.ts rename to apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/dashboard/private-folder/api-verbs/update.ts b/apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/update.ts similarity index 63% rename from apps/web/src/schema/dashboard/private-folder/api-verbs/update.ts rename to apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/update.ts index 430769eec3..095b6498ba 100644 --- a/apps/web/src/schema/dashboard/private-folder/api-verbs/update.ts +++ b/apps/web/src/api-clients/dashboard/private-folder/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; export interface PrivateFolderUpdateParameters { diff --git a/apps/web/src/schema/dashboard/private-folder/model.ts b/apps/web/src/api-clients/dashboard/private-folder/schema/model.ts similarity index 77% rename from apps/web/src/schema/dashboard/private-folder/model.ts rename to apps/web/src/api-clients/dashboard/private-folder/schema/model.ts index 7cc3cc74ac..9b8e68000c 100644 --- a/apps/web/src/schema/dashboard/private-folder/model.ts +++ b/apps/web/src/api-clients/dashboard/private-folder/schema/model.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; export interface PrivateFolderModel { folder_id: string; diff --git a/apps/web/src/api-clients/dashboard/private-widget/composables/use-private-widget-api.ts b/apps/web/src/api-clients/dashboard/private-widget/composables/use-private-widget-api.ts new file mode 100644 index 0000000000..354c0c7d76 --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-widget/composables/use-private-widget-api.ts @@ -0,0 +1,72 @@ +import type { ComputedRef } from 'vue'; + +import type { QueryKey } from '@tanstack/vue-query'; + +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { WidgetLoadResponse } from '@/api-clients/dashboard/_types/widget-type'; +import type { PrivateWidgetCreateParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/create'; +import type { PrivateWidgetDeleteParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/delete'; +import type { PrivateWidgetGetParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/get'; +import type { PrivateWidgetListParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/list'; +import type { PrivateWidgetLoadParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/load'; +import type { PrivateWidgetLoadSumParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/load-sum'; +import type { PrivateWidgetUpdateParameters } from '@/api-clients/dashboard/private-widget/schema/api-verbs/update'; +import type { PrivateWidgetModel } from '@/api-clients/dashboard/private-widget/schema/model'; + +interface UsePrivateWidgetApiReturn { + privateWidgetQueryKey: ComputedRef; + privateWidgetListQueryKey: ComputedRef; + privateWidgetLoadQueryKey: ComputedRef; + privateWidgetLoadSumQueryKey: ComputedRef; + privateWidgetAPI: { + create: (params: PrivateWidgetCreateParameters) => Promise; + update: (params: PrivateWidgetUpdateParameters) => Promise; + delete: (params: PrivateWidgetDeleteParameters) => Promise; + load: (params: PrivateWidgetLoadParameters) => Promise; + loadSum: (params: PrivateWidgetLoadSumParameters) => Promise; + get: (params: PrivateWidgetGetParameters) => Promise; + list: (params: PrivateWidgetListParameters) => Promise>; + } +} + +export const usePrivateWidgetApi = (): UsePrivateWidgetApiReturn => { + const privateWidgetQueryKey = useAPIQueryKey('private-widget/get'); + const privateWidgetListQueryKey = useAPIQueryKey('private-widget/list'); + const privateWidgetLoadQueryKey = useAPIQueryKey('private-widget/load'); + const privateWidgetLoadSumQueryKey = useAPIQueryKey('private-widget/load-sum'); + + const action = { + async create(params: PrivateWidgetCreateParameters) { + return SpaceConnector.clientV2.dashboard.privateWidget.create(params); + }, + async update(params: PrivateWidgetUpdateParameters) { + return SpaceConnector.clientV2.dashboard.privateWidget.update(params); + }, + async delete(params: PrivateWidgetDeleteParameters) { + return SpaceConnector.clientV2.dashboard.privateWidget.delete(params); + }, + async load(params: PrivateWidgetLoadParameters) { + return SpaceConnector.clientV2.dashboard.privateWidget.load(params); + }, + async loadSum(params: PrivateWidgetLoadSumParameters) { + return SpaceConnector.clientV2.dashboard.privateWidget.loadSum(params); + }, + async get(params: PrivateWidgetGetParameters) { + return SpaceConnector.clientV2.dashboard.privateWidget.get(params); + }, + async list(params: PrivateWidgetListParameters) { + return SpaceConnector.clientV2.dashboard.privateWidget.list>(params); + }, + }; + + return { + privateWidgetQueryKey, + privateWidgetListQueryKey, + privateWidgetLoadQueryKey, + privateWidgetLoadSumQueryKey, + privateWidgetAPI: action, + }; +}; diff --git a/apps/web/src/schema/dashboard/private-widget/api-verbs/create.ts b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/create.ts similarity index 89% rename from apps/web/src/schema/dashboard/private-widget/api-verbs/create.ts rename to apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/create.ts index 147e81c547..1d95c873f3 100644 --- a/apps/web/src/schema/dashboard/private-widget/api-verbs/create.ts +++ b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/create.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { WidgetSize } from '@/common/modules/widgets/types/widget-display-type'; import type { WidgetType, WidgetState } from '@/common/modules/widgets/types/widget-model'; diff --git a/apps/web/src/schema/dashboard/private-widget/api-verbs/delete.ts b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/dashboard/private-widget/api-verbs/delete.ts rename to apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/dashboard/private-widget/api-verbs/get.ts b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/dashboard/private-widget/api-verbs/get.ts rename to apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/dashboard/private-widget/api-verbs/list.ts b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/dashboard/private-widget/api-verbs/list.ts rename to apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/dashboard/private-widget/api-verbs/load-sum.ts b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/load-sum.ts similarity index 65% rename from apps/web/src/schema/dashboard/private-widget/api-verbs/load-sum.ts rename to apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/load-sum.ts index 6dfacf812e..a530d3edb1 100644 --- a/apps/web/src/schema/dashboard/private-widget/api-verbs/load-sum.ts +++ b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/load-sum.ts @@ -1,4 +1,4 @@ -import type { DashboardVars } from '@/schema/dashboard/_types/dashboard-type'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; export interface PrivateWidgetLoadSumParameters { widget_id: string; diff --git a/apps/web/src/schema/dashboard/private-widget/api-verbs/load.ts b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/load.ts similarity index 66% rename from apps/web/src/schema/dashboard/private-widget/api-verbs/load.ts rename to apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/load.ts index c3a5b883a9..11412aafbd 100644 --- a/apps/web/src/schema/dashboard/private-widget/api-verbs/load.ts +++ b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/load.ts @@ -1,7 +1,7 @@ import type { Sort } from '@cloudforet/core-lib/space-connector/type'; -import type { Page } from '@/schema/_common/type'; -import type { DashboardVars } from '@/schema/dashboard/_types/dashboard-type'; +import type { Page } from '@/api-clients/_common/schema/type'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; export interface PrivateWidgetLoadParameters { widget_id: string; diff --git a/apps/web/src/schema/dashboard/private-widget/api-verbs/update.ts b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/update.ts similarity index 86% rename from apps/web/src/schema/dashboard/private-widget/api-verbs/update.ts rename to apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/update.ts index 31a908eb44..34f946baba 100644 --- a/apps/web/src/schema/dashboard/private-widget/api-verbs/update.ts +++ b/apps/web/src/api-clients/dashboard/private-widget/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { WidgetSize } from '@/common/modules/widgets/types/widget-display-type'; import type { WidgetType, WidgetState } from '@/common/modules/widgets/types/widget-model'; diff --git a/apps/web/src/schema/dashboard/private-widget/model.ts b/apps/web/src/api-clients/dashboard/private-widget/schema/model.ts similarity index 93% rename from apps/web/src/schema/dashboard/private-widget/model.ts rename to apps/web/src/api-clients/dashboard/private-widget/schema/model.ts index 5ccf39e18a..33696fe49a 100644 --- a/apps/web/src/schema/dashboard/private-widget/model.ts +++ b/apps/web/src/api-clients/dashboard/private-widget/schema/model.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { WidgetFieldValue } from '@/common/modules/widgets/_widget-field-value-manager/type'; import type { WidgetSize } from '@/common/modules/widgets/types/widget-display-type'; diff --git a/apps/web/src/api-clients/dashboard/public-dashboard/composables/use-public-dashboard-api.ts b/apps/web/src/api-clients/dashboard/public-dashboard/composables/use-public-dashboard-api.ts new file mode 100644 index 0000000000..9a04d3f2e5 --- /dev/null +++ b/apps/web/src/api-clients/dashboard/public-dashboard/composables/use-public-dashboard-api.ts @@ -0,0 +1,70 @@ +import type { ComputedRef } from 'vue'; + +import type { QueryKey } from '@tanstack/vue-query'; + +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { PublicDashboardChangeFolderParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/change-folder'; +import type { PublicDashboardCreateParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/create'; +import type { PublicDashboardDeleteParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/delete'; +import type { PublicDashboardGetParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/get'; +import type { PublicDashboardListParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/list'; +import type { PublicDashboardShareParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/share'; +import type { PublicDashboardUnshareParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/unshare'; +import type { PublicDashboardUpdateParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/update'; +import type { PublicDashboardModel } from '@/api-clients/dashboard/public-dashboard/schema/model'; + +interface UsePublicDashboardApiReturn { + publicDashboardQueryKey: ComputedRef; + publicDashboardListQueryKey: ComputedRef; + publicDashboardAPI: { + create: (params: PublicDashboardCreateParameters) => Promise; + update: (params: PublicDashboardUpdateParameters) => Promise; + changeFolder: (params: PublicDashboardChangeFolderParameters) => Promise; + share: (params: PublicDashboardShareParameters) => Promise; + unshare: (params: PublicDashboardUnshareParameters) => Promise; + delete: (params: PublicDashboardDeleteParameters) => Promise; + get: (params: PublicDashboardGetParameters) => Promise; + list: (params: PublicDashboardListParameters) => Promise>; + } +} + +export const usePublicDashboardApi = (): UsePublicDashboardApiReturn => { + const publicDashboardQueryKey = useAPIQueryKey('public-dashboard/get'); + const publicDashboardListQueryKey = useAPIQueryKey('public-dashboard/list'); + + const actions = { + async create(params: PublicDashboardCreateParameters) { + return SpaceConnector.clientV2.dashboard.publicDashboard.create(params); + }, + async update(params: PublicDashboardUpdateParameters) { + return SpaceConnector.clientV2.dashboard.publicDashboard.update(params); + }, + async changeFolder(params: PublicDashboardChangeFolderParameters) { + return SpaceConnector.clientV2.dashboard.publicDashboard.changeFolder(params); + }, + async share(params: PublicDashboardShareParameters) { + return SpaceConnector.clientV2.dashboard.publicDashboard.share(params); + }, + async unshare(params: PublicDashboardUnshareParameters) { + return SpaceConnector.clientV2.dashboard.publicDashboard.unshare(params); + }, + async delete(params: PublicDashboardDeleteParameters) { + return SpaceConnector.clientV2.dashboard.publicDashboard.delete(params); + }, + async get(params: PublicDashboardGetParameters) { + return SpaceConnector.clientV2.dashboard.publicDashboard.get(params); + }, + async list(params: PublicDashboardListParameters) { + return SpaceConnector.clientV2.dashboard.publicDashboard.list>(params); + }, + }; + + return { + publicDashboardQueryKey, + publicDashboardListQueryKey, + publicDashboardAPI: actions, + }; +}; diff --git a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/change-folder.ts b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/change-folder.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-dashboard/api-verbs/change-folder.ts rename to apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/change-folder.ts diff --git a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/create.ts b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/create.ts similarity index 79% rename from apps/web/src/schema/dashboard/public-dashboard/api-verbs/create.ts rename to apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/create.ts index 4898b7909f..fe5c4718e0 100644 --- a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/create.ts +++ b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/create.ts @@ -1,10 +1,10 @@ -import type { Tags } from '@/schema/_common/model'; -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import type { DashboardOptions, DashboardVariables, DashboardVariablesSchema, DashboardVars, DashboardGlobalVariablesSchema, -} from '@/schema/dashboard/_types/dashboard-type'; +} from '@/api-clients/dashboard/_types/dashboard-type'; import type { SharedDashboardLayout } from '@/services/dashboards/types/shared-dashboard-type'; diff --git a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/delete.ts b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-dashboard/api-verbs/delete.ts rename to apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/get.ts b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-dashboard/api-verbs/get.ts rename to apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/list.ts b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-dashboard/api-verbs/list.ts rename to apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/share.ts b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/share.ts similarity index 55% rename from apps/web/src/schema/dashboard/public-dashboard/api-verbs/share.ts rename to apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/share.ts index 886f84fecd..8e560be5e0 100644 --- a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/share.ts +++ b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/share.ts @@ -1,4 +1,4 @@ -import type { DashboardScope } from '@/schema/dashboard/_types/dashboard-type'; +import type { DashboardScope } from '@/api-clients/dashboard/_types/dashboard-type'; export interface PublicDashboardShareParameters { dashboard_id: string; diff --git a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/unshare.ts b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/unshare.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-dashboard/api-verbs/unshare.ts rename to apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/unshare.ts diff --git a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/update.ts b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/update.ts similarity index 81% rename from apps/web/src/schema/dashboard/public-dashboard/api-verbs/update.ts rename to apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/update.ts index bcf8a6ea39..4f2a503a2f 100644 --- a/apps/web/src/schema/dashboard/public-dashboard/api-verbs/update.ts +++ b/apps/web/src/api-clients/dashboard/public-dashboard/schema/api-verbs/update.ts @@ -1,9 +1,9 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { DashboardOptions, DashboardVariables, DashboardVariablesSchema, DashboardLayout, DashboardVars, DashboardGlobalVariablesSchema, -} from '@/schema/dashboard/_types/dashboard-type'; +} from '@/api-clients/dashboard/_types/dashboard-type'; export interface PublicDashboardUpdateParameters { diff --git a/apps/web/src/schema/dashboard/public-dashboard/model.ts b/apps/web/src/api-clients/dashboard/public-dashboard/schema/model.ts similarity index 82% rename from apps/web/src/schema/dashboard/public-dashboard/model.ts rename to apps/web/src/api-clients/dashboard/public-dashboard/schema/model.ts index dc416a6077..5ae600ff6d 100644 --- a/apps/web/src/schema/dashboard/public-dashboard/model.ts +++ b/apps/web/src/api-clients/dashboard/public-dashboard/schema/model.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import type { DashboardLayout, DashboardOptions, @@ -8,7 +8,7 @@ import type { DashboardVars, DashboardScope, DashboardGlobalVariablesSchema, -} from '@/schema/dashboard/_types/dashboard-type'; +} from '@/api-clients/dashboard/_types/dashboard-type'; export interface PublicDashboardModel { diff --git a/apps/web/src/api-clients/dashboard/public-data-table/composables/use-public-data-table-api.ts b/apps/web/src/api-clients/dashboard/public-data-table/composables/use-public-data-table-api.ts new file mode 100644 index 0000000000..b40aa342a5 --- /dev/null +++ b/apps/web/src/api-clients/dashboard/public-data-table/composables/use-public-data-table-api.ts @@ -0,0 +1,70 @@ +import type { ComputedRef } from 'vue'; + +import type { QueryKey } from '@tanstack/vue-query'; + +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { DataTableLoadResponse } from '@/api-clients/dashboard/_types/widget-type'; +import type { DataTableAddParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/add'; +import type { DataTableDeleteParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/delete'; +import type { DataTableGetParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/get'; +import type { DataTableListParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/list'; +import type { DataTableLoadParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/load'; +import type { DataTableTransformParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/transform'; +import type { DataTableUpdateParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/update'; +import type { PublicDataTableModel } from '@/api-clients/dashboard/public-data-table/schema/model'; + + +interface UsePublicDataTableApiReturn { + publicDataTableQueryKey: ComputedRef; + publicDataTableListQueryKey: ComputedRef; + publicDataTableLoadQueryKey: ComputedRef; + publicDataTableAPI: { + add: (params: DataTableAddParameters) => Promise; + transform: (params: DataTableTransformParameters) => Promise; + update: (params: DataTableUpdateParameters) => Promise; + delete: (params: DataTableDeleteParameters) => Promise; + load: (params: DataTableLoadParameters) => Promise; + get: (params: DataTableGetParameters) => Promise; + list: (params: DataTableListParameters) => Promise>; + } +} + +export const usePublicDataTableApi = (): UsePublicDataTableApiReturn => { + const publicDataTableQueryKey = useAPIQueryKey('public-data-table/get'); + const publicDataTableListQueryKey = useAPIQueryKey('public-data-table/list'); + const publicDataTableLoadQueryKey = useAPIQueryKey('public-data-table/load'); + + const action = { + async add(params: DataTableAddParameters) { + return SpaceConnector.clientV2.dashboard.publicDataTable.add(params); + }, + async transform(params: DataTableTransformParameters) { + return SpaceConnector.clientV2.dashboard.publicDataTable.transform(params); + }, + async update(params: DataTableUpdateParameters) { + return SpaceConnector.clientV2.dashboard.publicDataTable.update(params); + }, + async delete(params: DataTableDeleteParameters) { + return SpaceConnector.clientV2.dashboard.publicDataTable.delete(params); + }, + async load(params: DataTableLoadParameters) { + return SpaceConnector.clientV2.dashboard.publicDataTable.load(params); + }, + async get(params: DataTableGetParameters) { + return SpaceConnector.clientV2.dashboard.publicDataTable.get(params); + }, + async list(params: DataTableListParameters) { + return SpaceConnector.clientV2.dashboard.publicDataTable.list>(params); + }, + }; + + return { + publicDataTableQueryKey, + publicDataTableListQueryKey, + publicDataTableLoadQueryKey, + publicDataTableAPI: action, + }; +}; diff --git a/apps/web/src/schema/dashboard/public-data-table/api-verbs/add.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/add.ts similarity index 67% rename from apps/web/src/schema/dashboard/public-data-table/api-verbs/add.ts rename to apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/add.ts index 04d55a0fc8..b58c7c4d6b 100644 --- a/apps/web/src/schema/dashboard/public-data-table/api-verbs/add.ts +++ b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/add.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { DashboardVars } from '@/schema/dashboard/_types/dashboard-type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; import type { DataTableOptions, DataTableSourceType, diff --git a/apps/web/src/schema/dashboard/public-data-table/api-verbs/delete.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-data-table/api-verbs/delete.ts rename to apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/dashboard/public-data-table/api-verbs/get.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-data-table/api-verbs/get.ts rename to apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/dashboard/public-data-table/api-verbs/list.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-data-table/api-verbs/list.ts rename to apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/list.ts diff --git a/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/load.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/load.ts new file mode 100644 index 0000000000..defac8b27b --- /dev/null +++ b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/load.ts @@ -0,0 +1,15 @@ +import type { Page } from '@/api-clients/_common/schema/type'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; +import type { Granularity } from '@/api-clients/dashboard/_types/widget-type'; + + + +export interface DataTableLoadParameters { + data_table_id: string; + granularity: Granularity; + start?: string; + end?: string; + sort?: any[]; + page?: Page; + vars?: DashboardVars; +} diff --git a/apps/web/src/schema/dashboard/public-data-table/api-verbs/transform.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/transform.ts similarity index 68% rename from apps/web/src/schema/dashboard/public-data-table/api-verbs/transform.ts rename to apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/transform.ts index 3e41dbc784..4e18967e73 100644 --- a/apps/web/src/schema/dashboard/public-data-table/api-verbs/transform.ts +++ b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/transform.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { DashboardVars } from '@/schema/dashboard/_types/dashboard-type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; import type { DataTableOperator, diff --git a/apps/web/src/schema/dashboard/public-data-table/api-verbs/update.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/update.ts similarity index 63% rename from apps/web/src/schema/dashboard/public-data-table/api-verbs/update.ts rename to apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/update.ts index 8211c0f670..9641db8bbc 100644 --- a/apps/web/src/schema/dashboard/public-data-table/api-verbs/update.ts +++ b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { DashboardVars } from '@/schema/dashboard/_types/dashboard-type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; import type { DataTableOptions } from '@/common/modules/widgets/types/widget-model'; diff --git a/apps/web/src/schema/dashboard/public-data-table/model.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/model.ts similarity index 85% rename from apps/web/src/schema/dashboard/public-data-table/model.ts rename to apps/web/src/api-clients/dashboard/public-data-table/schema/model.ts index 0c2c63e4b8..81b3815482 100644 --- a/apps/web/src/schema/dashboard/public-data-table/model.ts +++ b/apps/web/src/api-clients/dashboard/public-data-table/schema/model.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import type { DataInfo, diff --git a/apps/web/src/api-clients/dashboard/public-folder/composables/use-public-folder-api.ts b/apps/web/src/api-clients/dashboard/public-folder/composables/use-public-folder-api.ts new file mode 100644 index 0000000000..73b3878793 --- /dev/null +++ b/apps/web/src/api-clients/dashboard/public-folder/composables/use-public-folder-api.ts @@ -0,0 +1,65 @@ +import type { ComputedRef } from 'vue'; + +import type { QueryKey } from '@tanstack/vue-query'; + +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { PublicFolderCreateParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/create'; +import type { PublicFolderDeleteParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/delete'; +import type { PublicFolderGetParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/get'; +import type { PublicFolderListParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/list'; +import type { PublicFolderShareParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/share'; +import type { PublicFolderUnshareParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/unshare'; +import type { PublicFolderUpdateParameters } from '@/api-clients/dashboard/public-folder/schema/api-verbs/update'; +import type { PublicFolderModel } from '@/api-clients/dashboard/public-folder/schema/model'; + +interface UsePublicFolderApiReturn { + publicFolderQueryKey: ComputedRef; + publicFolderListQueryKey: ComputedRef; + publicFolderAPI: { + create: (params: PublicFolderCreateParameters) => Promise; + update: (params: PublicFolderUpdateParameters) => Promise; + share: (params: PublicFolderShareParameters) => Promise; + unshare: (params: PublicFolderUnshareParameters) => Promise; + delete: (params: PublicFolderDeleteParameters) => Promise; + get: (params: PublicFolderGetParameters) => Promise; + list: (params: PublicFolderListParameters) => Promise>; + } +} + +export const usePublicFolderApi = (): UsePublicFolderApiReturn => { + const publicFolderQueryKey = useAPIQueryKey('public-folder/get'); + const publicFolderListQueryKey = useAPIQueryKey('public-folder/list'); + + const action = { + async create(params: PublicFolderCreateParameters) { + return SpaceConnector.clientV2.dashboard.publicFolder.create(params); + }, + async update(params: PublicFolderUpdateParameters) { + return SpaceConnector.clientV2.dashboard.publicFolder.update(params); + }, + async share(params: PublicFolderShareParameters) { + return SpaceConnector.clientV2.dashboard.publicFolder.share(params); + }, + async unshare(params: PublicFolderUnshareParameters) { + return SpaceConnector.clientV2.dashboard.publicFolder.unshare(params); + }, + async delete(params: PublicFolderDeleteParameters) { + return SpaceConnector.clientV2.dashboard.publicFolder.delete(params); + }, + async get(params: PublicFolderGetParameters) { + return SpaceConnector.clientV2.dashboard.publicFolder.get(params); + }, + async list(params: PublicFolderListParameters) { + return SpaceConnector.clientV2.dashboard.publicFolder.list>(params); + }, + }; + + return { + publicFolderQueryKey, + publicFolderListQueryKey, + publicFolderAPI: action, + }; +}; diff --git a/apps/web/src/schema/dashboard/public-folder/api-verbs/create.ts b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/create.ts similarity index 63% rename from apps/web/src/schema/dashboard/public-folder/api-verbs/create.ts rename to apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/create.ts index 0a36ddc1d1..76d46dcf06 100644 --- a/apps/web/src/schema/dashboard/public-folder/api-verbs/create.ts +++ b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; export interface PublicFolderCreateParameters { diff --git a/apps/web/src/schema/dashboard/public-folder/api-verbs/delete.ts b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-folder/api-verbs/delete.ts rename to apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/delete.ts diff --git a/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/get.ts b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/get.ts new file mode 100644 index 0000000000..574a6b007f --- /dev/null +++ b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/get.ts @@ -0,0 +1,3 @@ +export interface PublicFolderGetParameters { + folder_id: string; +} diff --git a/apps/web/src/schema/dashboard/public-folder/api-verbs/list.ts b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-folder/api-verbs/list.ts rename to apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/dashboard/public-folder/api-verbs/share.ts b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/share.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-folder/api-verbs/share.ts rename to apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/share.ts diff --git a/apps/web/src/schema/dashboard/public-folder/api-verbs/unshare.ts b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/unshare.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-folder/api-verbs/unshare.ts rename to apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/unshare.ts diff --git a/apps/web/src/schema/dashboard/public-folder/api-verbs/update.ts b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/update.ts similarity index 63% rename from apps/web/src/schema/dashboard/public-folder/api-verbs/update.ts rename to apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/update.ts index 866a2826f1..89398261c5 100644 --- a/apps/web/src/schema/dashboard/public-folder/api-verbs/update.ts +++ b/apps/web/src/api-clients/dashboard/public-folder/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; export interface PublicFolderUpdateParameters { diff --git a/apps/web/src/schema/dashboard/public-folder/model.ts b/apps/web/src/api-clients/dashboard/public-folder/schema/model.ts similarity index 72% rename from apps/web/src/schema/dashboard/public-folder/model.ts rename to apps/web/src/api-clients/dashboard/public-folder/schema/model.ts index 275b136a0a..424b1471ea 100644 --- a/apps/web/src/schema/dashboard/public-folder/model.ts +++ b/apps/web/src/api-clients/dashboard/public-folder/schema/model.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; export interface PublicFolderModel { folder_id: string; diff --git a/apps/web/src/api-clients/dashboard/public-widget/composables/use-public-widget-api.ts b/apps/web/src/api-clients/dashboard/public-widget/composables/use-public-widget-api.ts new file mode 100644 index 0000000000..c30613da9f --- /dev/null +++ b/apps/web/src/api-clients/dashboard/public-widget/composables/use-public-widget-api.ts @@ -0,0 +1,72 @@ +import type { ComputedRef } from 'vue'; + +import type { QueryKey } from '@tanstack/vue-query'; + +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { WidgetLoadResponse } from '@/api-clients/dashboard/_types/widget-type'; +import type { PublicWidgetCreateParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/create'; +import type { PublicWidgetDeleteParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/delete'; +import type { PublicWidgetGetParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/get'; +import type { PublicWidgetListParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/list'; +import type { PublicWidgetLoadParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/load'; +import type { PublicWidgetLoadSumParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/load-sum'; +import type { PublicWidgetUpdateParameters } from '@/api-clients/dashboard/public-widget/schema/api-verbs/update'; +import type { PublicWidgetModel } from '@/api-clients/dashboard/public-widget/schema/model'; + +interface UsePublicWidgetApiReturn { + publicWidgetQueryKey: ComputedRef; + publicWidgetListQueryKey: ComputedRef; + publicWidgetLoadQueryKey: ComputedRef; + publicWidgetLoadSumQueryKey: ComputedRef; + publicWidgetAPI: { + create: (params: PublicWidgetCreateParameters) => Promise; + update: (params: PublicWidgetUpdateParameters) => Promise; + delete: (params: PublicWidgetDeleteParameters) => Promise; + load: (params: PublicWidgetLoadParameters) => Promise; + loadSum: (params: PublicWidgetLoadSumParameters) => Promise; + get: (params: PublicWidgetGetParameters) => Promise; + list: (params: PublicWidgetListParameters) => Promise>; + } +} + +export const usePublicWidgetApi = (): UsePublicWidgetApiReturn => { + const publicWidgetQueryKey = useAPIQueryKey('public-widget/get'); + const publicWidgetListQueryKey = useAPIQueryKey('public-widget/list'); + const publicWidgetLoadQueryKey = useAPIQueryKey('public-widget/load'); + const publicWidgetLoadSumQueryKey = useAPIQueryKey('public-widget/load-sum'); + + const action = { + async create(params: PublicWidgetCreateParameters) { + return SpaceConnector.clientV2.dashboard.publicWidget.create(params); + }, + async update(params: PublicWidgetUpdateParameters) { + return SpaceConnector.clientV2.dashboard.publicWidget.update(params); + }, + async delete(params: PublicWidgetDeleteParameters) { + return SpaceConnector.clientV2.dashboard.publicWidget.delete(params); + }, + async load(params: PublicWidgetLoadParameters) { + return SpaceConnector.clientV2.dashboard.publicWidget.load(params); + }, + async loadSum(params: PublicWidgetLoadSumParameters) { + return SpaceConnector.clientV2.dashboard.publicWidget.loadSum(params); + }, + async get(params: PublicWidgetGetParameters) { + return SpaceConnector.clientV2.dashboard.publicWidget.get(params); + }, + async list(params: PublicWidgetListParameters) { + return SpaceConnector.clientV2.dashboard.publicWidget.list>(params); + }, + }; + + return { + publicWidgetQueryKey, + publicWidgetListQueryKey, + publicWidgetLoadQueryKey, + publicWidgetLoadSumQueryKey, + publicWidgetAPI: action, + }; +}; diff --git a/apps/web/src/schema/dashboard/public-widget/api-verbs/create.ts b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/create.ts similarity index 89% rename from apps/web/src/schema/dashboard/public-widget/api-verbs/create.ts rename to apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/create.ts index 845aa99ac7..3b5d7f9502 100644 --- a/apps/web/src/schema/dashboard/public-widget/api-verbs/create.ts +++ b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/create.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { WidgetSize } from '@/common/modules/widgets/types/widget-display-type'; import type { WidgetState, WidgetType } from '@/common/modules/widgets/types/widget-model'; diff --git a/apps/web/src/schema/dashboard/public-widget/api-verbs/delete.ts b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-widget/api-verbs/delete.ts rename to apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/dashboard/public-widget/api-verbs/get.ts b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-widget/api-verbs/get.ts rename to apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/dashboard/public-widget/api-verbs/list.ts b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/dashboard/public-widget/api-verbs/list.ts rename to apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/dashboard/public-widget/api-verbs/load-sum.ts b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/load-sum.ts similarity index 65% rename from apps/web/src/schema/dashboard/public-widget/api-verbs/load-sum.ts rename to apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/load-sum.ts index 229cc160b4..d3f18c4ed2 100644 --- a/apps/web/src/schema/dashboard/public-widget/api-verbs/load-sum.ts +++ b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/load-sum.ts @@ -1,4 +1,4 @@ -import type { DashboardVars } from '@/schema/dashboard/_types/dashboard-type'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; export interface PublicWidgetLoadSumParameters { widget_id: string; diff --git a/apps/web/src/schema/dashboard/public-widget/api-verbs/load.ts b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/load.ts similarity index 66% rename from apps/web/src/schema/dashboard/public-widget/api-verbs/load.ts rename to apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/load.ts index a68d2d6048..92f91961bd 100644 --- a/apps/web/src/schema/dashboard/public-widget/api-verbs/load.ts +++ b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/load.ts @@ -1,7 +1,7 @@ import type { Sort } from '@cloudforet/core-lib/space-connector/type'; -import type { Page } from '@/schema/_common/type'; -import type { DashboardVars } from '@/schema/dashboard/_types/dashboard-type'; +import type { Page } from '@/api-clients/_common/schema/type'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; export interface PublicWidgetLoadParameters { widget_id: string; diff --git a/apps/web/src/schema/dashboard/public-widget/api-verbs/update.ts b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/update.ts similarity index 86% rename from apps/web/src/schema/dashboard/public-widget/api-verbs/update.ts rename to apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/update.ts index 012e6d8e1c..2e9800a142 100644 --- a/apps/web/src/schema/dashboard/public-widget/api-verbs/update.ts +++ b/apps/web/src/api-clients/dashboard/public-widget/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import type { WidgetSize } from '@/common/modules/widgets/types/widget-display-type'; import type { WidgetType, WidgetState } from '@/common/modules/widgets/types/widget-model'; diff --git a/apps/web/src/schema/dashboard/public-widget/model.ts b/apps/web/src/api-clients/dashboard/public-widget/schema/model.ts similarity index 87% rename from apps/web/src/schema/dashboard/public-widget/model.ts rename to apps/web/src/api-clients/dashboard/public-widget/schema/model.ts index 28481d29d8..a844fc6f8a 100644 --- a/apps/web/src/schema/dashboard/public-widget/model.ts +++ b/apps/web/src/api-clients/dashboard/public-widget/schema/model.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { ResourceGroupType } from '@/schema/_common/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import type { WidgetFieldValue } from '@/common/modules/widgets/_widget-field-value-manager/type'; import type { WidgetSize } from '@/common/modules/widgets/types/widget-display-type'; diff --git a/apps/web/src/schema/opsflow/_types/task-field-type.ts b/apps/web/src/api-clients/opsflow/_types/task-field-type.ts similarity index 100% rename from apps/web/src/schema/opsflow/_types/task-field-type.ts rename to apps/web/src/api-clients/opsflow/_types/task-field-type.ts diff --git a/apps/web/src/api-clients/opsflow/comment/composables/use-comment-api.ts b/apps/web/src/api-clients/opsflow/comment/composables/use-comment-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/opsflow/comment/api-verbs/create.ts b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/create.ts similarity index 63% rename from apps/web/src/schema/opsflow/comment/api-verbs/create.ts rename to apps/web/src/api-clients/opsflow/comment/schema/api-verbs/create.ts index 3dfad8bce1..f4892d66f8 100644 --- a/apps/web/src/schema/opsflow/comment/api-verbs/create.ts +++ b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/create.ts @@ -1,4 +1,4 @@ -import type { MentionTargets } from '@/schema/opsflow/comment/type'; +import type { MentionTargets } from '../type'; export interface CommentCreateParameters { task_id: string; diff --git a/apps/web/src/schema/opsflow/comment/api-verbs/delete.ts b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/opsflow/comment/api-verbs/delete.ts rename to apps/web/src/api-clients/opsflow/comment/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/opsflow/comment/api-verbs/get.ts b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/opsflow/comment/api-verbs/get.ts rename to apps/web/src/api-clients/opsflow/comment/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/opsflow/comment/api-verbs/list.ts b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/list.ts similarity index 82% rename from apps/web/src/schema/opsflow/comment/api-verbs/list.ts rename to apps/web/src/api-clients/opsflow/comment/schema/api-verbs/list.ts index 4d58e07bd0..88db0c4a8c 100644 --- a/apps/web/src/schema/opsflow/comment/api-verbs/list.ts +++ b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { CommentType } from '@/schema/opsflow/comment/type'; +import type { CommentType } from '../type'; export interface CommentListParameters { query?: Query; diff --git a/apps/web/src/schema/opsflow/comment/api-verbs/update.ts b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/update.ts similarity index 63% rename from apps/web/src/schema/opsflow/comment/api-verbs/update.ts rename to apps/web/src/api-clients/opsflow/comment/schema/api-verbs/update.ts index bdb9a66df7..ed5aad93bf 100644 --- a/apps/web/src/schema/opsflow/comment/api-verbs/update.ts +++ b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { MentionTargets } from '@/schema/opsflow/comment/type'; +import type { MentionTargets } from '../type'; export interface CommentUpdateParameters { comment_id: string; diff --git a/apps/web/src/schema/opsflow/comment/model.ts b/apps/web/src/api-clients/opsflow/comment/schema/model.ts similarity index 84% rename from apps/web/src/schema/opsflow/comment/model.ts rename to apps/web/src/api-clients/opsflow/comment/schema/model.ts index 0784502dba..a2ded68fa4 100644 --- a/apps/web/src/schema/opsflow/comment/model.ts +++ b/apps/web/src/api-clients/opsflow/comment/schema/model.ts @@ -1,5 +1,5 @@ -import type { ResourceGroupType } from '@/schema/_common/type'; -import type { CommentType, MentionTargets, MentionSource } from '@/schema/opsflow/comment/type'; +import type { ResourceGroupType } from '../../../_common/schema/type'; +import type { CommentType, MentionTargets, MentionSource } from './type'; export interface CommentModel { comment_id: string; diff --git a/apps/web/src/schema/opsflow/comment/type.ts b/apps/web/src/api-clients/opsflow/comment/schema/type.ts similarity index 100% rename from apps/web/src/schema/opsflow/comment/type.ts rename to apps/web/src/api-clients/opsflow/comment/schema/type.ts diff --git a/apps/web/src/api-clients/opsflow/event/composables/use-event-api.ts b/apps/web/src/api-clients/opsflow/event/composables/use-event-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/opsflow/event/api-verbs/list.ts b/apps/web/src/api-clients/opsflow/event/schema/api-verbs/list.ts similarity index 83% rename from apps/web/src/schema/opsflow/event/api-verbs/list.ts rename to apps/web/src/api-clients/opsflow/event/schema/api-verbs/list.ts index bceb8facb8..7b160e4d70 100644 --- a/apps/web/src/schema/opsflow/event/api-verbs/list.ts +++ b/apps/web/src/api-clients/opsflow/event/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { EventType } from '@/schema/opsflow/event/type'; +import type { EventType } from '../type'; export interface EventListParameters { query?: Query; diff --git a/apps/web/src/schema/opsflow/event/model.ts b/apps/web/src/api-clients/opsflow/event/schema/model.ts similarity index 80% rename from apps/web/src/schema/opsflow/event/model.ts rename to apps/web/src/api-clients/opsflow/event/schema/model.ts index 5cfd995baa..0a4d576695 100644 --- a/apps/web/src/schema/opsflow/event/model.ts +++ b/apps/web/src/api-clients/opsflow/event/schema/model.ts @@ -1,4 +1,4 @@ -import type { EventType, EventAdditionalInfo } from '@/schema/opsflow/event/type'; +import type { EventType, EventAdditionalInfo } from './type'; export interface EventModel { event_id: string; diff --git a/apps/web/src/schema/opsflow/event/type.ts b/apps/web/src/api-clients/opsflow/event/schema/type.ts similarity index 89% rename from apps/web/src/schema/opsflow/event/type.ts rename to apps/web/src/api-clients/opsflow/event/schema/type.ts index b3eca6260f..544e2b3e46 100644 --- a/apps/web/src/schema/opsflow/event/type.ts +++ b/apps/web/src/api-clients/opsflow/event/schema/type.ts @@ -1,4 +1,4 @@ -import type { TaskStatusType } from '@/schema/opsflow/task/type'; +import type { TaskStatusType } from '../../task/schema/type'; export type EventType = 'CREATED'|'UPDATED'|'CHANGE_STATUS'|'COMMENTED'; export interface UpdatedDatum { diff --git a/apps/web/src/api-clients/opsflow/task-category/composables/use-task-category-api.ts b/apps/web/src/api-clients/opsflow/task-category/composables/use-task-category-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/opsflow/task-category/api-verbs/create.ts b/apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/create.ts similarity index 65% rename from apps/web/src/schema/opsflow/task-category/api-verbs/create.ts rename to apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/create.ts index 9c0ae46e28..362a0821d1 100644 --- a/apps/web/src/schema/opsflow/task-category/api-verbs/create.ts +++ b/apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/create.ts @@ -1,6 +1,6 @@ -import type { Tags } from '@/schema/_common/model'; -import type { TaskField } from '@/schema/opsflow/_types/task-field-type'; -import type { TaskStatusType, TaskStatusOptionWithOptionalId } from '@/schema/opsflow/task/type'; +import type { Tags } from '../../../../_common/schema/model'; +import type { TaskField } from '../../../_types/task-field-type'; +import type { TaskStatusType, TaskStatusOptionWithOptionalId } from '../../../task/schema/type'; export interface TaskCategoryCreateParameters { diff --git a/apps/web/src/schema/opsflow/task-category/api-verbs/delete.ts b/apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/opsflow/task-category/api-verbs/delete.ts rename to apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/opsflow/task-category/api-verbs/get.ts b/apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/opsflow/task-category/api-verbs/get.ts rename to apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/opsflow/task-category/api-verbs/list.ts b/apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/opsflow/task-category/api-verbs/list.ts rename to apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/opsflow/task-category/api-verbs/update.ts b/apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/update.ts similarity index 63% rename from apps/web/src/schema/opsflow/task-category/api-verbs/update.ts rename to apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/update.ts index d5c28948af..aa17aec879 100644 --- a/apps/web/src/schema/opsflow/task-category/api-verbs/update.ts +++ b/apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/update.ts @@ -1,6 +1,7 @@ -import type { Tags } from '@/schema/_common/model'; -import type { TaskField } from '@/schema/opsflow/_types/task-field-type'; -import type { TaskStatusOptions, TaskStatusOptionWithOptionalId, TaskStatusType } from '@/schema/opsflow/task/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { TaskField } from '@/api-clients/opsflow/_types/task-field-type'; +import type { TaskStatusOptions, TaskStatusOptionWithOptionalId, TaskStatusType } from '@/api-clients/opsflow/task/schema/type'; + export interface TaskCategoryUpdateParameters { category_id: string; diff --git a/apps/web/src/schema/opsflow/task-category/model.ts b/apps/web/src/api-clients/opsflow/task-category/schema/model.ts similarity index 63% rename from apps/web/src/schema/opsflow/task-category/model.ts rename to apps/web/src/api-clients/opsflow/task-category/schema/model.ts index 08fb0ed7ce..b8265c88c9 100644 --- a/apps/web/src/schema/opsflow/task-category/model.ts +++ b/apps/web/src/api-clients/opsflow/task-category/schema/model.ts @@ -1,6 +1,6 @@ -import type { Tags } from '@/schema/_common/model'; -import type { TaskField } from '@/schema/opsflow/_types/task-field-type'; -import type { TaskStatusOptions } from '@/schema/opsflow/task/type'; +import type { Tags } from '../../../_common/schema/model'; +import type { TaskField } from '../../_types/task-field-type'; +import type { TaskStatusOptions } from '../../task/schema/type'; export interface TaskCategoryModel { category_id: string; diff --git a/apps/web/src/api-clients/opsflow/task-type/composables/use-task-type-api.ts b/apps/web/src/api-clients/opsflow/task-type/composables/use-task-type-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/opsflow/task-type/api-verbs/create.ts b/apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/create.ts similarity index 60% rename from apps/web/src/schema/opsflow/task-type/api-verbs/create.ts rename to apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/create.ts index f8f400e4a2..2d67d3d7c6 100644 --- a/apps/web/src/schema/opsflow/task-type/api-verbs/create.ts +++ b/apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/create.ts @@ -1,5 +1,6 @@ -import type { Tags } from '@/schema/_common/model'; -import type { TaskField } from '@/schema/opsflow/_types/task-field-type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { TaskField } from '@/api-clients/opsflow/_types/task-field-type'; + export interface TaskTypeCreateParameters { name: string; diff --git a/apps/web/src/schema/opsflow/task-type/api-verbs/delete.ts b/apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/opsflow/task-type/api-verbs/delete.ts rename to apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/opsflow/task-type/api-verbs/get.ts b/apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/opsflow/task-type/api-verbs/get.ts rename to apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/opsflow/task-type/api-verbs/list.ts b/apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/opsflow/task-type/api-verbs/list.ts rename to apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/opsflow/task-type/api-verbs/update-fields.ts b/apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/update-fields.ts similarity index 61% rename from apps/web/src/schema/opsflow/task-type/api-verbs/update-fields.ts rename to apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/update-fields.ts index 4cb2c5db87..b1a17a0418 100644 --- a/apps/web/src/schema/opsflow/task-type/api-verbs/update-fields.ts +++ b/apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/update-fields.ts @@ -1,4 +1,4 @@ -import type { TaskField } from '@/schema/opsflow/_types/task-field-type'; +import type { TaskField } from '@/api-clients/opsflow/_types/task-field-type'; export interface TaskTypeUpdateFieldsParameters { task_type_id: string; diff --git a/apps/web/src/schema/opsflow/task-type/api-verbs/update.ts b/apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/update.ts similarity index 74% rename from apps/web/src/schema/opsflow/task-type/api-verbs/update.ts rename to apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/update.ts index d66eb5f469..332833977b 100644 --- a/apps/web/src/schema/opsflow/task-type/api-verbs/update.ts +++ b/apps/web/src/api-clients/opsflow/task-type/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; export interface TaskTypeUpdateParameters { task_type_id: string; diff --git a/apps/web/src/schema/opsflow/task-type/model.ts b/apps/web/src/api-clients/opsflow/task-type/schema/model.ts similarity index 67% rename from apps/web/src/schema/opsflow/task-type/model.ts rename to apps/web/src/api-clients/opsflow/task-type/schema/model.ts index 23113a3c40..f8608280b9 100644 --- a/apps/web/src/schema/opsflow/task-type/model.ts +++ b/apps/web/src/api-clients/opsflow/task-type/schema/model.ts @@ -1,5 +1,5 @@ -import type { Tags } from '@/schema/_common/model'; -import type { TaskField } from '@/schema/opsflow/_types/task-field-type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { TaskField } from '@/api-clients/opsflow/_types/task-field-type'; export interface TaskTypeModel { task_type_id: string; diff --git a/apps/web/src/api-clients/opsflow/task/composables/use-task-api.ts b/apps/web/src/api-clients/opsflow/task/composables/use-task-api.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/schema/opsflow/task/api-verbs/change-assignee.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/change-assignee.ts similarity index 100% rename from apps/web/src/schema/opsflow/task/api-verbs/change-assignee.ts rename to apps/web/src/api-clients/opsflow/task/schema/api-verbs/change-assignee.ts diff --git a/apps/web/src/schema/opsflow/task/api-verbs/change-status.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/change-status.ts similarity index 100% rename from apps/web/src/schema/opsflow/task/api-verbs/change-status.ts rename to apps/web/src/api-clients/opsflow/task/schema/api-verbs/change-status.ts diff --git a/apps/web/src/schema/opsflow/task/api-verbs/create.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/create.ts similarity index 69% rename from apps/web/src/schema/opsflow/task/api-verbs/create.ts rename to apps/web/src/api-clients/opsflow/task/schema/api-verbs/create.ts index 95babaecfe..59c63d775f 100644 --- a/apps/web/src/schema/opsflow/task/api-verbs/create.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ -import type { MentionTargets } from '@/schema/opsflow/comment/type'; -import type { TaskPriority } from '@/schema/opsflow/task/type'; +import type { MentionTargets } from '../../../comment/schema/type'; +import type { TaskPriority } from '../type'; export interface TaskCreateParameters { task_type_id: string; diff --git a/apps/web/src/schema/opsflow/task/api-verbs/delete.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/opsflow/task/api-verbs/delete.ts rename to apps/web/src/api-clients/opsflow/task/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/opsflow/task/api-verbs/get.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/opsflow/task/api-verbs/get.ts rename to apps/web/src/api-clients/opsflow/task/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/opsflow/task/api-verbs/list.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/list.ts similarity index 82% rename from apps/web/src/schema/opsflow/task/api-verbs/list.ts rename to apps/web/src/api-clients/opsflow/task/schema/api-verbs/list.ts index 54fb135cdb..fe2428ccac 100644 --- a/apps/web/src/schema/opsflow/task/api-verbs/list.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { TaskPriority, TaskStatusType } from '@/schema/opsflow/task/type'; +import type { TaskPriority, TaskStatusType } from '../type'; export interface TaskListParameters { query?: Query; diff --git a/apps/web/src/schema/opsflow/task/api-verbs/update-description.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update-description.ts similarity index 52% rename from apps/web/src/schema/opsflow/task/api-verbs/update-description.ts rename to apps/web/src/api-clients/opsflow/task/schema/api-verbs/update-description.ts index efa47e204c..3522bf9df9 100644 --- a/apps/web/src/schema/opsflow/task/api-verbs/update-description.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update-description.ts @@ -1,5 +1,5 @@ -import type { FileModel } from '@/schema/file-manager/model'; -import type { MentionTargets } from '@/schema/opsflow/comment/type'; +import type { FileModel } from '../../../../../schema/file-manager/model'; +import type { MentionTargets } from '../../../comment/schema/type'; export interface TaskUpdateDescriptionParameters { task_id: string; diff --git a/apps/web/src/schema/opsflow/task/api-verbs/update.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update.ts similarity index 72% rename from apps/web/src/schema/opsflow/task/api-verbs/update.ts rename to apps/web/src/api-clients/opsflow/task/schema/api-verbs/update.ts index 87a62572e0..5aa2fbe6d5 100644 --- a/apps/web/src/schema/opsflow/task/api-verbs/update.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { TaskPriority } from '@/schema/opsflow/task/type'; +import type { TaskPriority } from '../type'; export interface TaskUpdateParameters { task_id: string; diff --git a/apps/web/src/schema/opsflow/task/constant.ts b/apps/web/src/api-clients/opsflow/task/schema/constant.ts similarity index 100% rename from apps/web/src/schema/opsflow/task/constant.ts rename to apps/web/src/api-clients/opsflow/task/schema/constant.ts diff --git a/apps/web/src/schema/opsflow/task/model.ts b/apps/web/src/api-clients/opsflow/task/schema/model.ts similarity index 79% rename from apps/web/src/schema/opsflow/task/model.ts rename to apps/web/src/api-clients/opsflow/task/schema/model.ts index 9d7ed0c9b8..0d0e71b3d5 100644 --- a/apps/web/src/schema/opsflow/task/model.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/model.ts @@ -1,5 +1,5 @@ -import type { FileModel } from '@/schema/file-manager/model'; -import type { TaskPriority, TaskStatusType } from '@/schema/opsflow/task/type'; +import type { FileModel } from '../../../../schema/file-manager/model'; +import type { TaskPriority, TaskStatusType } from './type'; export interface TaskModel { task_id: string; diff --git a/apps/web/src/schema/opsflow/task/type.ts b/apps/web/src/api-clients/opsflow/task/schema/type.ts similarity index 86% rename from apps/web/src/schema/opsflow/task/type.ts rename to apps/web/src/api-clients/opsflow/task/schema/type.ts index 9fdbe2cb88..5df357f08a 100644 --- a/apps/web/src/schema/opsflow/task/type.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/type.ts @@ -1,4 +1,4 @@ -import type { TASK_STATUS_COLOR_NAMES } from '@/schema/opsflow/task/constant'; +import type { TASK_STATUS_COLOR_NAMES } from './constant'; export type TaskStatusType = 'TODO'|'IN_PROGRESS'|'COMPLETED'; export type TaskStatusColorName = typeof TASK_STATUS_COLOR_NAMES[number]; diff --git a/apps/web/src/common/components/inputs/TagsInput.vue b/apps/web/src/common/components/inputs/TagsInput.vue index 0cab82940e..976fe9552d 100644 --- a/apps/web/src/common/components/inputs/TagsInput.vue +++ b/apps/web/src/common/components/inputs/TagsInput.vue @@ -6,7 +6,7 @@ import type { TranslateResult } from 'vue-i18n'; import { PFieldGroup, PTextInput } from '@cloudforet/mirinae'; import type { InputItem } from '@cloudforet/mirinae/types/controls/input/text-input/type'; -import type { Tags } from '@/schema/_common/model'; +import type { Tags } from '@/api-clients/_common/schema/model'; import { i18n } from '@/translations'; import { useProxyValue } from '@/common/composables/proxy-state'; diff --git a/apps/web/src/common/composables/date-range-formatter/__tests__/index.test.ts b/apps/web/src/common/composables/date-range-formatter/__tests__/index.test.ts index 175db30ab3..49964337b3 100644 --- a/apps/web/src/common/composables/date-range-formatter/__tests__/index.test.ts +++ b/apps/web/src/common/composables/date-range-formatter/__tests__/index.test.ts @@ -10,7 +10,7 @@ import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; import { describe, expect, it } from 'vitest'; -import type { DateRange } from '@/schema/dashboard/_types/dashboard-type'; +import type { DateRange } from '@/api-clients/dashboard/_types/dashboard-type'; import { useDateRangeFormatter } from '@/common/composables/date-range-formatter'; diff --git a/apps/web/src/common/composables/editor-content-transformer/index.ts b/apps/web/src/common/composables/editor-content-transformer/index.ts index b6c0d7b69d..6c8a24e8e9 100644 --- a/apps/web/src/common/composables/editor-content-transformer/index.ts +++ b/apps/web/src/common/composables/editor-content-transformer/index.ts @@ -8,7 +8,7 @@ import { isEqual } from 'lodash'; import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; -import type { ContentsType } from '@/schema/_common/type'; +import type { ContentsType } from '@/api-clients/_common/schema/type'; import { getFileDownloadUrl } from '@/lib/file-manager'; import type { FileManagerResourceGroupType } from '@/lib/file-manager/type'; diff --git a/apps/web/src/common/modules/custom-table/custom-field-modal/CustomFieldModal.vue b/apps/web/src/common/modules/custom-table/custom-field-modal/CustomFieldModal.vue index c24880a5fa..d67cd690b2 100644 --- a/apps/web/src/common/modules/custom-table/custom-field-modal/CustomFieldModal.vue +++ b/apps/web/src/common/modules/custom-table/custom-field-modal/CustomFieldModal.vue @@ -10,7 +10,7 @@ import { } from '@cloudforet/mirinae'; import type { DataTableFieldType } from '@cloudforet/mirinae/types/data-display/tables/data-table/type'; -import type { ListResponse } from '@/schema/_common/api-verbs/list'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; import type { UserConfigGetParameters } from '@/schema/config/user-config/api-verbs/get'; import type { UserConfigUpdateParameters } from '@/schema/config/user-config/api-verbs/update'; import type { UserConfigModel } from '@/schema/config/user-config/model'; diff --git a/apps/web/src/common/modules/favorites/favorite-button/FavoriteButton.vue b/apps/web/src/common/modules/favorites/favorite-button/FavoriteButton.vue index 5f6c559ca8..2e2af5f2c0 100644 --- a/apps/web/src/common/modules/favorites/favorite-button/FavoriteButton.vue +++ b/apps/web/src/common/modules/favorites/favorite-button/FavoriteButton.vue @@ -6,13 +6,12 @@ import { useRoute } from 'vue-router/composables'; import { PI } from '@cloudforet/mirinae'; -import type { CostQuerySetModel } from '@/schema/cost-analysis/cost-query-set/model'; +import type { CostQuerySetModel } from '@/api-clients/cost-analysis/cost-query-set/schema/model'; import type { WorkspaceModel } from '@/schema/identity/workspace/model'; import type { MetricExampleModel } from '@/schema/inventory/metric-example/model'; import { useAppContextStore } from '@/store/app-context/app-context-store'; import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; -import { useDashboardStore } from '@/store/dashboard/dashboard-store'; import { useDisplayStore } from '@/store/display/display-store'; import { useAllReferenceStore } from '@/store/reference/all-reference-store'; import type { CloudServiceTypeReferenceMap } from '@/store/reference/cloud-service-type-reference-store'; @@ -41,6 +40,8 @@ import type { FavoriteType, FavoriteConfig } from '@/common/modules/favorites/fa import { FAVORITE_TYPE } from '@/common/modules/favorites/favorite-button/type'; import { useGnbStore } from '@/common/modules/navigations/stores/gnb-store'; +import { useDashboardQuery } from '@/services/dashboards/composables/use-dashboard-query'; + interface Props { itemId: string; favoriteType: FavoriteType; @@ -63,12 +64,16 @@ const workspaceStoreGetters = userWorkspaceStore.getters; const appContextStore = useAppContextStore(); const favoriteStore = useFavoriteStore(); const favoriteStoreGetters = favoriteStore.getters; -const dashboardStore = useDashboardStore(); -const dashboardState = dashboardStore.state; const gnbStore = useGnbStore(); const gnbStoreGetters = gnbStore.getters; const displayStore = useDisplayStore(); +/* Query */ +const { + publicDashboardList, + privateDashboardList, +} = useDashboardQuery(); + const emit = defineEmits<{(e: 'click-favorite'): void; }>(); @@ -120,7 +125,7 @@ const handleClickFavoriteButton = async (event: MouseEvent) => { const convertFavoriteToReferenceData = (favoriteConfig: FavoriteConfig): ReferenceData|undefined => { const { itemType } = favoriteConfig; if (itemType === FAVORITE_TYPE.DASHBOARD) { - return convertDashboardConfigToReferenceData([favoriteConfig], [...dashboardState.publicDashboardItems, ...dashboardState.privateDashboardItems])[0]; + return convertDashboardConfigToReferenceData([favoriteConfig], [...publicDashboardList.value, ...privateDashboardList.value])[0]; } if (itemType === FAVORITE_TYPE.PROJECT) { return convertProjectConfigToReferenceData([favoriteConfig], storeState.projects)[0]; diff --git a/apps/web/src/common/modules/favorites/favorite-button/store/favorite-store.ts b/apps/web/src/common/modules/favorites/favorite-button/store/favorite-store.ts index 66211bcb7f..55696266a4 100644 --- a/apps/web/src/common/modules/favorites/favorite-button/store/favorite-store.ts +++ b/apps/web/src/common/modules/favorites/favorite-button/store/favorite-store.ts @@ -5,7 +5,7 @@ import { defineStore } from 'pinia'; import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import { ApiQueryHelper } from '@cloudforet/core-lib/space-connector/helper'; -import type { ListResponse } from '@/schema/_common/api-verbs/list'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; import type { UserConfigDeleteParameters } from '@/schema/config/user-config/api-verbs/delete'; import type { UserConfigListParameters } from '@/schema/config/user-config/api-verbs/list'; import type { UserConfigSetParameters } from '@/schema/config/user-config/api-verbs/set'; diff --git a/apps/web/src/common/modules/navigations/stores/gnb-store.ts b/apps/web/src/common/modules/navigations/stores/gnb-store.ts index eaa10bf9c2..02151ac7f9 100644 --- a/apps/web/src/common/modules/navigations/stores/gnb-store.ts +++ b/apps/web/src/common/modules/navigations/stores/gnb-store.ts @@ -4,11 +4,11 @@ import { defineStore } from 'pinia'; import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; -import type { ListResponse } from '@/schema/_common/api-verbs/list'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { CostQuerySetListParameters } from '@/api-clients/cost-analysis/cost-query-set/schema/api-verbs/list'; +import type { CostQuerySetModel } from '@/api-clients/cost-analysis/cost-query-set/schema/model'; import type { UserConfigListParameters } from '@/schema/config/user-config/api-verbs/list'; import type { UserConfigModel } from '@/schema/config/user-config/model'; -import type { CostQuerySetListParameters } from '@/schema/cost-analysis/cost-query-set/api-verbs/list'; -import type { CostQuerySetModel } from '@/schema/cost-analysis/cost-query-set/model'; import type { MetricExampleListParameters } from '@/schema/inventory/metric-example/api-verbs/list'; import type { MetricExampleModel } from '@/schema/inventory/metric-example/model'; diff --git a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/helper.ts b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/helper.ts index bf041e7871..6458d04819 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/helper.ts +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/helper.ts @@ -7,7 +7,7 @@ import type { SearchTab } from '@/common/modules/navigations/top-bar/modules/top import { ASSET_INVENTORY_ROUTE_V1 } from '@/services/asset-inventory-v1/routes/route-constant'; import { DASHBOARDS_ROUTE } from '@/services/dashboards/routes/route-constant'; -import { PROJECT_ROUTE } from '@/services/project/routes/route-constant'; +import { PROJECT_ROUTE } from '@/services/project-v1/routes/route-constant'; const queryHelper = new QueryHelper(); diff --git a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-favorite/modules/TopBarFavoriteContextMenu.vue b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-favorite/modules/TopBarFavoriteContextMenu.vue index fbbf3a8303..352c743b0f 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-favorite/modules/TopBarFavoriteContextMenu.vue +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-favorite/modules/TopBarFavoriteContextMenu.vue @@ -12,12 +12,11 @@ import { } from '@cloudforet/mirinae'; import type { ContextMenuType, MenuItem } from '@cloudforet/mirinae/types/controls/context-menu/type'; -import type { CostQuerySetModel } from '@/schema/cost-analysis/cost-query-set/model'; +import type { CostQuerySetModel } from '@/api-clients/cost-analysis/cost-query-set/schema/model'; import type { MetricExampleModel } from '@/schema/inventory/metric-example/model'; import { i18n } from '@/translations'; import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; -import { useDashboardStore } from '@/store/dashboard/dashboard-store'; import { useDisplayStore } from '@/store/display/display-store'; import { useAllReferenceStore } from '@/store/reference/all-reference-store'; import type { CostDataSourceReferenceMap } from '@/store/reference/cost-data-source-reference-store'; @@ -52,8 +51,9 @@ import TopBarSuggestionList from '@/common/modules/navigations/top-bar/modules/T import { ASSET_INVENTORY_ROUTE_V1 } from '@/services/asset-inventory-v1/routes/route-constant'; import { COST_EXPLORER_ROUTE } from '@/services/cost-explorer/routes/route-constant'; +import { useDashboardQuery } from '@/services/dashboards/composables/use-dashboard-query'; import { DASHBOARDS_ROUTE } from '@/services/dashboards/routes/route-constant'; -import { PROJECT_ROUTE } from '@/services/project/routes/route-constant'; +import { PROJECT_ROUTE } from '@/services/project-v1/routes/route-constant'; const FAVORITE_LIMIT = 5; @@ -72,8 +72,6 @@ const emit = defineEmits<{(e: 'close'): void; }>(); const allReferenceStore = useAllReferenceStore(); -const dashboardStore = useDashboardStore(); -const dashboardState = dashboardStore.state; const userWorkspaceStore = useUserWorkspaceStore(); const favoriteStore = useFavoriteStore(); const favoriteGetters = favoriteStore.getters; @@ -82,6 +80,12 @@ const gnbStoreGetters = gnbStore.getters; const userStore = useUserStore(); const displayStore = useDisplayStore(); +/* Query */ +const { + publicDashboardList, + privateDashboardList, +} = useDashboardQuery(); + const router = useRouter(); const route = useRoute(); @@ -199,7 +203,7 @@ const state = reactive({ if (!isUserAccessibleToDashboards) return []; return convertDashboardConfigToReferenceData( favoriteGetters.dashboardItems ?? [], - [...dashboardState.publicDashboardItems, ...dashboardState.privateDashboardItems], + [...publicDashboardList.value, ...privateDashboardList.value], ); }), favoriteMetricItems: computed(() => { @@ -316,7 +320,6 @@ const init = async () => { favoriteStore.fetchFavorite(), gnbStore.fetchMetricExample(), gnbStore.fetchCostQuerySet(), - dashboardStore.load(), // HACK: If GNBDashboardMenu is deprecated, you need to add a request to receive a dashboard list here. ]); state.loading = false; diff --git a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-notice/modules/TopBarNoticeContextMenu.vue b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-notice/modules/TopBarNoticeContextMenu.vue index 31260e5482..49fe0e1185 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-notice/modules/TopBarNoticeContextMenu.vue +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-notice/modules/TopBarNoticeContextMenu.vue @@ -10,8 +10,8 @@ import { PDataLoader, PI, PDivider, PEmpty, } from '@cloudforet/mirinae'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; import { SpaceRouter } from '@/router'; -import type { ListResponse } from '@/schema/_common/api-verbs/list'; import type { PostListParameters } from '@/schema/board/post/api-verbs/list'; import { POST_BOARD_TYPE } from '@/schema/board/post/constant'; import type { PostModel } from '@/schema/board/post/model'; diff --git a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-notifications/modules/TopBarNotificationsContextMenu.vue b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-notifications/modules/TopBarNotificationsContextMenu.vue index 64f861d0dd..5866be524e 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-notifications/modules/TopBarNotificationsContextMenu.vue +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-notifications/modules/TopBarNotificationsContextMenu.vue @@ -18,7 +18,7 @@ import { import { ACTION_ICON } from '@cloudforet/mirinae/src/navigation/link/type'; import { iso8601Formatter } from '@cloudforet/utils'; -import type { ListResponse } from '@/schema/_common/api-verbs/list'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; import type { NotificationDeleteParameters } from '@/schema/notification/notification/api-verbs/delete'; import type { NotificationListParameters } from '@/schema/notification/notification/api-verbs/list'; import type { NotificationSetReadParameters } from '@/schema/notification/notification/api-verbs/set-read'; diff --git a/apps/web/src/common/modules/page-layouts/type.ts b/apps/web/src/common/modules/page-layouts/type.ts index 6cbd53defd..5268190d82 100644 --- a/apps/web/src/common/modules/page-layouts/type.ts +++ b/apps/web/src/common/modules/page-layouts/type.ts @@ -1,7 +1,7 @@ import type { TranslateResult } from 'vue-i18n'; import type { Location } from 'vue-router'; -import type { ProjectGroupTreeNodeData } from '@/services/project/types/project-tree-type'; +import type { ProjectGroupTreeNodeData } from '@/services/project-v1/types/project-tree-type'; export interface Breadcrumb { name: TranslateResult|string; diff --git a/apps/web/src/common/modules/popup/notice/NoticePopup.vue b/apps/web/src/common/modules/popup/notice/NoticePopup.vue index b1d7a25b0f..8398f79472 100644 --- a/apps/web/src/common/modules/popup/notice/NoticePopup.vue +++ b/apps/web/src/common/modules/popup/notice/NoticePopup.vue @@ -6,7 +6,7 @@ import { import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import { ApiQueryHelper } from '@cloudforet/core-lib/space-connector/helper'; -import type { ListResponse } from '@/schema/_common/api-verbs/list'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; import type { PostListParameters } from '@/schema/board/post/api-verbs/list'; import { POST_BOARD_TYPE } from '@/schema/board/post/constant'; import type { PostModel } from '@/schema/board/post/model'; diff --git a/apps/web/src/common/modules/project/ProjectLinkButton.vue b/apps/web/src/common/modules/project/ProjectLinkButton.vue index e98d1d0944..f2562690b9 100644 --- a/apps/web/src/common/modules/project/ProjectLinkButton.vue +++ b/apps/web/src/common/modules/project/ProjectLinkButton.vue @@ -10,7 +10,7 @@ import { useProjectReferenceStore } from '@/store/reference/project-reference-st import { useProperRouteLocation } from '@/common/composables/proper-route-location'; -import { PROJECT_ROUTE } from '@/services/project/routes/route-constant'; +import { PROJECT_ROUTE } from '@/services/project-v1/routes/route-constant'; const props = defineProps<{ projectId: string; diff --git a/apps/web/src/common/modules/project/ProjectSelectDropdown.vue b/apps/web/src/common/modules/project/ProjectSelectDropdown.vue index 13e614fd30..098d1ff9c1 100644 --- a/apps/web/src/common/modules/project/ProjectSelectDropdown.vue +++ b/apps/web/src/common/modules/project/ProjectSelectDropdown.vue @@ -20,13 +20,13 @@ import ErrorHandler from '@/common/composables/error/errorHandler'; import { indigo, peacock } from '@/styles/colors'; -import type { ProjectTreeOptions } from '@/services/project/composables/use-project-tree'; -import { useProjectTree } from '@/services/project/composables/use-project-tree'; -import { PROJECT_ROUTE } from '@/services/project/routes/route-constant'; +import type { ProjectTreeOptions } from '@/services/project-v1/composables/use-project-tree'; +import { useProjectTree } from '@/services/project-v1/composables/use-project-tree'; +import { PROJECT_ROUTE } from '@/services/project-v1/routes/route-constant'; import type { ProjectTreeItem, ProjectTreeNodeData, ProjectTreeRoot, ProjectTreeItemType, ProjectTreeNode, -} from '@/services/project/types/project-tree-type'; +} from '@/services/project-v1/types/project-tree-type'; interface ProjectGroupSelectOptions { id: string; diff --git a/apps/web/src/common/modules/widgets/_components/WidgetFormDataSourcePopover.vue b/apps/web/src/common/modules/widgets/_components/WidgetFormDataSourcePopover.vue index 45089fe064..3285e8db45 100644 --- a/apps/web/src/common/modules/widgets/_components/WidgetFormDataSourcePopover.vue +++ b/apps/web/src/common/modules/widgets/_components/WidgetFormDataSourcePopover.vue @@ -4,18 +4,16 @@ import { } from 'vue'; import type { TranslateResult } from 'vue-i18n'; -import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; +import { useMutation } from '@tanstack/vue-query'; + import { PButton, PPopover, PSelectCard, PI, PDivider, } from '@cloudforet/mirinae'; import { POPOVER_TRIGGER } from '@cloudforet/mirinae/src/data-display/popover/type'; -import type { PrivateWidgetCreateParameters } from '@/schema/dashboard/private-widget/api-verbs/create'; -import type { PrivateWidgetModel } from '@/schema/dashboard/private-widget/model'; -import type { DataTableAddParameters } from '@/schema/dashboard/public-data-table/api-verbs/add'; -import type { PublicWidgetCreateParameters } from '@/schema/dashboard/public-widget/api-verbs/create'; -import type { PublicWidgetModel } from '@/schema/dashboard/public-widget/model'; +import type { WidgetCreateParams, WidgetModel } from '@/api-clients/dashboard/_types/widget-type'; +import type { DataTableAddParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/add'; import { i18n } from '@/translations'; import { useAllReferenceStore } from '@/store/reference/all-reference-store'; @@ -24,21 +22,28 @@ import type { MetricReferenceMap } from '@/store/reference/metric-reference-stor import type { NamespaceReferenceMap } from '@/store/reference/namespace-reference-store'; import { useUserStore } from '@/store/user/user-store'; +import { showErrorMessage } from '@/lib/helper/notice-alert-helper'; +import getRandomId from '@/lib/random-id-generator'; +import type { ListResponse } from '@/lib/variable-models/_base/types'; + import ErrorHandler from '@/common/composables/error/errorHandler'; import WidgetFormAssetSecurityDataSourcePopper from '@/common/modules/widgets/_components/WidgetFormAssetSecurityDataSourcePopper.vue'; import WidgetFormCostDataSourcePopper from '@/common/modules/widgets/_components/WidgetFormCostDataSourcePopper.vue'; +import { useWidgetFormQuery } from '@/common/modules/widgets/_composables/use-widget-form-query'; import { DATA_SOURCE_DOMAIN, DATA_TABLE_OPERATOR, - DATA_TABLE_TYPE, + DATA_TABLE_TYPE, TRANSFORM_DATA_TABLE_DEFAULT_OPTIONS, } from '@/common/modules/widgets/_constants/data-table-constant'; import { getDuplicatedDataTableName } from '@/common/modules/widgets/_helpers/widget-data-table-helper'; import { useWidgetGenerateStore } from '@/common/modules/widgets/_store/widget-generate-store'; +import type { DataTableModel } from '@/common/modules/widgets/types/widget-data-table-type'; import type { - DataTableDataType, DataTableSourceType, DataTableOperator, DataTableAddOptions, + DataTableDataType, DataTableSourceType, DataTableOperator, DataTableAddOptions, DataTableTransformOptions, } from '@/common/modules/widgets/types/widget-model'; +import { useDashboardDetailQuery } from '@/services/dashboards/composables/use-dashboard-detail-query'; import { useDashboardDetailInfoStore } from '@/services/dashboards/stores/dashboard-detail-info-store'; @@ -49,15 +54,30 @@ const dashboardDetailStore = useDashboardDetailInfoStore(); const dashboardDetailState = dashboardDetailStore.state; const userStore = useUserStore(); +/* Query */ +const { + dataTableList, + api, + keys: widgetQueryKeys, + queryClient, +} = useWidgetFormQuery({ + widgetId: computed(() => widgetGenerateState.widgetId), +}); +const { + dashboard, + keys, +} = useDashboardDetailQuery({ + dashboardId: computed(() => dashboardDetailState.dashboardId), +}); + + const storeState = reactive({ metrics: computed(() => allReferenceStore.getters.metric), costDataSources: computed(() => allReferenceStore.getters.costDataSource), namespaces: computed(() => allReferenceStore.getters.namespace), - dataTables: computed(() => widgetGenerateStore.state.dataTables), }); const state = reactive({ - loading: false, showPopover: false, selectedPopperCondition: undefined as undefined|DataTableDataType, dataSourceDomainItems: computed(() => ([ @@ -108,7 +128,7 @@ const state = reactive({ if (state.selectedCostDataType === 'usage_quantity') { return 'Usage'; } - return targetCostDataSource.data?.cost_data_keys?.find((key) => key === state.selectedCostDataType.replace('data.', '')) || ''; + return targetCostDataSource?.data?.cost_data_keys?.find((key) => key === state.selectedCostDataType.replace('data.', '')) || ''; }), operatorInfoList: computed<{ key: DataTableOperator, name: string; description: string|TranslateResult; icon: string;}[]>(() => [ { @@ -163,22 +183,52 @@ const state = reactive({ }); /* Api */ -const createWidget = async (): Promise => { - const isPrivate = dashboardDetailState.dashboardId?.startsWith('private'); - const fetcher = isPrivate - ? SpaceConnector.clientV2.dashboard.privateWidget.create - : SpaceConnector.clientV2.dashboard.publicWidget.create; - try { - return await fetcher({ - dashboard_id: dashboardDetailState.dashboardId as string, - tags: { created_by: userStore.state.userId }, - widget_type: 'table', - }); - } catch (e) { +const widgetCreateFn = (params: WidgetCreateParams): Promise => { + if (dashboardDetailState.dashboardId?.startsWith('private')) { + return api.privateWidgetAPI.create(params); + } + return api.publicWidgetAPI.create(params); +}; +const { mutateAsync: createWidget, isPending: widgetCreateLoading } = useMutation({ + mutationFn: widgetCreateFn, + onSuccess: (data) => { + const _isPrivate = dashboardDetailState.dashboardId?.startsWith('private'); + const widgetListQueryKey = _isPrivate ? keys.privateWidgetListQueryKey : keys.publicWidgetListQueryKey; + queryClient.setQueryData(widgetListQueryKey.value, (oldData: ListResponse) => (oldData.results?.length ? { + ...oldData, results: [...oldData.results, data], + } : { + ...oldData, results: [data], + })); + widgetGenerateStore.setWidgetFormInfo(data); + }, + onError: (e) => { ErrorHandler.handleError(e); - return null; + }, +}); +const dataTableAddFn = (params: DataTableAddParameters): Promise => { + if (dashboardDetailState.dashboardId?.startsWith('private')) { + return api.privateDataTableAPI.add(params); } + return api.publicDataTableAPI.add(params); }; +const { mutateAsync: addDataTable, isPending: dataTableAddLoading } = useMutation({ + mutationFn: dataTableAddFn, + onSuccess: (data) => { + const _isPrivate = widgetGenerateState.widgetId?.startsWith('private'); + const dataTableListQueryKey = _isPrivate ? widgetQueryKeys.privateDataTableListQueryKey : widgetQueryKeys.publicDataTableListQueryKey; + queryClient.setQueryData(dataTableListQueryKey.value, (oldData: ListResponse) => (oldData.results?.length ? { + ...oldData, results: [...oldData.results, data], + } : { + ...oldData, results: [data], + })); + + widgetGenerateStore.setSelectedDataTableId(data?.data_table_id); + }, + onError: (e) => { + showErrorMessage(e.message, e); + ErrorHandler.handleError(e); + }, +}); /* Util */ const resetSelectedDataSource = () => { @@ -196,22 +246,41 @@ const handleClickDataSourceDomain = (domainName: DataTableSourceType) => { state.selectedDataSourceDomain = domainName; resetSelectedDataSource(); }; -const handleClickOperator = (operator: DataTableOperator) => { - widgetGenerateStore.createUnsavedTransformDataTable(operator); +const handleCreateUnsavedTransform = (operator: DataTableOperator) => { + const unsavedTransformData = { + data_table_id: `UNSAVED-${getRandomId()}`, + name: getDuplicatedDataTableName(`${operator} Data`, dataTableList.value), + data_type: DATA_TABLE_TYPE.TRANSFORMED, + operator, + options: { + [operator]: TRANSFORM_DATA_TABLE_DEFAULT_OPTIONS[operator], + } as DataTableTransformOptions, + state: 'AVAILABLE', + } as Partial; + + const _isPrivate = widgetGenerateState.widgetId?.startsWith('private'); + const dataTableListQueryKey = _isPrivate ? widgetQueryKeys.privateDataTableListQueryKey : widgetQueryKeys.publicDataTableListQueryKey; + queryClient.setQueryData(dataTableListQueryKey.value, (oldData: ListResponse) => (oldData.results?.length ? { + ...oldData, results: [...oldData.results, unsavedTransformData], + } : { + ...oldData, results: [unsavedTransformData], + })); + state.showPopover = false; }; + const handleSelectPopperCondition = (condition: DataTableDataType) => { + if (condition === DATA_TABLE_TYPE.TRANSFORMED && !dataTableList.value?.length) return; state.selectedPopperCondition = condition; }; const handleConfirmDataSource = async () => { - state.loading = true; // create widget if (widgetGenerateState.overlayType === 'ADD' && !widgetGenerateState.widgetId) { - const createdWidget = await createWidget(); - if (createdWidget) { - widgetGenerateStore.setWidgetForm(createdWidget); - } - state.showPopover = false; + await createWidget({ + dashboard_id: dashboardDetailState.dashboardId as string, + tags: { created_by: userStore.state.userId }, + widget_type: 'table', + }); } if (state.selectedPopperCondition === DATA_TABLE_TYPE.ADDED) { @@ -219,8 +288,9 @@ const handleConfirmDataSource = async () => { ? `${storeState.costDataSources[state.selectedCostDataSourceId].name} - ${state.selectedCostDataTypeLabel}` : `${state.selectedNamespace.name} - ${storeState.metrics[state.selectedMetricId]?.label}`; const addParameters = { + widget_id: widgetGenerateState.widgetId as string, source_type: state.selectedDataSourceDomain, - name: getDuplicatedDataTableName(dataTableBaseName, widgetGenerateState.dataTables), + name: getDuplicatedDataTableName(dataTableBaseName, dataTableList.value), } as DataTableAddParameters; const dataKey = state.selectedCostDataType?.replace('data.', ''); const costUnit: string|undefined = storeState.costDataSources[state.selectedCostDataSourceId]?.data?.plugin_info?.metadata?.cost_info?.unit; @@ -249,23 +319,22 @@ const handleConfirmDataSource = async () => { }; // NOTE: For DataTable-Create loading - state.showPopover = false; widgetGenerateStore.setDataTableCreateLoading(true); + state.showPopover = false; - const result = await widgetGenerateStore.createAddDataTable({ + await addDataTable({ ...addParameters, + vars: dashboard.value?.vars || {}, options: { ...state.selectedDataSourceDomain === DATA_SOURCE_DOMAIN.COST ? costOptions : assetOptions, }, }); - if (!widgetGenerateState.selectedDataTableId && result) { - widgetGenerateStore.setSelectedDataTableId(result?.data_table_id); - } } - state.loading = false; widgetGenerateStore.setDataTableCreateLoading(false); }; + + watch(() => state.showPopover, (val) => { if (!val) { state.selectedDataSourceDomain = undefined; @@ -299,10 +368,13 @@ watch(() => state.showPopover, (val) => { @@ -384,7 +456,7 @@ watch(() => state.showPopover, (val) => {