diff --git a/apps/web/src/api-clients/_common/composables/use-api-query-key.ts b/apps/web/src/api-clients/_common/composables/use-api-query-key.ts index 697ff885e4..1c92d0c5f8 100644 --- a/apps/web/src/api-clients/_common/composables/use-api-query-key.ts +++ b/apps/web/src/api-clients/_common/composables/use-api-query-key.ts @@ -1,14 +1,9 @@ -import type { ComputedRef } from 'vue'; import { computed, reactive } from 'vue'; - -import type { QueryKey } from '@tanstack/vue-query'; - import type { ResourceName, ServiceName, Verb, } from '@/api-clients/_common/types/query-key-type'; - import { useAppContextStore } from '@/store/app-context/app-context-store'; import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; @@ -40,7 +35,7 @@ export const useAPIQueryKey = , resource: R, verb: V, additionalGlobalParams?: Partial, -): ComputedRef => { +) => { const appContextStore = useAppContextStore(); const userWorkspaceStore = useUserWorkspaceStore(); @@ -55,5 +50,5 @@ export const useAPIQueryKey = , ...additionalGlobalParams, }); - return computed(() => [service, resource, verb, { ...globalQueryParams }]); + return computed(() => [service, resource, verb, { ...globalQueryParams }]); }; diff --git a/apps/web/src/api-clients/_common/constants/api-doc.ts b/apps/web/src/api-clients/_common/constants/api-doc.ts index 7e615b336b..25cc3000ad 100644 --- a/apps/web/src/api-clients/_common/constants/api-doc.ts +++ b/apps/web/src/api-clients/_common/constants/api-doc.ts @@ -25,6 +25,152 @@ */ export const API_DOC = { + identity: { + agent: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + app: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + domain: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + endpoint: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + job: [ + 'get', + 'list', + ], + package: [ + 'change-order', + 'create', + 'delete', + 'get', + 'list', + 'set-default', + 'update', + ], + project: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'project-group': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + provider: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + role: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'role-binding': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + schema: [ + 'get', + 'list', + ], + 'service-account': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + token: [ + 'issue', + 'refresh', + ], + 'trusted-account': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + user: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'user-group': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'user-profile': [ + 'get', + 'update', + ], + workspace: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'workspace-group': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'workspace-group-user': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'workspace-user': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + }, 'cost-analysis': { budget: [ 'create', diff --git a/apps/web/src/api-clients/identity/package/composables/use-package-api.ts b/apps/web/src/api-clients/identity/package/composables/use-package-api.ts new file mode 100644 index 0000000000..cadbb54c1d --- /dev/null +++ b/apps/web/src/api-clients/identity/package/composables/use-package-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-api-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { PackageChangeOrderParameters } from '@/api-clients/identity/package/schema/api-verbs/change-order'; +import type { PackageCreateParameters } from '@/api-clients/identity/package/schema/api-verbs/create'; +import type { PackageDeleteParameters } from '@/api-clients/identity/package/schema/api-verbs/delete'; +import type { PackageGetParameters } from '@/api-clients/identity/package/schema/api-verbs/get'; +import type { PackageListParameters } from '@/api-clients/identity/package/schema/api-verbs/list'; +import type { PackageSetDefaultParameters } from '@/api-clients/identity/package/schema/api-verbs/set-default'; +import type { PackageUpdateParameters } from '@/api-clients/identity/package/schema/api-verbs/update'; +import type { PackageModel } from '@/api-clients/identity/package/schema/model'; + +interface UsePackageApiReturn { + packageQueryKey: ComputedRef; + packageListQueryKey: ComputedRef; + packageAPI: { + create: (params: PackageCreateParameters) => Promise; + update: (params: PackageUpdateParameters) => Promise; + delete: (params: PackageDeleteParameters) => Promise; + get: (params: PackageGetParameters) => Promise; + list: (params: PackageListParameters) => Promise>; + setDefault: (params: PackageSetDefaultParameters) => Promise; + changeOrder: (params: PackageChangeOrderParameters) => Promise; + } +} + +export const usePackageApi = (): UsePackageApiReturn => { + const packageQueryKey = useAPIQueryKey('identity', 'package', 'get'); + const packageListQueryKey = useAPIQueryKey('identity', 'package', 'list'); + + const actions = { + async create(params: PackageCreateParameters) { + return SpaceConnector.clientV2.identity.package.create(params); + }, + async update(params: PackageUpdateParameters) { + return SpaceConnector.clientV2.identity.package.update(params); + }, + async delete(params: PackageDeleteParameters) { + return SpaceConnector.clientV2.identity.package.delete(params); + }, + async get(params: PackageGetParameters) { + return SpaceConnector.clientV2.identity.package.get(params); + }, + async list(params: PackageListParameters) { + return SpaceConnector.clientV2.identity.package.list>(params); + }, + async setDefault(params: PackageSetDefaultParameters) { + return SpaceConnector.clientV2.identity.package.setDefault(params); + }, + async changeOrder(params: PackageChangeOrderParameters) { + return SpaceConnector.clientV2.identity.package.changeOrder(params); + }, + }; + + return { + packageQueryKey, + packageListQueryKey, + packageAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/package/api-verbs/change-order.ts b/apps/web/src/api-clients/identity/package/schema/api-verbs/change-order.ts similarity index 100% rename from apps/web/src/schema/identity/package/api-verbs/change-order.ts rename to apps/web/src/api-clients/identity/package/schema/api-verbs/change-order.ts diff --git a/apps/web/src/schema/identity/package/api-verbs/create.ts b/apps/web/src/api-clients/identity/package/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/package/api-verbs/create.ts rename to apps/web/src/api-clients/identity/package/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/package/api-verbs/delete.ts b/apps/web/src/api-clients/identity/package/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/package/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/package/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/package/api-verbs/get.ts b/apps/web/src/api-clients/identity/package/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/package/api-verbs/get.ts rename to apps/web/src/api-clients/identity/package/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/package/api-verbs/list.ts b/apps/web/src/api-clients/identity/package/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/identity/package/api-verbs/list.ts rename to apps/web/src/api-clients/identity/package/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/identity/package/api-verbs/set-default.ts b/apps/web/src/api-clients/identity/package/schema/api-verbs/set-default.ts similarity index 100% rename from apps/web/src/schema/identity/package/api-verbs/set-default.ts rename to apps/web/src/api-clients/identity/package/schema/api-verbs/set-default.ts diff --git a/apps/web/src/schema/identity/package/api-verbs/update.ts b/apps/web/src/api-clients/identity/package/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/package/api-verbs/update.ts rename to apps/web/src/api-clients/identity/package/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/package/model.ts b/apps/web/src/api-clients/identity/package/schema/model.ts similarity index 100% rename from apps/web/src/schema/identity/package/model.ts rename to apps/web/src/api-clients/identity/package/schema/model.ts diff --git a/apps/web/src/schema/identity/workspace/api-verbs/add-package.ts b/apps/web/src/api-clients/identity/workspace/api-verbs/add-package.ts similarity index 100% rename from apps/web/src/schema/identity/workspace/api-verbs/add-package.ts rename to apps/web/src/api-clients/identity/workspace/api-verbs/add-package.ts diff --git a/apps/web/src/schema/identity/workspace/api-verbs/change-workspace-group.ts b/apps/web/src/api-clients/identity/workspace/api-verbs/change-workspace-group.ts similarity index 100% rename from apps/web/src/schema/identity/workspace/api-verbs/change-workspace-group.ts rename to apps/web/src/api-clients/identity/workspace/api-verbs/change-workspace-group.ts diff --git a/apps/web/src/schema/identity/workspace/api-verbs/create.ts b/apps/web/src/api-clients/identity/workspace/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/workspace/api-verbs/create.ts rename to apps/web/src/api-clients/identity/workspace/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/workspace/api-verbs/delete.ts b/apps/web/src/api-clients/identity/workspace/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/workspace/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/workspace/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/workspace/api-verbs/list.ts b/apps/web/src/api-clients/identity/workspace/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/identity/workspace/api-verbs/list.ts rename to apps/web/src/api-clients/identity/workspace/api-verbs/list.ts diff --git a/apps/web/src/schema/identity/workspace/api-verbs/remove-package.ts b/apps/web/src/api-clients/identity/workspace/api-verbs/remove-package.ts similarity index 100% rename from apps/web/src/schema/identity/workspace/api-verbs/remove-package.ts rename to apps/web/src/api-clients/identity/workspace/api-verbs/remove-package.ts diff --git a/apps/web/src/schema/identity/workspace/api-verbs/update.ts b/apps/web/src/api-clients/identity/workspace/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/workspace/api-verbs/update.ts rename to apps/web/src/api-clients/identity/workspace/api-verbs/update.ts diff --git a/apps/web/src/api-clients/identity/workspace/composables/use-workspace-api.ts b/apps/web/src/api-clients/identity/workspace/composables/use-workspace-api.ts new file mode 100644 index 0000000000..d974f34fe4 --- /dev/null +++ b/apps/web/src/api-clients/identity/workspace/composables/use-workspace-api.ts @@ -0,0 +1,47 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { WorkspaceAddPackageParameters } from '@/api-clients/identity/workspace/api-verbs/add-package'; +import type { WorkspaceChangeWorkspaceGroupParameters } from '@/api-clients/identity/workspace/api-verbs/change-workspace-group'; +import type { WorkspaceCreateParameters } from '@/api-clients/identity/workspace/api-verbs/create'; +import type { WorkspaceDeleteParameters } from '@/api-clients/identity/workspace/api-verbs/delete'; +import type { WorkspaceListParameters } from '@/api-clients/identity/workspace/api-verbs/list'; +import type { WorkspaceRemovePackageParameters } from '@/api-clients/identity/workspace/api-verbs/remove-package'; +import type { WorkspaceUpdateParameters } from '@/api-clients/identity/workspace/api-verbs/update'; +import type { WorkspaceModel } from '@/api-clients/identity/workspace/model'; + +export const useWorkspaceApi = () => { + const workspaceQueryKey = useAPIQueryKey('identity', 'workspace', 'get'); + const workspaceListQueryKey = useAPIQueryKey('identity', 'workspace', 'list'); + + const actions = { + async create(params: WorkspaceCreateParameters) { + return SpaceConnector.clientV2.identity.workspace.create(params); + }, + async update(params: WorkspaceUpdateParameters) { + return SpaceConnector.clientV2.identity.workspace.update(params); + }, + async delete(params: WorkspaceDeleteParameters) { + return SpaceConnector.clientV2.identity.workspace.delete(params); + }, + async list(params: WorkspaceListParameters) { + return SpaceConnector.clientV2.identity.workspace.list>(params); + }, + async addPackage(params: WorkspaceAddPackageParameters) { + return SpaceConnector.clientV2.identity.workspace.addPackage(params); + }, + async removePackage(params: WorkspaceRemovePackageParameters) { + return SpaceConnector.clientV2.identity.workspace.removePackage(params); + }, + async changeWorkspaceGroup(params: WorkspaceChangeWorkspaceGroupParameters) { + return SpaceConnector.clientV2.identity.workspace.changeWorkspaceGroup(params); + }, + }; + + return { + workspaceQueryKey, + workspaceListQueryKey, + workspaceAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/workspace/model.ts b/apps/web/src/api-clients/identity/workspace/model.ts similarity index 100% rename from apps/web/src/schema/identity/workspace/model.ts rename to apps/web/src/api-clients/identity/workspace/model.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 index e69de29bb2..60d0857cca 100644 --- 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 @@ -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-api-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { CommentCreateParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/create'; +import type { CommentDeleteParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/delete'; +import type { CommentGetParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/get'; +import type { CommentListParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/list'; +import type { CommentUpdateParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/update'; +import type { CommentModel } from '@/api-clients/opsflow/comment/schema/model'; + +interface UseCommentApiReturn { + commentQueryKey: ComputedRef; + commentListQueryKey: ComputedRef; + commentAPI: { + create: (params: CommentCreateParameters) => Promise; + update: (params: CommentUpdateParameters) => Promise; + delete: (params: CommentDeleteParameters) => Promise; + get: (params: CommentGetParameters) => Promise; + list: (params: CommentListParameters) => Promise>; + } +} + +export const useCommentApi = (): UseCommentApiReturn => { + const commentQueryKey = useAPIQueryKey('opsflow', 'comment', 'get'); + const commentListQueryKey = useAPIQueryKey('opsflow', 'comment', 'list'); + + const actions = { + async create(params: CommentCreateParameters) { + return SpaceConnector.clientV2.opsflow.comment.create(params); + }, + async update(params: CommentUpdateParameters) { + return SpaceConnector.clientV2.opsflow.comment.update(params); + }, + async delete(params: CommentDeleteParameters) { + return SpaceConnector.clientV2.opsflow.comment.delete(params); + }, + async get(params: CommentGetParameters) { + return SpaceConnector.clientV2.opsflow.comment.get(params); + }, + async list(params: CommentListParameters) { + return SpaceConnector.clientV2.opsflow.comment.list>(params); + }, + }; + + return { + commentQueryKey, + commentListQueryKey, + commentAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/create.ts b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/create.ts index f4892d66f8..0d089fb3ea 100644 --- a/apps/web/src/api-clients/opsflow/comment/schema/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 '../type'; +import type { MentionTargets } from '@/api-clients/opsflow/comment/schema/type'; export interface CommentCreateParameters { task_id: string; diff --git a/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/list.ts b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/list.ts index 88db0c4a8c..7b34d9c095 100644 --- a/apps/web/src/api-clients/opsflow/comment/schema/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 '../type'; +import type { CommentType } from '@/api-clients/opsflow/comment/schema/type'; export interface CommentListParameters { query?: Query; diff --git a/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/update.ts b/apps/web/src/api-clients/opsflow/comment/schema/api-verbs/update.ts index ed5aad93bf..9ac6e0cc61 100644 --- a/apps/web/src/api-clients/opsflow/comment/schema/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 '../type'; +import type { MentionTargets } from '@/api-clients/opsflow/comment/schema/type'; export interface CommentUpdateParameters { comment_id: string; diff --git a/apps/web/src/api-clients/opsflow/comment/schema/model.ts b/apps/web/src/api-clients/opsflow/comment/schema/model.ts index a2ded68fa4..d49d1dc1f4 100644 --- a/apps/web/src/api-clients/opsflow/comment/schema/model.ts +++ b/apps/web/src/api-clients/opsflow/comment/schema/model.ts @@ -1,5 +1,6 @@ -import type { ResourceGroupType } from '../../../_common/schema/type'; -import type { CommentType, MentionTargets, MentionSource } from './type'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; +import type { CommentType, MentionSource, MentionTargets } from '@/api-clients/opsflow/comment/schema/type'; + export interface CommentModel { comment_id: string; 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 index e69de29bb2..e79ab67632 100644 --- 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 @@ -0,0 +1,32 @@ +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-api-query-key'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { EventListParameters } from '@/api-clients/opsflow/event/schema/api-verbs/list'; +import type { EventModel } from '@/api-clients/opsflow/event/schema/model'; + +interface UseEventApiReturn { + eventListQueryKey: ComputedRef; + eventAPI: { + list: (params: EventListParameters) => Promise>; + } +} + +export const useEventApi = (): UseEventApiReturn => { + const eventListQueryKey = useAPIQueryKey('opsflow', 'event', 'list'); + + const actions = { + async list(params: EventListParameters) { + return SpaceConnector.clientV2.opsflow.event.list>(params); + }, + }; + + return { + eventListQueryKey, + eventAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/opsflow/event/schema/api-verbs/list.ts b/apps/web/src/api-clients/opsflow/event/schema/api-verbs/list.ts index 7b160e4d70..ea0e8a13dc 100644 --- a/apps/web/src/api-clients/opsflow/event/schema/api-verbs/list.ts +++ b/apps/web/src/api-clients/opsflow/event/schema/api-verbs/list.ts @@ -1,12 +1,13 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { EventType } from '../type'; +import type { EventType } from '@/api-clients/opsflow/event/schema/type'; + export interface EventListParameters { query?: Query; task_id?: string; event_type?: EventType; - user_type?: 'USER'|'APP'; // TODO: replace with UserType + user_type?: 'USER'|'APP'; event_id?: string; project_id?: string; workspace_id?: string; diff --git a/apps/web/src/api-clients/opsflow/event/schema/type.ts b/apps/web/src/api-clients/opsflow/event/schema/type.ts index 544e2b3e46..16bcbcf58e 100644 --- a/apps/web/src/api-clients/opsflow/event/schema/type.ts +++ b/apps/web/src/api-clients/opsflow/event/schema/type.ts @@ -1,4 +1,4 @@ -import type { TaskStatusType } from '../../task/schema/type'; +import type { TaskStatusType } from '@/api-clients/opsflow/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 index 8c0971069c..a93ba7893f 100644 --- 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 @@ -1,7 +1,3 @@ -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-api-query-key'; @@ -13,19 +9,7 @@ import type { TaskCategoryListParameters } from '@/api-clients/opsflow/task-cate import type { TaskCategoryUpdateParameters } from '@/api-clients/opsflow/task-category/schema/api-verbs/update'; import type { TaskCategoryModel } from '@/api-clients/opsflow/task-category/schema/model'; -interface UseTaskCategoryApiReturn { - taskCategoryQueryKey: ComputedRef; - taskCategoryListQueryKey: ComputedRef; - taskCategoryAPI: { - create: (params: TaskCategoryCreateParameters) => Promise; - update: (params: TaskCategoryUpdateParameters) => Promise; - delete: (params: TaskCategoryDeleteParameters) => Promise; - get: (params: TaskCategoryGetParameters) => Promise; - list: (params: TaskCategoryListParameters) => Promise>; - } -} - -export const useTaskCategoryApi = (): UseTaskCategoryApiReturn => { +export const useTaskCategoryApi = () => { const taskCategoryQueryKey = useAPIQueryKey('opsflow', 'task-category', 'get'); const taskCategoryListQueryKey = useAPIQueryKey('opsflow', 'task-category', 'list'); diff --git a/apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/create.ts b/apps/web/src/api-clients/opsflow/task-category/schema/api-verbs/create.ts index 362a0821d1..cfafbfb244 100644 --- a/apps/web/src/api-clients/opsflow/task-category/schema/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 '../../../../_common/schema/model'; -import type { TaskField } from '../../../_types/task-field-type'; -import type { TaskStatusType, TaskStatusOptionWithOptionalId } from '../../../task/schema/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { TaskField } from '@/api-clients/opsflow/_types/task-field-type'; +import type { TaskStatusOptionWithOptionalId, TaskStatusType } from '@/api-clients/opsflow/task/schema/type'; export interface TaskCategoryCreateParameters { diff --git a/apps/web/src/api-clients/opsflow/task-category/schema/model.ts b/apps/web/src/api-clients/opsflow/task-category/schema/model.ts index b8265c88c9..6ef3703451 100644 --- a/apps/web/src/api-clients/opsflow/task-category/schema/model.ts +++ b/apps/web/src/api-clients/opsflow/task-category/schema/model.ts @@ -1,6 +1,6 @@ -import type { Tags } from '../../../_common/schema/model'; -import type { TaskField } from '../../_types/task-field-type'; -import type { TaskStatusOptions } from '../../task/schema/type'; +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { TaskField } from '@/api-clients/opsflow/_types/task-field-type'; +import type { TaskStatusOptions } from '@/api-clients/opsflow/task/schema/type'; export interface TaskCategoryModel { category_id: string; diff --git a/apps/web/src/api-clients/opsflow/task/schema/api-verbs/create.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/create.ts index 59c63d775f..b640dfdaf8 100644 --- a/apps/web/src/api-clients/opsflow/task/schema/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 '../../../comment/schema/type'; -import type { TaskPriority } from '../type'; +import type { MentionTargets } from '@/api-clients/opsflow/comment/schema/type'; +import type { TaskPriority } from '@/api-clients/opsflow/task/schema/type'; export interface TaskCreateParameters { task_type_id: string; diff --git a/apps/web/src/api-clients/opsflow/task/schema/api-verbs/list.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/list.ts index fe2428ccac..92e39c62e0 100644 --- a/apps/web/src/api-clients/opsflow/task/schema/api-verbs/list.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/list.ts @@ -1,6 +1,7 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { TaskPriority, TaskStatusType } from '../type'; +import type { TaskPriority, TaskStatusType } from '@/api-clients/opsflow/task/schema/type'; + export interface TaskListParameters { query?: Query; diff --git a/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update-description.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update-description.ts index 3522bf9df9..19ce725416 100644 --- a/apps/web/src/api-clients/opsflow/task/schema/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 '../../../comment/schema/type'; +import type { MentionTargets } from '@/api-clients/opsflow/comment/schema/type'; +import type { FileModel } from '@/schema/file-manager/model'; export interface TaskUpdateDescriptionParameters { task_id: string; diff --git a/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update.ts index 5aa2fbe6d5..7dec57a6c8 100644 --- a/apps/web/src/api-clients/opsflow/task/schema/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 '../type'; +import type { TaskPriority } from '@/api-clients/opsflow/task/schema/type'; export interface TaskUpdateParameters { task_id: string; diff --git a/apps/web/src/api-clients/opsflow/task/schema/model.ts b/apps/web/src/api-clients/opsflow/task/schema/model.ts index 0d0e71b3d5..093027663a 100644 --- a/apps/web/src/api-clients/opsflow/task/schema/model.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/model.ts @@ -1,5 +1,6 @@ -import type { FileModel } from '../../../../schema/file-manager/model'; -import type { TaskPriority, TaskStatusType } from './type'; +import type { TaskPriority, TaskStatusType } from '@/api-clients/opsflow/task/schema/type'; +import type { FileModel } from '@/schema/file-manager/model'; + export interface TaskModel { task_id: string; diff --git a/apps/web/src/common/components/buttons/ActionMenuButton.vue b/apps/web/src/common/components/buttons/ActionMenuButton.vue index 6b4b532b3c..8a6d6a3226 100644 --- a/apps/web/src/common/components/buttons/ActionMenuButton.vue +++ b/apps/web/src/common/components/buttons/ActionMenuButton.vue @@ -3,13 +3,11 @@ import { onClickOutside } from '@vueuse/core'; import { ref, computed } from 'vue'; import { PIconButton, PContextMenu, useContextMenuStyle } from '@cloudforet/mirinae'; -import type { MenuItem } from '@cloudforet/mirinae/types/controls/context-menu/type'; import { i18n } from '@/translations'; -interface ActionMenuItem extends MenuItem { - name: string; -} +import type { ActionMenuItem } from './type'; + type SupportMenu = 'edit' | 'delete'; const props = withDefaults(defineProps<{ diff --git a/apps/web/src/common/components/buttons/type.ts b/apps/web/src/common/components/buttons/type.ts new file mode 100644 index 0000000000..6fd501733b --- /dev/null +++ b/apps/web/src/common/components/buttons/type.ts @@ -0,0 +1,5 @@ +import type { MenuItem } from '@cloudforet/mirinae/types/controls/context-menu/type'; + +export interface ActionMenuItem extends MenuItem { + name: string; +} diff --git a/apps/web/src/common/composables/error/errorHandler.ts b/apps/web/src/common/composables/error/errorHandler.ts index 5d3619c99e..61dd695d45 100644 --- a/apps/web/src/common/composables/error/errorHandler.ts +++ b/apps/web/src/common/composables/error/errorHandler.ts @@ -68,11 +68,20 @@ export default class ErrorHandler { }; } - static handleRequestError(error: unknown, errorMessage: TranslateResult) { + static handleRequestError(error: unknown, errorMessage: TranslateResult, toast = false) { if (!isInstanceOfAuthorizationError(error)) { - if (isInstanceOfBadRequestError(error) && errorMessage) showErrorMessage(errorMessage, error); - else if (isInstanceOfAPIError(error)) showErrorMessage('Something is Wrong! Please contact the administrator.', error); + if (isInstanceOfBadRequestError(error) && errorMessage) { + showErrorMessage(errorMessage, error); + this.handleError(error); + return; + } + if (isInstanceOfAPIError(error)) { + showErrorMessage('Something is Wrong! Please contact the administrator.', error); + this.handleError(error); + return; + } } + if (toast) showErrorMessage('Something is Wrong! Please contact the administrator.', error); this.handleError(error); } } 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 2e2af5f2c0..146024d3e4 100644 --- a/apps/web/src/common/modules/favorites/favorite-button/FavoriteButton.vue +++ b/apps/web/src/common/modules/favorites/favorite-button/FavoriteButton.vue @@ -7,7 +7,7 @@ import { useRoute } from 'vue-router/composables'; import { PI } from '@cloudforet/mirinae'; import type { CostQuerySetModel } from '@/api-clients/cost-analysis/cost-query-set/schema/model'; -import type { WorkspaceModel } from '@/schema/identity/workspace/model'; +import type { WorkspaceModel } from '@/api-clients/identity/workspace/model'; import type { MetricExampleModel } from '@/schema/inventory/metric-example/model'; import { useAppContextStore } from '@/store/app-context/app-context-store'; diff --git a/apps/web/src/common/modules/navigations/new-lsb/LSBTopTitle.vue b/apps/web/src/common/modules/navigations/new-lsb/LSBTopTitle.vue index 912e02cf9d..4fcc1fc8c0 100644 --- a/apps/web/src/common/modules/navigations/new-lsb/LSBTopTitle.vue +++ b/apps/web/src/common/modules/navigations/new-lsb/LSBTopTitle.vue @@ -19,7 +19,7 @@ const props = defineProps<{ diff --git a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-header/TopBarWorkspaces.vue b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-header/TopBarWorkspaces.vue index 1e3ded313f..fe68d7270d 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-header/TopBarWorkspaces.vue +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-header/TopBarWorkspaces.vue @@ -13,7 +13,7 @@ import { import type { MenuItem } from '@cloudforet/mirinae/src/controls/context-menu/type'; import { CONTEXT_MENU_TYPE } from '@cloudforet/mirinae/src/controls/context-menu/type'; -import type { WorkspaceModel } from '@/schema/identity/workspace/model'; +import type { WorkspaceModel } from '@/api-clients/identity/workspace/model'; import { i18n } from '@/translations'; import { useAppContextStore } from '@/store/app-context/app-context-store'; diff --git a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/store.ts b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/store.ts index 5691c91172..f8e83346c3 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/store.ts +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/store.ts @@ -5,7 +5,7 @@ import { defineStore } from 'pinia'; import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; -import type { WorkspaceModel } from '@/schema/identity/workspace/model'; +import type { WorkspaceModel } from '@/api-clients/identity/workspace/model'; import type { ResourceSearchParameters, ResourceSearchResponse } from '@/schema/search/resource/api-verbs/search'; import type { ResourceModel } from '@/schema/search/resource/model'; diff --git a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-admin-toggle-button/TopBarAdminToggleButton.vue b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-admin-toggle-button/TopBarAdminToggleButton.vue index 71e4c891b7..2eb2edf0a6 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-admin-toggle-button/TopBarAdminToggleButton.vue +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-admin-toggle-button/TopBarAdminToggleButton.vue @@ -4,7 +4,7 @@ import { useRouter } from 'vue-router/composables'; import { throttle } from 'lodash'; -import type { WorkspaceModel } from '@/schema/identity/workspace/model'; +import type { WorkspaceModel } from '@/api-clients/identity/workspace/model'; import { i18n } from '@/translations'; import { ROOT_ROUTE } from '@/router/constant'; diff --git a/apps/web/src/common/modules/project/ProjectSelectDropdown.vue b/apps/web/src/common/modules/project/ProjectSelectDropdown.vue index 13e614fd30..67c1062ea0 100644 --- a/apps/web/src/common/modules/project/ProjectSelectDropdown.vue +++ b/apps/web/src/common/modules/project/ProjectSelectDropdown.vue @@ -50,7 +50,7 @@ interface Props { isInitSelectedItem?: boolean; block?: boolean; styleType?: string; - appearanceType?: 'stack'; + appearanceType?: 'stack'|'badge'; showDeleteAllButton?: boolean; } @@ -325,7 +325,7 @@ watch(() => state._selectedProjectIds, (selectedProjectIds) => { diff --git a/apps/web/src/services/ops-flow/components/AssociatedWorkspaces.vue b/apps/web/src/services/ops-flow/components/AssociatedWorkspaces.vue deleted file mode 100644 index 1a0ef700e4..0000000000 --- a/apps/web/src/services/ops-flow/components/AssociatedWorkspaces.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - diff --git a/apps/web/src/services/ops-flow/components/BoardLSB.vue b/apps/web/src/services/ops-flow/components/BoardLSB.vue index 52b4dcbfd3..98bb8d98c5 100644 --- a/apps/web/src/services/ops-flow/components/BoardLSB.vue +++ b/apps/web/src/services/ops-flow/components/BoardLSB.vue @@ -1,5 +1,5 @@