diff --git a/.github/workflows/dispatch_make_helm_chart.yaml b/.github/workflows/dispatch_make_helm_chart.yaml index e42c0a8e87..5fa9262b2d 100644 --- a/.github/workflows/dispatch_make_helm_chart.yaml +++ b/.github/workflows/dispatch_make_helm_chart.yaml @@ -5,7 +5,7 @@ on: types: [make_helm_chart] env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_GITHUB_HELM_CHART_WEBHOOK_URL }} jobs: helm_cloudforet: @@ -75,4 +75,4 @@ jobs: with: status: ${{job.status}} fields: repo,message,commit,author,action,eventName,ref,workflow,job,took - author_name: Github Action Slack \ No newline at end of file + author_name: Github Action Slack diff --git a/.github/workflows/pull_request_random_reviewer_assignment.yaml b/.github/workflows/pull_request_random_reviewer_assignment.yaml index 25f16efca6..5235935ef8 100644 --- a/.github/workflows/pull_request_random_reviewer_assignment.yaml +++ b/.github/workflows/pull_request_random_reviewer_assignment.yaml @@ -19,8 +19,7 @@ jobs: runs-on: ubuntu-latest env: - GROUP1: '["WANZARGEN", "sulmoJ", "skdud4659", "piggggggggy"]' - GROUP2: '["kkdy21", "seungyeoneeee", "Hansoo-mzc"]' + REVIEWERS: '["WANZARGEN", "seungyeoneeee", "skdud4659", "piggggggggy"]' steps: - uses: actions/checkout@v3 @@ -30,12 +29,13 @@ jobs: uses: actions/github-script@v6 with: script: | - const group1 = JSON.parse(process.env.GROUP1).filter(user => user !== context.payload.pull_request.user.login); - const group2 = JSON.parse(process.env.GROUP2).filter(user => user !== context.payload.pull_request.user.login); - console.log('group1:', group1, 'group2:', group2); + const reviewers = JSON.parse(process.env.REVIEWERS).filter(user => user !== context.payload.pull_request.user?.login); + console.log('available reviewers:', reviewers); - const randomReviewer1 = group1[Math.floor(Math.random() * group1.length)]; - const randomReviewer2 = group2[Math.floor(Math.random() * group2.length)]; + // Shuffle array and pick first two reviewers + const shuffled = reviewers.sort(() => 0.5 - Math.random()); + const randomReviewer1 = shuffled[0]; + const randomReviewer2 = shuffled[1]; console.log('randomReviewer1:', randomReviewer1, 'randomReviewer2:', randomReviewer2); core.setOutput('randomReviewer1', randomReviewer1); @@ -68,7 +68,7 @@ jobs: uses: actions/github-script@v6 with: script: | - const prAuthor = context.payload.pull_request.user.login; + const prAuthor = context.payload.pull_request.user?.login; const org = context.repo.owner; const prNumber = context.payload.pull_request.number; diff --git a/.github/workflows/pull_request_review.yaml b/.github/workflows/pull_request_review.yaml index 55e6639537..36722d4102 100644 --- a/.github/workflows/pull_request_review.yaml +++ b/.github/workflows/pull_request_review.yaml @@ -18,6 +18,7 @@ on: - '**/*.env' branches: - master + - develop - feature-* workflow_dispatch: diff --git a/.github/workflows/pull_request_review_state_labeler.yaml b/.github/workflows/pull_request_review_state_labeler.yaml deleted file mode 100644 index caeccb1872..0000000000 --- a/.github/workflows/pull_request_review_state_labeler.yaml +++ /dev/null @@ -1,107 +0,0 @@ -name: "[Pull Request] Review State Labeler" - -permissions: - issues: write - pull-requests: write - -on: - pull_request_review: - types: [submitted, edited, dismissed] - pull_request_target: - types: [synchronize, reopened, opened] - -jobs: - update-labels: - runs-on: ubuntu-latest - steps: - - name: Check if it is self approved review PR - id: check_self_approved - uses: actions/github-script@v6 - with: - github-token: ${{ secrets.CONSOLE_PR_PAT_TOKEN }} - script: | - const prNumber = context.payload.pull_request.number; - const owner = context.repo.owner; - const repo = context.repo.repo; - const { data: currentLabels } = await github.rest.issues.listLabelsOnIssue({ - owner, - repo, - issue_number: prNumber - }); - - const hasSelfApprovedReview = currentLabels.some(label => label.name === 'self_approved/review'); - core.setOutput('isSelfApprovedPR', hasSelfApprovedReview); - - - name: Add 'pending/review' label based on PR label on pull_request_target event - if: github.event_name == 'pull_request_target' && steps.check_self_approved.outputs.isSelfApprovedPR == 'false' - uses: actions/github-script@v6 - with: - github-token: ${{ secrets.CONSOLE_PR_PAT_TOKEN }} - script: | - const prNumber = context.payload.pull_request.number; - const owner = context.repo.owner; - const repo = context.repo.repo; - const hasSelfApprovedReview = context.payload.pull_request.labels.some(label => label.name === 'self_approved/review'); - if(hasSelfApprovedReview) { - return; - } - await github.rest.issues.addLabels({ - owner, - repo, - issue_number: prNumber, - labels: ['pending/review'] - }); - - - name: Add or remove labels based on review state on pull_request_review event - if: github.event_name == 'pull_request_review' && steps.check_self_approved.outputs.isSelfApprovedPR == 'false' - uses: actions/github-script@v6 - with: - github-token: ${{ secrets.CONSOLE_PR_PAT_TOKEN }} - script: | - const prNumber = context.payload.pull_request.number; - const owner = context.repo.owner; - const repo = context.repo.repo; - - const reviewState = context.payload.review.state - console.log('reviewState', reviewState) - - if (reviewState === 'approved' || reviewState === 'changes_requested') { - // Labels to remove based on review state - const labelsToRemove = ['pending/review'] - if (reviewState === 'approved') labelsToRemove.push('changes_requested/review') - else if (reviewState === 'changes_requested') labelsToRemove.push('approved/review') - - // Remove each label individually - for (const label of labelsToRemove) { - try { - await github.rest.issues.removeLabel({ - owner, - repo, - issue_number: prNumber, - name: label - }); - } catch (error) { - if (error.status === 404) { - console.log(`Label ${label} not found, skipping removal`); - } else { - throw error; - } - } - } - - // Add 'approved/review' or 'changes_requested/review' label - await github.rest.issues.addLabels({ - owner, - repo, - issue_number: prNumber, - labels: [reviewState + '/review'] - }); - } - - - - - - - - diff --git a/apps/web-storybook/package.json b/apps/web-storybook/package.json index 0baeb56de6..7361d780e0 100644 --- a/apps/web-storybook/package.json +++ b/apps/web-storybook/package.json @@ -11,9 +11,9 @@ "author": "", "license": "ISC", "devDependencies": { + "@cloudforet/mirinae": "*", "@cloudforet/core-lib": "*", "@cloudforet/language-pack": "*", - "@cloudforet/mirinae": "*", "@cloudforet/utils": "*", "eslint-config-custom": "*", "mirinae-foundation": "*", diff --git a/apps/web/cli/api-doc-gen.js b/apps/web/cli/api-doc-gen.js new file mode 100644 index 0000000000..ffe1e79572 --- /dev/null +++ b/apps/web/cli/api-doc-gen.js @@ -0,0 +1,78 @@ +import fs from 'fs'; +import path from 'path'; + +const API_DIR = './src/api-clients'; +const OUTPUT_PATH = './src/api-clients/_common/constants/api-doc.ts'; + + +const generateAPIDocumentation = (basePath) => { + const result = {}; + + const traverse = (dirPath) => { + const parts = dirPath.split(path.sep).slice(-5); + if (parts.length !== 5) return; + if (parts[3] !== 'api-verbs' || parts[1] === '_common') return; + + const [serviceName, resourceName, , , verb] = parts; + + if (!result[serviceName]) result[serviceName] = {}; + if (!result[serviceName][resourceName]) result[serviceName][resourceName] = []; + + result[serviceName][resourceName].push(verb.replace('.ts', '')); + }; + + const walk = (currentPath) => { + const files = fs.readdirSync(currentPath); + + files.forEach((file) => { + const fullPath = path.join(currentPath, file); + + const stat = fs.statSync(fullPath); + + if (stat.isDirectory()) { + walk(fullPath); + } else if (file.endsWith('.ts')) { + traverse(fullPath); + } + }); + }; + + walk(basePath); + return result; +}; + +const API_DOC = generateAPIDocumentation(API_DIR); + +const tsContent = `/** + * 🚀 AUTO-GENERATED API DOCUMENTATION + * + * This file is **automatically generated** by the API documentation script. + * **DO NOT** modify this file manually, as changes will be overwritten. + * + * ## Purpose: + * - Provides a structured mapping of API endpoints based on the directory structure. + * - Used for **query key generation**, **caching strategies**, and **API reference**. + * - Helps maintain consistency and prevents hardcoded API keys. + * + * ## How It Works: + * - The script scans the \`api-clients/{service-name}/{resource-name}/schema/api-verbs/\` directory. + * - Extracts \`{service-name}\`, \`{resource-name}\`, and \`{verb}.ts\` files. + * - Generates a structured **API_DOC** constant. + * + * ## Regenerate: + * If you need to update this file, run: + * + * \`\`\`sh + * npm run api-doc + * \`\`\` + * + * 🚨 Any manual modifications will be lost on regeneration! + */ + +export const API_DOC = ${JSON.stringify(API_DOC, null, 4)} as const; +export type APIDoc = typeof API_DOC; +`; +fs.writeFileSync(OUTPUT_PATH, tsContent); + + +console.log('✅ API Keys generated successfully!'); diff --git a/apps/web/package.json b/apps/web/package.json index c3861af09b..5c992b4487 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -13,11 +13,13 @@ "test:coverage": "vitest run --coverage", "eslint": "eslint --max-warnings=0 --ext .js,.vue,.ts .", "stylelint": "stylelint \"src/**/*.{css,vue,pcss,scss}\"", - "lint": "npm run eslint && npm run stylelint", + "ts-check": "tsc -p tsconfig.json --noEmit", + "lint": "npm run eslint && npm run ts-check && npm run stylelint", "eslint:fix": "eslint --fix --ext .js,.vue,.ts .", "stylelint:fix": "stylelint --fix \"src/**/*.{css,vue,pcss,scss}\"", "format": "npm run eslint:fix && npm run stylelint:fix", - "postcss": "node build/reset-css.js" + "postcss": "node build/reset-css.js", + "api-doc": "node ./cli/api-doc-gen.js && npx eslint ./src/api-clients/_common/constants/api-doc.ts --fix" }, "main": "dist/cloudforet-component.common.js", "dependencies": { @@ -45,7 +47,7 @@ "@vueuse/integrations": "^11.1.0", "@vvo/tzdb": "^6.4.1", "animated-number-vue": "^1.0.0", - "axios": "^1.7.4", + "axios": "^1.8.2", "axios-auth-refresh": "^3.2.2", "bytes": "^3.1.2", "cashify": "^2.5.0", @@ -53,7 +55,7 @@ "currency.js": "^2.0.4", "dayjs": "^1.11.7", "diff-match-patch": "^1.0.5", - "dompurify": "^3.2.3", + "dompurify": "^3.2.4", "echarts": "^5.5.0", "ejs": "^3.1.10", "hangul-js": "^0.2.6", @@ -101,8 +103,6 @@ "@types/uuid": "^8.3.0", "@vitejs/plugin-vue2": "^2.2.0", "@vitest/coverage-c8": "^0.24.3", - "@vitest/coverage-istanbul": "^0.34.5", - "@vitest/ui": "^0.26.3", "@vue/test-utils": "^1.3.3", "axios-mock-adapter": "^1.17.0", "dotenv": "^16.0.3", @@ -112,10 +112,10 @@ "postcss-config-custom": "*", "rollup-plugin-visualizer": "^5.9.0", "tsconfig": "*", - "vite": "^4.5.6", + "vite": "^4.5.10", "vite-plugin-stylelint": "^3.3.3", "vite-plugin-vue-type-imports": "^0.2.4", - "vitest": "^0.34.5", + "vitest": "^3.0.8", "vue-template-compiler": "2.7.16" }, "browserslist": [ 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 new file mode 100644 index 0000000000..1c92d0c5f8 --- /dev/null +++ b/apps/web/src/api-clients/_common/composables/use-api-query-key.ts @@ -0,0 +1,54 @@ +import { computed, reactive } from 'vue'; + +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'; + +/** + * Generates a computed query key for API requests, incorporating global parameters. + * + * @param service - The service name, representing the API service scope (e.g., 'dashboard'). + * @param resource - The resource name, specifying the target API resource (e.g., 'public-data-table'). + * @param verb - The API action verb, defining the type of request (e.g., 'get', 'list', 'update'). + * @param additionalGlobalParams - Optional additional global parameters (e.g., workspace ID, admin mode). + * @returns A computed reference to the query key array, structured as `[service, resource, verb, { globalParams }]`. + * + * ### Example Usage: + * ```ts + * const queryKey = useAPIQueryKey('dashboard', 'public-data-table', 'get'); + * ``` + * The generated query key ensures: + * - **Type safety**: Prevents invalid API calls by enforcing a valid `service/resource/verb` combination. + * - **Auto-completion**: Provides intelligent suggestions based on predefined API structure. + * - **Cache management**: Enables precise cache invalidation and data synchronization. + */ + +interface GlobalQueryParams { + workspaceId?: string; + isAdminMode?: boolean; +} +export const useAPIQueryKey = , V extends Verb>( + service: S, + resource: R, + verb: V, + additionalGlobalParams?: Partial, +) => { + 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(() => [service, resource, verb, { ...globalQueryParams }]); +}; 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 deleted file mode 100644 index f5ab16645c..0000000000 --- a/apps/web/src/api-clients/_common/composables/use-query-key.ts +++ /dev/null @@ -1,41 +0,0 @@ -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/api-clients/_common/composables/use-scoped-query.ts b/apps/web/src/api-clients/_common/composables/use-scoped-query.ts index 69b834046f..0077392792 100644 --- a/apps/web/src/api-clients/_common/composables/use-scoped-query.ts +++ b/apps/web/src/api-clients/_common/composables/use-scoped-query.ts @@ -1,3 +1,5 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-nocheck /** * useScopedQuery - A custom wrapper around `useQuery` to enforce scope-based API fetching. * @@ -48,7 +50,7 @@ import type { } from '@tanstack/vue-query'; import { useQuery } from '@tanstack/vue-query'; -import type { GrantScope } from '@/schema/identity/token/type'; +import type { GrantScope } from '@/api-clients/identity/token/schema/type'; import { useAppContextStore } from '@/store/app-context/app-context-store'; import { useUserStore } from '@/store/user/user-store'; diff --git a/apps/web/src/api-clients/_common/constants/api-doc.ts b/apps/web/src/api-clients/_common/constants/api-doc.ts new file mode 100644 index 0000000000..91b5b092a1 --- /dev/null +++ b/apps/web/src/api-clients/_common/constants/api-doc.ts @@ -0,0 +1,417 @@ +/** + * 🚀 AUTO-GENERATED API DOCUMENTATION + * + * This file is **automatically generated** by the API documentation script. + * **DO NOT** modify this file manually, as changes will be overwritten. + * + * ## Purpose: + * - Provides a structured mapping of API endpoints based on the directory structure. + * - Used for **query key generation**, **caching strategies**, and **API reference**. + * - Helps maintain consistency and prevents hardcoded API keys. + * + * ## How It Works: + * - The script scans the `api-clients/{service-name}/{resource-name}/schema/api-verbs/` directory. + * - Extracts `{service-name}`, `{resource-name}`, and `{verb}.ts` files. + * - Generates a structured **API_DOC** constant. + * + * ## Regenerate: + * If you need to update this file, run: + * + * ```sh + * npm run api-doc + * ``` + * + * 🚨 Any manual modifications will be lost on regeneration! + */ + +export const API_DOC = { + config: { + 'domain-config': [ + 'create', + 'get', + 'list', + 'set', + 'update', + ], + 'public-config': [ + 'create', + 'delete', + 'get', + 'list', + 'set', + 'update', + ], + 'shared-config': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'user-config': [ + 'create', + 'delete', + 'get', + 'list', + 'set', + 'update', + ], + }, + 'cost-analysis': { + budget: [ + 'create', + 'delete', + 'get', + 'list', + 'set-notification', + 'update', + ], + 'budget-usage': [ + 'analyze', + 'list', + ], + cost: [ + 'analyze', + 'stat', + ], + 'cost-query-set': [ + 'create', + 'delete', + 'list', + 'update', + ], + 'cost-report': [ + 'get-url', + 'get', + 'list', + 'send', + ], + 'cost-report-config': [ + 'list', + 'update-recipients', + 'update', + ], + 'cost-report-data': [ + 'analyze', + 'list', + ], + 'data-source': [ + 'get', + 'list', + 'sync', + 'update-permissions', + ], + 'data-source-account': [ + 'analyze', + 'list', + 'reset', + 'update', + ], + job: [ + 'cancel', + 'list', + ], + 'unified-cost': [ + 'analyze', + 'get', + 'list', + 'stat', + ], + }, + dashboard: { + 'private-dashboard': [ + 'change-folder', + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'private-data-table': [ + 'add', + 'delete', + 'get', + 'list', + 'load', + 'transform', + 'update', + ], + 'private-folder': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'private-widget': [ + 'create', + 'delete', + 'get', + 'list', + 'load-sum', + 'load', + 'update', + ], + 'public-dashboard': [ + 'change-folder', + 'create', + 'delete', + 'get', + 'list', + 'share', + 'unshare', + 'update', + ], + 'public-data-table': [ + 'add', + 'delete', + 'get', + 'list', + 'load', + 'transform', + 'update', + ], + 'public-folder': [ + 'create', + 'delete', + 'get', + 'list', + 'share', + 'unshare', + 'update', + ], + 'public-widget': [ + 'create', + 'delete', + 'get', + 'list', + 'load-sum', + 'load', + 'update', + ], + }, + identity: { + agent: [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list', + 'regenerate', + ], + app: [ + 'create', + 'delete', + 'disable', + 'enable', + 'generateApiKey', + 'get', + 'list', + 'stat', + 'update', + ], + domain: [ + 'get-auth-info', + 'get', + 'list', + ], + endpoint: [ + 'list', + ], + job: [ + 'delete', + 'get', + 'list', + 'stat', + ], + package: [ + 'change-order', + 'create', + 'delete', + 'get', + 'list', + 'set-default', + 'update', + ], + project: [ + 'add-users', + 'change-project-group', + 'create', + 'delete', + 'get', + 'list', + 'remove-users', + 'udpate', + 'update-project-type', + ], + 'project-group': [ + 'add-users', + 'change-parent-group', + 'create', + 'delete', + 'get', + 'list', + 'remove-users', + 'update', + ], + provider: [ + 'create', + 'delete', + 'get', + 'list', + 'stat', + 'update', + ], + role: [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list-basic-role', + 'list', + 'update', + ], + 'role-binding': [ + 'create', + 'delete', + 'list', + 'update-role', + ], + schema: [ + 'create', + 'delete', + 'get', + 'list', + 'stat', + 'update', + ], + 'service-account': [ + 'create', + 'detele-secret-data', + 'detele', + 'get', + 'list', + 'stat', + 'update-secret-data', + 'update', + ], + token: [ + 'grant', + 'issue', + ], + 'trusted-account': [ + 'create', + 'detele', + 'get', + 'list', + 'stat', + 'update-secret-data', + 'update', + ], + user: [ + 'create', + 'delete', + 'disable-mfa', + 'disable', + 'enable', + 'get', + 'list', + 'update', + 'verify-email', + ], + 'user-group': [ + 'add-users', + 'create', + 'delete', + 'get', + 'list', + 'remove-users', + 'update', + ], + 'user-profile': [ + 'confirm-email', + 'confirm-mfa', + 'enable-mfa', + 'get-workspaces', + 'reset-password', + 'update-password', + 'update', + 'verify-email', + ], + workspace: [ + 'add-package', + 'change-workspace-group', + 'create', + 'delete', + 'list', + 'remove-package', + 'update', + ], + 'workspace-group': [ + 'add-users', + 'create', + 'delete', + 'get', + 'list', + 'remove-users', + 'stat', + 'update-role', + 'update', + ], + 'workspace-group-user': [ + 'add', + 'find', + 'get', + 'list', + 'remove', + 'stat', + 'update-role', + ], + 'workspace-user': [ + 'create', + 'find', + 'get', + 'list', + ], + }, + opsflow: { + comment: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + event: [ + 'list', + ], + task: [ + 'change-assignee', + 'change-status', + 'create', + 'delete', + 'get', + 'list', + 'update-description', + 'update', + ], + 'task-category': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'task-type': [ + 'create', + 'delete', + 'get', + 'list', + 'update-fields', + 'update', + ], + }, +} as const; +export type APIDoc = typeof API_DOC; diff --git a/apps/web/src/api-clients/_common/types/query-key-type.ts b/apps/web/src/api-clients/_common/types/query-key-type.ts new file mode 100644 index 0000000000..b8430ca461 --- /dev/null +++ b/apps/web/src/api-clients/_common/types/query-key-type.ts @@ -0,0 +1,9 @@ +import type { API_DOC } from '@/api-clients/_common/constants/api-doc'; + + +/** + * Extracts all possible keys for `{service-name}`, `{resource-name}`, and `{verb}` + */ +export type ServiceName = keyof typeof API_DOC; +export type ResourceName = keyof (typeof API_DOC)[S]; +export type Verb> = Extract<(typeof API_DOC)[S][R], string[]>[number] | string; diff --git a/apps/web/src/api-clients/add-ons/favorite/schema/model.ts b/apps/web/src/api-clients/add-ons/favorite/schema/model.ts index b6c854720a..1959b6e297 100644 --- a/apps/web/src/api-clients/add-ons/favorite/schema/model.ts +++ b/apps/web/src/api-clients/add-ons/favorite/schema/model.ts @@ -1,4 +1,4 @@ -import type { UserConfigModel } from '@/schema/config/user-config/model'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; import type { FavoriteType } from '@/common/modules/favorites/favorite-button/type'; diff --git a/apps/web/src/api-clients/api-client-manager.ts b/apps/web/src/api-clients/api-client-manager.ts new file mode 100644 index 0000000000..b480adeaa2 --- /dev/null +++ b/apps/web/src/api-clients/api-client-manager.ts @@ -0,0 +1,73 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import config from '@/lib/config'; +import type { ApiClientsSchemaType } from '@/lib/config/global-config/api-client-schema'; +import { ApiClientEndpoint } from '@/lib/config/global-config/api-client-schema'; + +interface ServiceConfig { + ENABLED: boolean; + VERSION: string; +} + +interface GlobalConfig { + SERVICES: { + [key: string]: ServiceConfig; + }; +} + +class APIClientManager { + // eslint-disable-next-line no-undef + [key: string]: any; + + private config: GlobalConfig['SERVICES'] | null = null; + + private apiClientsSchema: ApiClientsSchemaType = {} as ApiClientsSchemaType; + + async initialize() { + await config.init(); + this.config = config.get('SERVICES') || {}; + this.apiClientsSchema = JSON.parse(JSON.stringify(ApiClientEndpoint)); + + this.defineDynamicServices(); + } + + private defineDynamicServices() { + if (!this.apiClientsSchema) { + throw new Error('[APIClientManager] APIClientManager is not initialized. Call initialize() first.'); + } + + Object.keys(this.apiClientsSchema).forEach((serviceName) => { + const propertyName = serviceName.toLowerCase() + .replace(/_([a-z])/g, (_, char) => char.toUpperCase()); + + Object.defineProperty(this, propertyName, { + get: () => this.createServiceHandler(serviceName), + enumerable: true, + }); + }); + } + + private createServiceHandler(serviceName: string) { + const serviceConfig = this.config?.[serviceName] || null; + if (!serviceConfig || !serviceConfig.ENABLED) { + return null; + } + + const apiClientSchemaByService = this.apiClientsSchema[serviceName]; + if (!apiClientSchemaByService) { + return null; + } + + const version = serviceConfig.VERSION; + const clientEndpoint = apiClientSchemaByService[version]; + if (!clientEndpoint) { + return null; + } + + const endpoint = SpaceConnector.clientV2[clientEndpoint]; + + return { endpoint, version }; + } +} + +export default new APIClientManager(); diff --git a/apps/web/src/api-clients/config/domain-config/composables/use-domain-config-api.ts b/apps/web/src/api-clients/config/domain-config/composables/use-domain-config-api.ts new file mode 100644 index 0000000000..ac53167f95 --- /dev/null +++ b/apps/web/src/api-clients/config/domain-config/composables/use-domain-config-api.ts @@ -0,0 +1,29 @@ +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 { DomainConfigCreateParameters } from '@/api-clients/config/domain-config/schema/api-verbs/create'; +import type { DomainConfigGetParameters } from '@/api-clients/config/domain-config/schema/api-verbs/get'; +import type { DomainConfigListParameters } from '@/api-clients/config/domain-config/schema/api-verbs/list'; +import type { DomainConfigSetParameters } from '@/api-clients/config/domain-config/schema/api-verbs/set'; +import type { DomainConfigUpdateParameters } from '@/api-clients/config/domain-config/schema/api-verbs/update'; +import type { DomainConfigModel } from '@/api-clients/config/domain-config/schema/model'; + +export const useDomainConfigApi = () => { + const domainConfigQueryKey = useAPIQueryKey('config', 'domain-config', 'get'); + const domainConfigListQueryKey = useAPIQueryKey('config', 'domain-config', 'list'); + + const actions = { + create: SpaceConnector.clientV2.config.domainConfig.create, + update: SpaceConnector.clientV2.config.domainConfig.update, + get: SpaceConnector.clientV2.config.domainConfig.get, + list: SpaceConnector.clientV2.config.domainConfig.list>, + set: SpaceConnector.clientV2.config.domainConfig.set, + }; + + return { + domainConfigQueryKey, + domainConfigListQueryKey, + domainConfigAPI: actions, + }; +}; diff --git a/apps/web/src/schema/config/domain-config/api-verbs/create.ts b/apps/web/src/api-clients/config/domain-config/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/config/domain-config/api-verbs/create.ts rename to apps/web/src/api-clients/config/domain-config/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/config/domain-config/api-verbs/get.ts b/apps/web/src/api-clients/config/domain-config/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/config/domain-config/api-verbs/get.ts rename to apps/web/src/api-clients/config/domain-config/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/config/domain-config/api-verbs/list.ts b/apps/web/src/api-clients/config/domain-config/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/config/domain-config/api-verbs/list.ts rename to apps/web/src/api-clients/config/domain-config/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/config/domain-config/api-verbs/set.ts b/apps/web/src/api-clients/config/domain-config/schema/api-verbs/set.ts similarity index 100% rename from apps/web/src/schema/config/domain-config/api-verbs/set.ts rename to apps/web/src/api-clients/config/domain-config/schema/api-verbs/set.ts diff --git a/apps/web/src/schema/config/domain-config/api-verbs/update.ts b/apps/web/src/api-clients/config/domain-config/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/config/domain-config/api-verbs/update.ts rename to apps/web/src/api-clients/config/domain-config/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/config/domain-config/constant.ts b/apps/web/src/api-clients/config/domain-config/schema/constant.ts similarity index 100% rename from apps/web/src/schema/config/domain-config/constant.ts rename to apps/web/src/api-clients/config/domain-config/schema/constant.ts diff --git a/apps/web/src/schema/config/domain-config/model.ts b/apps/web/src/api-clients/config/domain-config/schema/model.ts similarity index 100% rename from apps/web/src/schema/config/domain-config/model.ts rename to apps/web/src/api-clients/config/domain-config/schema/model.ts diff --git a/apps/web/src/schema/config/domain-config/type.ts b/apps/web/src/api-clients/config/domain-config/schema/type.ts similarity index 79% rename from apps/web/src/schema/config/domain-config/type.ts rename to apps/web/src/api-clients/config/domain-config/schema/type.ts index 32677faf79..eb377805ae 100644 --- a/apps/web/src/schema/config/domain-config/type.ts +++ b/apps/web/src/api-clients/config/domain-config/schema/type.ts @@ -1,4 +1,4 @@ -import type { DOMAIN_CONFIG_NAMES } from '@/schema/config/domain-config/constant'; +import type { DOMAIN_CONFIG_NAMES } from '@/api-clients/config/domain-config/schema/constant'; export type ExtendedAuthType = 'GOOGLE_OAUTH2' | 'KEYCLOAK_OIDC' | 'SAML'; diff --git a/apps/web/src/api-clients/config/public-config/composables/use-public-config-api.ts b/apps/web/src/api-clients/config/public-config/composables/use-public-config-api.ts new file mode 100644 index 0000000000..9f64ce0881 --- /dev/null +++ b/apps/web/src/api-clients/config/public-config/composables/use-public-config-api.ts @@ -0,0 +1,31 @@ +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 { PublicConfigCreateParameters } from '@/api-clients/config/public-config/schema/api-verbs/create'; +import type { PublicConfigGetParameters as PublicConfigDeleteParameters } from '@/api-clients/config/public-config/schema/api-verbs/delete'; +import type { PublicConfigGetParameters } from '@/api-clients/config/public-config/schema/api-verbs/get'; +import type { PublicConfigListParameters } from '@/api-clients/config/public-config/schema/api-verbs/list'; +import type { PublicConfigSetParameters } from '@/api-clients/config/public-config/schema/api-verbs/set'; +import type { PublicConfigUpdateParameters } from '@/api-clients/config/public-config/schema/api-verbs/update'; +import type { PublicConfigModel } from '@/api-clients/config/public-config/schema/model'; + +export const usePublicConfigApi = () => { + const publicConfigQueryKey = useAPIQueryKey('config', 'public-config', 'get'); + const publicConfigListQueryKey = useAPIQueryKey('config', 'public-config', 'list'); + + const actions = { + create: SpaceConnector.clientV2.config.publicConfig.create, + update: SpaceConnector.clientV2.config.publicConfig.update, + delete: SpaceConnector.clientV2.config.publicConfig.delete, + get: SpaceConnector.clientV2.config.publicConfig.get, + list: SpaceConnector.clientV2.config.publicConfig.list>, + set: SpaceConnector.clientV2.config.publicConfig.set, + }; + + return { + publicConfigQueryKey, + publicConfigListQueryKey, + publicConfigAPI: actions, + }; +}; diff --git a/apps/web/src/schema/config/public-config/api-verbs/create.ts b/apps/web/src/api-clients/config/public-config/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/config/public-config/api-verbs/create.ts rename to apps/web/src/api-clients/config/public-config/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/config/public-config/api-verbs/delete.ts b/apps/web/src/api-clients/config/public-config/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/config/public-config/api-verbs/delete.ts rename to apps/web/src/api-clients/config/public-config/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/config/public-config/api-verbs/get.ts b/apps/web/src/api-clients/config/public-config/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/config/public-config/api-verbs/get.ts rename to apps/web/src/api-clients/config/public-config/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/config/public-config/api-verbs/list.ts b/apps/web/src/api-clients/config/public-config/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/config/public-config/api-verbs/list.ts rename to apps/web/src/api-clients/config/public-config/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/config/public-config/api-verbs/set.ts b/apps/web/src/api-clients/config/public-config/schema/api-verbs/set.ts similarity index 100% rename from apps/web/src/schema/config/public-config/api-verbs/set.ts rename to apps/web/src/api-clients/config/public-config/schema/api-verbs/set.ts diff --git a/apps/web/src/schema/config/public-config/api-verbs/update.ts b/apps/web/src/api-clients/config/public-config/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/config/public-config/api-verbs/update.ts rename to apps/web/src/api-clients/config/public-config/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/config/public-config/constant.ts b/apps/web/src/api-clients/config/public-config/schema/constant.ts similarity index 100% rename from apps/web/src/schema/config/public-config/constant.ts rename to apps/web/src/api-clients/config/public-config/schema/constant.ts diff --git a/apps/web/src/schema/config/public-config/model.ts b/apps/web/src/api-clients/config/public-config/schema/model.ts similarity index 100% rename from apps/web/src/schema/config/public-config/model.ts rename to apps/web/src/api-clients/config/public-config/schema/model.ts diff --git a/apps/web/src/api-clients/config/public-config/schema/type.ts b/apps/web/src/api-clients/config/public-config/schema/type.ts new file mode 100644 index 0000000000..68182ca5bc --- /dev/null +++ b/apps/web/src/api-clients/config/public-config/schema/type.ts @@ -0,0 +1,3 @@ +import type { PUBLIC_CONFIG_NAMES } from '@/api-clients/config/public-config/schema/constant'; + +export type PublicConfigKey = keyof typeof PUBLIC_CONFIG_NAMES; diff --git a/apps/web/src/api-clients/config/shared-config/composables/use-shared-config-api.ts b/apps/web/src/api-clients/config/shared-config/composables/use-shared-config-api.ts new file mode 100644 index 0000000000..7056ddbeb2 --- /dev/null +++ b/apps/web/src/api-clients/config/shared-config/composables/use-shared-config-api.ts @@ -0,0 +1,29 @@ +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 { SharedConfigCreateParameters } from '@/api-clients/config/shared-config/schema/api-verbs/create'; +import type { SharedConfigDeleteParameters } from '@/api-clients/config/shared-config/schema/api-verbs/delete'; +import type { SharedConfigGetParameters } from '@/api-clients/config/shared-config/schema/api-verbs/get'; +import type { SharedConfigListParameters } from '@/api-clients/config/shared-config/schema/api-verbs/list'; +import type { SharedConfigUpdateParameters } from '@/api-clients/config/shared-config/schema/api-verbs/update'; +import type { SharedConfigModel } from '@/api-clients/config/shared-config/schema/model'; + +export const useSharedConfigApi = () => { + const sharedConfigQueryKey = useAPIQueryKey('config', 'shared-config', 'get'); + const sharedConfigListQueryKey = useAPIQueryKey('config', 'shared-config', 'list'); + + const actions = { + create: SpaceConnector.clientV2.config.sharedConfig.create, + update: SpaceConnector.clientV2.config.sharedConfig.update, + delete: SpaceConnector.clientV2.config.sharedConfig.delete, + get: SpaceConnector.clientV2.config.sharedConfig.get, + list: SpaceConnector.clientV2.config.sharedConfig.list>, + }; + + return { + sharedConfigQueryKey, + sharedConfigListQueryKey, + sharedConfigAPI: actions, + }; +}; diff --git a/apps/web/src/schema/config/shared-config/api-verbs/create.ts b/apps/web/src/api-clients/config/shared-config/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/config/shared-config/api-verbs/create.ts rename to apps/web/src/api-clients/config/shared-config/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/config/shared-config/api-verbs/delete.ts b/apps/web/src/api-clients/config/shared-config/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/config/shared-config/api-verbs/delete.ts rename to apps/web/src/api-clients/config/shared-config/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/config/shared-config/api-verbs/get.ts b/apps/web/src/api-clients/config/shared-config/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/config/shared-config/api-verbs/get.ts rename to apps/web/src/api-clients/config/shared-config/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/config/shared-config/api-verbs/list.ts b/apps/web/src/api-clients/config/shared-config/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/config/shared-config/api-verbs/list.ts rename to apps/web/src/api-clients/config/shared-config/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/config/shared-config/api-verbs/update.ts b/apps/web/src/api-clients/config/shared-config/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/config/shared-config/api-verbs/update.ts rename to apps/web/src/api-clients/config/shared-config/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/config/shared-config/constant.ts b/apps/web/src/api-clients/config/shared-config/schema/constant.ts similarity index 100% rename from apps/web/src/schema/config/shared-config/constant.ts rename to apps/web/src/api-clients/config/shared-config/schema/constant.ts diff --git a/apps/web/src/schema/config/shared-config/model.ts b/apps/web/src/api-clients/config/shared-config/schema/model.ts similarity index 100% rename from apps/web/src/schema/config/shared-config/model.ts rename to apps/web/src/api-clients/config/shared-config/schema/model.ts diff --git a/apps/web/src/schema/config/shared-config/type.ts b/apps/web/src/api-clients/config/shared-config/schema/type.ts similarity index 64% rename from apps/web/src/schema/config/shared-config/type.ts rename to apps/web/src/api-clients/config/shared-config/schema/type.ts index e862d85402..05cb485174 100644 --- a/apps/web/src/schema/config/shared-config/type.ts +++ b/apps/web/src/api-clients/config/shared-config/schema/type.ts @@ -1,4 +1,4 @@ -import type { SHARED_CONFIG_NAMES } from '@/schema/config/shared-config/constant'; +import type { SHARED_CONFIG_NAMES } from '@/api-clients/config/shared-config/schema/constant'; // eslint-disable-next-line @typescript-eslint/no-empty-interface diff --git a/apps/web/src/api-clients/config/user-config/composables/use-user-config-api.ts b/apps/web/src/api-clients/config/user-config/composables/use-user-config-api.ts new file mode 100644 index 0000000000..6ece467964 --- /dev/null +++ b/apps/web/src/api-clients/config/user-config/composables/use-user-config-api.ts @@ -0,0 +1,31 @@ +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 { UserConfigCreateParameters } from '@/api-clients/config/user-config/schema/api-verbs/create'; +import type { UserConfigDeleteParameters } from '@/api-clients/config/user-config/schema/api-verbs/delete'; +import type { UserConfigGetParameters } from '@/api-clients/config/user-config/schema/api-verbs/get'; +import type { UserConfigListParameters } from '@/api-clients/config/user-config/schema/api-verbs/list'; +import type { UserConfigSetParameters } from '@/api-clients/config/user-config/schema/api-verbs/set'; +import type { UserConfigUpdateParameters } from '@/api-clients/config/user-config/schema/api-verbs/update'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; + +export const useUserConfigApi = () => { + const userConfigQueryKey = useAPIQueryKey('config', 'user-config', 'get'); + const userConfigListQueryKey = useAPIQueryKey('config', 'user-config', 'list'); + + const actions = { + create: SpaceConnector.clientV2.config.userConfig.create, + update: SpaceConnector.clientV2.config.userConfig.update, + delete: SpaceConnector.clientV2.config.userConfig.delete, + get: SpaceConnector.clientV2.config.userConfig.get, + list: SpaceConnector.clientV2.config.userConfig.list>, + set: SpaceConnector.clientV2.config.userConfig.set, + }; + + return { + userConfigQueryKey, + userConfigListQueryKey, + userConfigAPI: actions, + }; +}; diff --git a/apps/web/src/schema/config/user-config/api-verbs/create.ts b/apps/web/src/api-clients/config/user-config/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/config/user-config/api-verbs/create.ts rename to apps/web/src/api-clients/config/user-config/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/config/user-config/api-verbs/delete.ts b/apps/web/src/api-clients/config/user-config/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/config/user-config/api-verbs/delete.ts rename to apps/web/src/api-clients/config/user-config/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/config/user-config/api-verbs/get.ts b/apps/web/src/api-clients/config/user-config/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/config/user-config/api-verbs/get.ts rename to apps/web/src/api-clients/config/user-config/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/config/user-config/api-verbs/list.ts b/apps/web/src/api-clients/config/user-config/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/config/user-config/api-verbs/list.ts rename to apps/web/src/api-clients/config/user-config/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/config/user-config/api-verbs/set.ts b/apps/web/src/api-clients/config/user-config/schema/api-verbs/set.ts similarity index 100% rename from apps/web/src/schema/config/user-config/api-verbs/set.ts rename to apps/web/src/api-clients/config/user-config/schema/api-verbs/set.ts diff --git a/apps/web/src/schema/config/user-config/api-verbs/update.ts b/apps/web/src/api-clients/config/user-config/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/config/user-config/api-verbs/update.ts rename to apps/web/src/api-clients/config/user-config/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/config/user-config/model.ts b/apps/web/src/api-clients/config/user-config/schema/model.ts similarity index 100% rename from apps/web/src/schema/config/user-config/model.ts rename to apps/web/src/api-clients/config/user-config/schema/model.ts diff --git a/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update-recipients.ts b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update-recipients.ts index 10ef62af89..5d49ca7275 100644 --- a/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update-recipients.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update-recipients.ts @@ -1,4 +1,4 @@ -import type { RoleType } from '@/schema/identity/role/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; export interface CostReportConfigUpdateRecipientsParameters { diff --git a/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/model.ts b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/model.ts index e755b76087..ea49d24879 100644 --- a/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/model.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-report-config/schema/model.ts @@ -1,5 +1,5 @@ import type { CostReportConfigStatus } from '@/api-clients/cost-analysis/cost-report-config/schema/type'; -import type { RoleType } from '@/schema/identity/role/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; import type { Currency } from '@/store/display/type'; import type { LanguageCode } from '@/store/user/type'; diff --git a/apps/web/src/api-clients/cost-analysis/data-source/schema/model.ts b/apps/web/src/api-clients/cost-analysis/data-source/schema/model.ts index f698bf64fe..cecb6ca0c3 100644 --- a/apps/web/src/api-clients/cost-analysis/data-source/schema/model.ts +++ b/apps/web/src/api-clients/cost-analysis/data-source/schema/model.ts @@ -1,7 +1,7 @@ import type { JsonSchema } from '@cloudforet/mirinae/types/controls/forms/json-schema-form/type'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { CostDataSourceSecretType, CostDataSourceState, CostDataSourceType } from '@/api-clients/cost-analysis/data-source/schema/type'; +import type { CostDataSourceSchedule, CostDataSourceSecretType, CostDataSourceType } from '@/api-clients/cost-analysis/data-source/schema/type'; interface PluginInfoModel { 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 index e6be21d1f7..94168b16fa 100644 --- 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 @@ -4,7 +4,7 @@ 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 { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-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'; @@ -15,7 +15,7 @@ import type { PrivateDashboardUpdateParameters } from '@/api-clients/dashboard/p import type { PrivateDashboardModel } from '@/api-clients/dashboard/private-dashboard/schema/model'; interface UsePrivateDashboardApiReturn { - privateDashboardQueryKey: ComputedRef; + privateDashboardGetQueryKey: ComputedRef; privateDashboardListQueryKey: ComputedRef; privateDashboardAPI: { create: (params: PrivateDashboardCreateParameters) => Promise; @@ -29,8 +29,8 @@ interface UsePrivateDashboardApiReturn { export const usePrivateDashboardApi = (): UsePrivateDashboardApiReturn => { - const privateDashboardQueryKey = useAPIQueryKey('private-dashboard/get'); - const privateDashboardListQueryKey = useAPIQueryKey('private-dashboard/list'); + const privateDashboardGetQueryKey = useAPIQueryKey('dashboard', 'private-dashboard', 'get'); + const privateDashboardListQueryKey = useAPIQueryKey('dashboard', 'private-dashboard', 'list'); const actions = { async create(params: PrivateDashboardCreateParameters) { @@ -54,7 +54,7 @@ export const usePrivateDashboardApi = (): UsePrivateDashboardApiReturn => { }; return { - privateDashboardQueryKey, + privateDashboardGetQueryKey, privateDashboardListQueryKey, privateDashboardAPI: actions, }; 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 index 69dc86ea2b..280c5e58fa 100644 --- 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 @@ -4,7 +4,7 @@ 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 { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-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'; @@ -17,7 +17,7 @@ import type { DataTableTransformParameters } from '@/api-clients/dashboard/publi import type { DataTableUpdateParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/update'; interface UsePrivateDataTableApiReturn { - privateDataTableQueryKey: ComputedRef; + privateDataTableGetQueryKey: ComputedRef; privateDataTableListQueryKey: ComputedRef; privateDataTableLoadQueryKey: ComputedRef; privateDataTableAPI: { @@ -32,9 +32,9 @@ interface UsePrivateDataTableApiReturn { } 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 privateDataTableGetQueryKey = useAPIQueryKey('dashboard', 'private-data-table', 'get'); + const privateDataTableListQueryKey = useAPIQueryKey('dashboard', 'private-dashboard', 'list'); + const privateDataTableLoadQueryKey = useAPIQueryKey('dashboard', 'private-dashboard', 'list'); const action = { async add(params: DataTableAddParameters) { @@ -61,7 +61,7 @@ export const usePrivateDataTableApi = (): UsePrivateDataTableApiReturn => { }; return { - privateDataTableQueryKey, + privateDataTableGetQueryKey, privateDataTableListQueryKey, privateDataTableLoadQueryKey, privateDataTableAPI: action, diff --git a/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/add.ts b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/add.ts new file mode 100644 index 0000000000..b58c7c4d6b --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/add.ts @@ -0,0 +1,17 @@ +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; + +import type { + DataTableOptions, DataTableSourceType, +} from '@/common/modules/widgets/types/widget-model'; + + + +export interface DataTableAddParameters { + widget_id: string; + name?: string; + source_type: DataTableSourceType; + options?: DataTableOptions; + tags?: Tags; + vars?: DashboardVars; +} diff --git a/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/delete.ts b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/delete.ts new file mode 100644 index 0000000000..9e29a7bc5c --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/delete.ts @@ -0,0 +1,3 @@ +export interface DataTableDeleteParameters { + data_table_id: string; +} diff --git a/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/get.ts b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/get.ts new file mode 100644 index 0000000000..ee75f6f558 --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/get.ts @@ -0,0 +1,3 @@ +export interface DataTableGetParameters { + data_table_id: string; +} diff --git a/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/list.ts b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/list.ts new file mode 100644 index 0000000000..de0f6003ef --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/list.ts @@ -0,0 +1,11 @@ +import type { DataTableSourceType, DataTableOperator, DataTableDataType } from '@/common/modules/widgets/types/widget-model'; + +export interface DataTableListParameters { + widget_id: string; + query?: Record; + data_table_id?: string; + name?: string; + data_type?: DataTableDataType + source_type?: DataTableSourceType; + operator?: DataTableOperator; +} diff --git a/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/load.ts b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/load.ts new file mode 100644 index 0000000000..defac8b27b --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-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/api-clients/dashboard/private-data-table/schema/api-verbs/transform.ts b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/transform.ts new file mode 100644 index 0000000000..4e18967e73 --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/transform.ts @@ -0,0 +1,18 @@ +import type { Tags } from '@/api-clients/_common/schema/model'; +import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; + +import type { + DataTableOperator, + DataTableOptions, +} from '@/common/modules/widgets/types/widget-model'; + + + +export interface DataTableTransformParameters { + widget_id: string; + name?: string; + operator: DataTableOperator; + options?: DataTableOptions; + tags?: Tags; + vars?: DashboardVars; +} diff --git a/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/update.ts b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/update.ts new file mode 100644 index 0000000000..9641db8bbc --- /dev/null +++ b/apps/web/src/api-clients/dashboard/private-data-table/schema/api-verbs/update.ts @@ -0,0 +1,14 @@ +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'; + + + +export interface DataTableUpdateParameters { + data_table_id: string; + name?: string; + options?: DataTableOptions; + tags?: Tags; + vars?: DashboardVars; +} 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 index bd61398f37..20401b6f12 100644 --- 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 @@ -4,7 +4,7 @@ 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 { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-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'; @@ -14,7 +14,7 @@ import type { PrivateFolderUpdateParameters } from '@/api-clients/dashboard/priv import type { PrivateFolderModel } from '@/api-clients/dashboard/private-folder/schema/model'; interface UsePrivateFolderApiReturn { - privateFolderQueryKey: ComputedRef; + privateFolderGetQueryKey: ComputedRef; privateFolderListQueryKey: ComputedRef; privateFolderAPI: { create: (params: PrivateFolderCreateParameters) => Promise; @@ -26,8 +26,8 @@ interface UsePrivateFolderApiReturn { } export const usePrivateFolderApi = (): UsePrivateFolderApiReturn => { - const privateFolderQueryKey = useAPIQueryKey('private-folder/get'); - const privateFolderListQueryKey = useAPIQueryKey('private-folder/list'); + const privateFolderGetQueryKey = useAPIQueryKey('dashboard', 'private-folder', 'get'); + const privateFolderListQueryKey = useAPIQueryKey('dashboard', 'private-folder', 'list'); const action = { async create(params: PrivateFolderCreateParameters) { @@ -48,7 +48,7 @@ export const usePrivateFolderApi = (): UsePrivateFolderApiReturn => { }; return { - privateFolderQueryKey, + privateFolderGetQueryKey, privateFolderListQueryKey, privateFolderAPI: action, }; 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 index 354c0c7d76..abb13242b3 100644 --- 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 @@ -4,7 +4,7 @@ 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 { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-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'; @@ -17,7 +17,7 @@ import type { PrivateWidgetUpdateParameters } from '@/api-clients/dashboard/priv import type { PrivateWidgetModel } from '@/api-clients/dashboard/private-widget/schema/model'; interface UsePrivateWidgetApiReturn { - privateWidgetQueryKey: ComputedRef; + privateWidgetGetQueryKey: ComputedRef; privateWidgetListQueryKey: ComputedRef; privateWidgetLoadQueryKey: ComputedRef; privateWidgetLoadSumQueryKey: ComputedRef; @@ -33,10 +33,10 @@ interface UsePrivateWidgetApiReturn { } 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 privateWidgetGetQueryKey = useAPIQueryKey('dashboard', 'private-widget', 'get'); + const privateWidgetListQueryKey = useAPIQueryKey('dashboard', 'private-widget', 'list'); + const privateWidgetLoadQueryKey = useAPIQueryKey('dashboard', 'private-widget', 'load'); + const privateWidgetLoadSumQueryKey = useAPIQueryKey('dashboard', 'private-widget', 'load-sum'); const action = { async create(params: PrivateWidgetCreateParameters) { @@ -63,7 +63,7 @@ export const usePrivateWidgetApi = (): UsePrivateWidgetApiReturn => { }; return { - privateWidgetQueryKey, + privateWidgetGetQueryKey, privateWidgetListQueryKey, privateWidgetLoadQueryKey, privateWidgetLoadSumQueryKey, 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 index 9a04d3f2e5..e2969a6483 100644 --- 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 @@ -4,7 +4,7 @@ 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 { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-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'; @@ -17,7 +17,7 @@ import type { PublicDashboardUpdateParameters } from '@/api-clients/dashboard/pu import type { PublicDashboardModel } from '@/api-clients/dashboard/public-dashboard/schema/model'; interface UsePublicDashboardApiReturn { - publicDashboardQueryKey: ComputedRef; + publicDashboardGetQueryKey: ComputedRef; publicDashboardListQueryKey: ComputedRef; publicDashboardAPI: { create: (params: PublicDashboardCreateParameters) => Promise; @@ -32,8 +32,8 @@ interface UsePublicDashboardApiReturn { } export const usePublicDashboardApi = (): UsePublicDashboardApiReturn => { - const publicDashboardQueryKey = useAPIQueryKey('public-dashboard/get'); - const publicDashboardListQueryKey = useAPIQueryKey('public-dashboard/list'); + const publicDashboardGetQueryKey = useAPIQueryKey('dashboard', 'public-dashboard', 'get'); + const publicDashboardListQueryKey = useAPIQueryKey('dashboard', 'public-dashboard', 'list'); const actions = { async create(params: PublicDashboardCreateParameters) { @@ -63,7 +63,7 @@ export const usePublicDashboardApi = (): UsePublicDashboardApiReturn => { }; return { - publicDashboardQueryKey, + publicDashboardGetQueryKey, publicDashboardListQueryKey, publicDashboardAPI: actions, }; 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 index b40aa342a5..dcf0879a22 100644 --- 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 @@ -4,7 +4,7 @@ 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 { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-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'; @@ -18,7 +18,7 @@ import type { PublicDataTableModel } from '@/api-clients/dashboard/public-data-t interface UsePublicDataTableApiReturn { - publicDataTableQueryKey: ComputedRef; + publicDataTableGetQueryKey: ComputedRef; publicDataTableListQueryKey: ComputedRef; publicDataTableLoadQueryKey: ComputedRef; publicDataTableAPI: { @@ -33,9 +33,9 @@ interface UsePublicDataTableApiReturn { } 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 publicDataTableGetQueryKey = useAPIQueryKey('dashboard', 'public-data-table', 'get'); + const publicDataTableListQueryKey = useAPIQueryKey('dashboard', 'public-data-table', 'list'); + const publicDataTableLoadQueryKey = useAPIQueryKey('dashboard', 'public-data-table', 'load'); const action = { async add(params: DataTableAddParameters) { @@ -62,7 +62,7 @@ export const usePublicDataTableApi = (): UsePublicDataTableApiReturn => { }; return { - publicDataTableQueryKey, + publicDataTableGetQueryKey, publicDataTableListQueryKey, publicDataTableLoadQueryKey, publicDataTableAPI: action, 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 index 73b3878793..998f523b29 100644 --- 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 @@ -4,7 +4,7 @@ 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 { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-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'; @@ -16,7 +16,7 @@ import type { PublicFolderUpdateParameters } from '@/api-clients/dashboard/publi import type { PublicFolderModel } from '@/api-clients/dashboard/public-folder/schema/model'; interface UsePublicFolderApiReturn { - publicFolderQueryKey: ComputedRef; + publicFolderGetQueryKey: ComputedRef; publicFolderListQueryKey: ComputedRef; publicFolderAPI: { create: (params: PublicFolderCreateParameters) => Promise; @@ -30,8 +30,8 @@ interface UsePublicFolderApiReturn { } export const usePublicFolderApi = (): UsePublicFolderApiReturn => { - const publicFolderQueryKey = useAPIQueryKey('public-folder/get'); - const publicFolderListQueryKey = useAPIQueryKey('public-folder/list'); + const publicFolderGetQueryKey = useAPIQueryKey('dashboard', 'public-folder', 'get'); + const publicFolderListQueryKey = useAPIQueryKey('dashboard', 'public-folder', 'list'); const action = { async create(params: PublicFolderCreateParameters) { @@ -58,7 +58,7 @@ export const usePublicFolderApi = (): UsePublicFolderApiReturn => { }; return { - publicFolderQueryKey, + publicFolderGetQueryKey, publicFolderListQueryKey, publicFolderAPI: action, }; 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 index c30613da9f..36c10f204a 100644 --- 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 @@ -4,7 +4,7 @@ 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 { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-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'; @@ -17,7 +17,7 @@ import type { PublicWidgetUpdateParameters } from '@/api-clients/dashboard/publi import type { PublicWidgetModel } from '@/api-clients/dashboard/public-widget/schema/model'; interface UsePublicWidgetApiReturn { - publicWidgetQueryKey: ComputedRef; + publicWidgetGetQueryKey: ComputedRef; publicWidgetListQueryKey: ComputedRef; publicWidgetLoadQueryKey: ComputedRef; publicWidgetLoadSumQueryKey: ComputedRef; @@ -33,10 +33,10 @@ interface UsePublicWidgetApiReturn { } 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 publicWidgetGetQueryKey = useAPIQueryKey('dashboard', 'public-widget', 'get'); + const publicWidgetListQueryKey = useAPIQueryKey('dashboard', 'public-widget', 'list'); + const publicWidgetLoadQueryKey = useAPIQueryKey('dashboard', 'public-widget', 'load'); + const publicWidgetLoadSumQueryKey = useAPIQueryKey('dashboard', 'public-widget', 'load-sum'); const action = { async create(params: PublicWidgetCreateParameters) { @@ -63,7 +63,7 @@ export const usePublicWidgetApi = (): UsePublicWidgetApiReturn => { }; return { - publicWidgetQueryKey, + publicWidgetGetQueryKey, publicWidgetListQueryKey, publicWidgetLoadQueryKey, publicWidgetLoadSumQueryKey, diff --git a/apps/web/src/api-clients/identity/agent/composables/use-agent-api.ts b/apps/web/src/api-clients/identity/agent/composables/use-agent-api.ts new file mode 100644 index 0000000000..0cbe4a8d08 --- /dev/null +++ b/apps/web/src/api-clients/identity/agent/composables/use-agent-api.ts @@ -0,0 +1,33 @@ +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 { AgentCreateParameters } from '@/api-clients/identity/agent/schema/api-verbs/create'; +import type { AgentDeleteParameters } from '@/api-clients/identity/agent/schema/api-verbs/delete'; +import type { AgentDisableParameters } from '@/api-clients/identity/agent/schema/api-verbs/disable'; +import type { AgentEnableParameters } from '@/api-clients/identity/agent/schema/api-verbs/enable'; +import type { AgentGetParameters } from '@/api-clients/identity/agent/schema/api-verbs/get'; +import type { AgentListParameters } from '@/api-clients/identity/agent/schema/api-verbs/list'; +import type { AgentRegenerateParameters } from '@/api-clients/identity/agent/schema/api-verbs/regenerate'; +import type { AgentModel } from '@/api-clients/identity/agent/schema/model'; + +export const useAgentApi = () => { + const agentQueryKey = useAPIQueryKey('identity', 'agent', 'get'); + const agentListQueryKey = useAPIQueryKey('identity', 'agent', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.agent.create, + delete: SpaceConnector.clientV2.identity.agent.delete, + get: SpaceConnector.clientV2.identity.agent.get, + list: SpaceConnector.clientV2.identity.agent.list>, + enable: SpaceConnector.clientV2.identity.agent.enable, + disable: SpaceConnector.clientV2.identity.agent.disable, + regenerate: SpaceConnector.clientV2.identity.agent.regenerate, + }; + + return { + agentQueryKey, + agentListQueryKey, + agentAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/agent/api-verbs/create.ts b/apps/web/src/api-clients/identity/agent/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/agent/api-verbs/create.ts rename to apps/web/src/api-clients/identity/agent/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/agent/api-verbs/delete.ts b/apps/web/src/api-clients/identity/agent/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/agent/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/agent/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/agent/api-verbs/disable.ts b/apps/web/src/api-clients/identity/agent/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/identity/agent/api-verbs/disable.ts rename to apps/web/src/api-clients/identity/agent/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/identity/agent/api-verbs/enable.ts b/apps/web/src/api-clients/identity/agent/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/identity/agent/api-verbs/enable.ts rename to apps/web/src/api-clients/identity/agent/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/identity/agent/api-verbs/get.ts b/apps/web/src/api-clients/identity/agent/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/agent/api-verbs/get.ts rename to apps/web/src/api-clients/identity/agent/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/agent/api-verbs/list.ts b/apps/web/src/api-clients/identity/agent/schema/api-verbs/list.ts similarity index 71% rename from apps/web/src/schema/identity/agent/api-verbs/list.ts rename to apps/web/src/api-clients/identity/agent/schema/api-verbs/list.ts index 37de438311..e9e7544fd6 100644 --- a/apps/web/src/schema/identity/agent/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/agent/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { AppStatusType } from '@/schema/identity/app/type'; +import type { AppStatusType } from '@/api-clients/identity/app/schema/type'; export interface AgentListParameters { query?: Query; diff --git a/apps/web/src/schema/identity/agent/api-verbs/regenerate.ts b/apps/web/src/api-clients/identity/agent/schema/api-verbs/regenerate.ts similarity index 100% rename from apps/web/src/schema/identity/agent/api-verbs/regenerate.ts rename to apps/web/src/api-clients/identity/agent/schema/api-verbs/regenerate.ts diff --git a/apps/web/src/schema/identity/agent/model.ts b/apps/web/src/api-clients/identity/agent/schema/model.ts similarity index 86% rename from apps/web/src/schema/identity/agent/model.ts rename to apps/web/src/api-clients/identity/agent/schema/model.ts index 250e0dcd76..ba2e0fa935 100644 --- a/apps/web/src/schema/identity/agent/model.ts +++ b/apps/web/src/api-clients/identity/agent/schema/model.ts @@ -1,4 +1,4 @@ -import type { AppStatusType } from '@/schema/identity/app/type'; +import type { AppStatusType } from '@/api-clients/identity/app/schema/type'; export interface AgentModel { agent_id: string; diff --git a/apps/web/src/api-clients/identity/app/composables/use-app-api.ts b/apps/web/src/api-clients/identity/app/composables/use-app-api.ts new file mode 100644 index 0000000000..bc88a5189c --- /dev/null +++ b/apps/web/src/api-clients/identity/app/composables/use-app-api.ts @@ -0,0 +1,37 @@ +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 { AppCreateParameters } from '@/api-clients/identity/app/schema/api-verbs/create'; +import type { AppDeleteParameters } from '@/api-clients/identity/app/schema/api-verbs/delete'; +import type { AppDisableParameters } from '@/api-clients/identity/app/schema/api-verbs/disable'; +import type { AppEnableParameters } from '@/api-clients/identity/app/schema/api-verbs/enable'; +import type { AppGenerateApiKeyParameters } from '@/api-clients/identity/app/schema/api-verbs/generateApiKey'; +import type { AppGetParameters } from '@/api-clients/identity/app/schema/api-verbs/get'; +import type { AppListParameters } from '@/api-clients/identity/app/schema/api-verbs/list'; +import type { AppStatParameters } from '@/api-clients/identity/app/schema/api-verbs/stat'; +import type { AppUpdateParameters } from '@/api-clients/identity/app/schema/api-verbs/update'; +import type { AppModel } from '@/api-clients/identity/app/schema/model'; + +export const useAppApi = () => { + const appQueryKey = useAPIQueryKey('identity', 'app', 'get'); + const appListQueryKey = useAPIQueryKey('identity', 'app', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.app.create, + update: SpaceConnector.clientV2.identity.app.update, + delete: SpaceConnector.clientV2.identity.app.delete, + get: SpaceConnector.clientV2.identity.app.get, + list: SpaceConnector.clientV2.identity.app.list>, + enable: SpaceConnector.clientV2.identity.app.enable, + disable: SpaceConnector.clientV2.identity.app.disable, + generateApiKey: SpaceConnector.clientV2.identity.app.generateApiKey, + stat: SpaceConnector.clientV2.identity.app.stat, + }; + + return { + appQueryKey, + appListQueryKey, + appAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/app/api-verbs/create.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/app/api-verbs/create.ts rename to apps/web/src/api-clients/identity/app/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/app/api-verbs/delete.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/app/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/app/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/app/api-verbs/disable.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/identity/app/api-verbs/disable.ts rename to apps/web/src/api-clients/identity/app/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/identity/app/api-verbs/enable.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/identity/app/api-verbs/enable.ts rename to apps/web/src/api-clients/identity/app/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/identity/app/api-verbs/generateApiKey.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/generateApiKey.ts similarity index 100% rename from apps/web/src/schema/identity/app/api-verbs/generateApiKey.ts rename to apps/web/src/api-clients/identity/app/schema/api-verbs/generateApiKey.ts diff --git a/apps/web/src/schema/identity/app/api-verbs/get.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/app/api-verbs/get.ts rename to apps/web/src/api-clients/identity/app/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/app/api-verbs/list.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/list.ts similarity index 67% rename from apps/web/src/schema/identity/app/api-verbs/list.ts rename to apps/web/src/api-clients/identity/app/schema/api-verbs/list.ts index 8756246f14..f12362f966 100644 --- a/apps/web/src/schema/identity/app/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/app/schema/api-verbs/list.ts @@ -1,7 +1,7 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { AppStatusType } from '@/schema/identity/app/type'; -import type { RoleType } from '@/schema/identity/role/type'; +import type { AppStatusType } from '@/api-clients/identity/app/schema/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; export interface AppListParameters { query?: Query; diff --git a/apps/web/src/schema/identity/app/api-verbs/stat.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/identity/app/api-verbs/stat.ts rename to apps/web/src/api-clients/identity/app/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/identity/app/api-verbs/update.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/app/api-verbs/update.ts rename to apps/web/src/api-clients/identity/app/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/app/constant.ts b/apps/web/src/api-clients/identity/app/schema/constant.ts similarity index 100% rename from apps/web/src/schema/identity/app/constant.ts rename to apps/web/src/api-clients/identity/app/schema/constant.ts diff --git a/apps/web/src/schema/identity/app/model.ts b/apps/web/src/api-clients/identity/app/schema/model.ts similarity index 80% rename from apps/web/src/schema/identity/app/model.ts rename to apps/web/src/api-clients/identity/app/schema/model.ts index 29981c36f8..7e7cdeadb1 100644 --- a/apps/web/src/schema/identity/app/model.ts +++ b/apps/web/src/api-clients/identity/app/schema/model.ts @@ -1,7 +1,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { AppStatusType } from '@/schema/identity/app/type'; -import type { RoleType } from '@/schema/identity/role/type'; +import type { AppStatusType } from '@/api-clients/identity/app/schema/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; export interface AppModel { app_id: string; diff --git a/apps/web/src/schema/identity/app/type.ts b/apps/web/src/api-clients/identity/app/schema/type.ts similarity index 50% rename from apps/web/src/schema/identity/app/type.ts rename to apps/web/src/api-clients/identity/app/schema/type.ts index c3264d95a4..669528463c 100644 --- a/apps/web/src/schema/identity/app/type.ts +++ b/apps/web/src/api-clients/identity/app/schema/type.ts @@ -1,4 +1,4 @@ -import type { APP_STATUS_TYPE } from '@/schema/identity/app/constant'; +import type { APP_STATUS_TYPE } from '@/api-clients/identity/app/schema/constant'; export type AppStatusType = typeof APP_STATUS_TYPE[keyof typeof APP_STATUS_TYPE]; diff --git a/apps/web/src/api-clients/identity/domain/composables/use-domain-api.ts b/apps/web/src/api-clients/identity/domain/composables/use-domain-api.ts new file mode 100644 index 0000000000..c8b369212b --- /dev/null +++ b/apps/web/src/api-clients/identity/domain/composables/use-domain-api.ts @@ -0,0 +1,26 @@ +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 { DomainGetParameters } from '@/api-clients/identity/domain/schema/api-verbs/get'; +import type { DomainGetAuthInfoParams } from '@/api-clients/identity/domain/schema/api-verbs/get-auth-info'; +import type { DomainListParameters } from '@/api-clients/identity/domain/schema/api-verbs/list'; +import type { DomainModel } from '@/api-clients/identity/domain/schema/model'; + + +export const useDomainApi = () => { + const domainQueryKey = useAPIQueryKey('identity', 'domain', 'get'); + const domainListQueryKey = useAPIQueryKey('identity', 'domain', 'list'); + + const actions = { + get: SpaceConnector.clientV2.identity.domain.get, + list: SpaceConnector.clientV2.identity.domain.list>, + getAuthInfo: SpaceConnector.clientV2.identity.domain.getAuthInfo, + }; + + return { + domainQueryKey, + domainListQueryKey, + domainAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/domain/api-verbs/get-auth-info.ts b/apps/web/src/api-clients/identity/domain/schema/api-verbs/get-auth-info.ts similarity index 100% rename from apps/web/src/schema/identity/domain/api-verbs/get-auth-info.ts rename to apps/web/src/api-clients/identity/domain/schema/api-verbs/get-auth-info.ts diff --git a/apps/web/src/schema/identity/domain/api-verbs/get.ts b/apps/web/src/api-clients/identity/domain/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/domain/api-verbs/get.ts rename to apps/web/src/api-clients/identity/domain/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/domain/api-verbs/list.ts b/apps/web/src/api-clients/identity/domain/schema/api-verbs/list.ts similarity index 64% rename from apps/web/src/schema/identity/domain/api-verbs/list.ts rename to apps/web/src/api-clients/identity/domain/schema/api-verbs/list.ts index 1b546eb2ec..89cb341b74 100644 --- a/apps/web/src/schema/identity/domain/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/domain/schema/api-verbs/list.ts @@ -1,7 +1,7 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { DomainState } from '@/schema/identity/domain/constant'; -import type { DomainModel } from '@/schema/identity/domain/model'; +import type { DomainState } from '@/api-clients/identity/domain/schema/constant'; +import type { DomainModel } from '@/api-clients/identity/domain/schema/model'; export interface DomainListParameters { name?: string; diff --git a/apps/web/src/schema/identity/domain/constant.ts b/apps/web/src/api-clients/identity/domain/schema/constant.ts similarity index 100% rename from apps/web/src/schema/identity/domain/constant.ts rename to apps/web/src/api-clients/identity/domain/schema/constant.ts diff --git a/apps/web/src/schema/identity/domain/model.ts b/apps/web/src/api-clients/identity/domain/schema/model.ts similarity index 71% rename from apps/web/src/schema/identity/domain/model.ts rename to apps/web/src/api-clients/identity/domain/schema/model.ts index ff9317ff8d..4a919884a1 100644 --- a/apps/web/src/schema/identity/domain/model.ts +++ b/apps/web/src/api-clients/identity/domain/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { DomainState } from '@/schema/identity/domain/constant'; +import type { DomainState } from '@/api-clients/identity/domain/schema/constant'; export interface DomainModel { domain_id: string; diff --git a/apps/web/src/api-clients/identity/endpoint/composables/use-endpoint-api.ts b/apps/web/src/api-clients/identity/endpoint/composables/use-endpoint-api.ts new file mode 100644 index 0000000000..9660716ddb --- /dev/null +++ b/apps/web/src/api-clients/identity/endpoint/composables/use-endpoint-api.ts @@ -0,0 +1,19 @@ +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 { EndpointListParameters } from '@/api-clients/identity/endpoint/schema/api-verbs/list'; +import type { EndpointModel } from '@/api-clients/identity/endpoint/schema/model'; + +export const useEndpointApi = () => { + const endpointListQueryKey = useAPIQueryKey('identity', 'endpoint', 'list'); + + const actions = { + list: SpaceConnector.clientV2.identity.endpoint.list>, + }; + + return { + endpointListQueryKey, + endpointAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/endpoint/api-verbs/list.ts b/apps/web/src/api-clients/identity/endpoint/schema/api-verbs/list.ts similarity index 75% rename from apps/web/src/schema/identity/endpoint/api-verbs/list.ts rename to apps/web/src/api-clients/identity/endpoint/schema/api-verbs/list.ts index 2127c014db..2a4037d143 100644 --- a/apps/web/src/schema/identity/endpoint/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/endpoint/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { EndpointModel } from '@/schema/identity/endpoint/model'; +import type { EndpointModel } from '@/api-clients/identity/endpoint/schema/model'; export interface EndpointListParameters { service?: string; diff --git a/apps/web/src/schema/identity/endpoint/model.ts b/apps/web/src/api-clients/identity/endpoint/schema/model.ts similarity index 100% rename from apps/web/src/schema/identity/endpoint/model.ts rename to apps/web/src/api-clients/identity/endpoint/schema/model.ts diff --git a/apps/web/src/api-clients/identity/job/composables/use-job-api.ts b/apps/web/src/api-clients/identity/job/composables/use-job-api.ts new file mode 100644 index 0000000000..cdec08b3f0 --- /dev/null +++ b/apps/web/src/api-clients/identity/job/composables/use-job-api.ts @@ -0,0 +1,27 @@ +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 { IdentityJobDeleteParameters } from '@/api-clients/identity/job/schema/api-verbs/delete'; +import type { IdentityJobGetParameters } from '@/api-clients/identity/job/schema/api-verbs/get'; +import type { IdentityJobListParameters } from '@/api-clients/identity/job/schema/api-verbs/list'; +import type { IdentityJobStatParameters } from '@/api-clients/identity/job/schema/api-verbs/stat'; +import type { IdentityJobModel } from '@/api-clients/identity/job/schema/model'; + +export const useJobApi = () => { + const jobQueryKey = useAPIQueryKey('identity', 'job', 'get'); + const jobListQueryKey = useAPIQueryKey('identity', 'job', 'list'); + + const actions = { + delete: SpaceConnector.clientV2.identity.job.delete, + get: SpaceConnector.clientV2.identity.job.get, + list: SpaceConnector.clientV2.identity.job.list>, + stat: SpaceConnector.clientV2.identity.job.stat, + }; + + return { + jobQueryKey, + jobListQueryKey, + jobAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/job/api-verbs/delete.ts b/apps/web/src/api-clients/identity/job/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/job/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/job/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/job/api-verbs/get.ts b/apps/web/src/api-clients/identity/job/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/job/api-verbs/get.ts rename to apps/web/src/api-clients/identity/job/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/job/api-verbs/list.ts b/apps/web/src/api-clients/identity/job/schema/api-verbs/list.ts similarity index 77% rename from apps/web/src/schema/identity/job/api-verbs/list.ts rename to apps/web/src/api-clients/identity/job/schema/api-verbs/list.ts index 1ef94e16c5..0b029324a3 100644 --- a/apps/web/src/schema/identity/job/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/job/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { IdentityJobStatus } from '@/schema/identity/job/type'; +import type { IdentityJobStatus } from '@/api-clients/identity/job/schema/type'; export interface IdentityJobListParameters { query?: Query; diff --git a/apps/web/src/schema/identity/job/api-verbs/stat.ts b/apps/web/src/api-clients/identity/job/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/identity/job/api-verbs/stat.ts rename to apps/web/src/api-clients/identity/job/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/identity/job/model.ts b/apps/web/src/api-clients/identity/job/schema/model.ts similarity index 82% rename from apps/web/src/schema/identity/job/model.ts rename to apps/web/src/api-clients/identity/job/schema/model.ts index 6b7c68fd6d..ddf54a1b2e 100644 --- a/apps/web/src/schema/identity/job/model.ts +++ b/apps/web/src/api-clients/identity/job/schema/model.ts @@ -1,4 +1,4 @@ -import type { IdentityJobStatus } from '@/schema/identity/job/type'; +import type { IdentityJobStatus } from '@/api-clients/identity/job/schema/type'; export interface IdentityJobModel { job_id: string; diff --git a/apps/web/src/schema/identity/job/type.ts b/apps/web/src/api-clients/identity/job/schema/type.ts similarity index 100% rename from apps/web/src/schema/identity/job/type.ts rename to apps/web/src/api-clients/identity/job/schema/type.ts 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..63666bc57d --- /dev/null +++ b/apps/web/src/api-clients/identity/package/composables/use-package-api.ts @@ -0,0 +1,34 @@ +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'; + + +export const usePackageApi = () => { + const packageQueryKey = useAPIQueryKey('identity', 'package', 'get'); + const packageListQueryKey = useAPIQueryKey('identity', 'package', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.package.create, + update: SpaceConnector.clientV2.identity.package.update, + delete: SpaceConnector.clientV2.identity.package.delete, + get: SpaceConnector.clientV2.identity.package.get, + list: SpaceConnector.clientV2.identity.package.list>, + setDefault: SpaceConnector.clientV2.identity.package.setDefault, + changeOrder: SpaceConnector.clientV2.identity.package.changeOrder, + }; + + 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/api-clients/identity/project-group/composables/use-project-group-api.ts b/apps/web/src/api-clients/identity/project-group/composables/use-project-group-api.ts new file mode 100644 index 0000000000..c544f5fd42 --- /dev/null +++ b/apps/web/src/api-clients/identity/project-group/composables/use-project-group-api.ts @@ -0,0 +1,36 @@ +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 { ProjectGroupAddUsersParameters } from '@/api-clients/identity/project-group/schema/api-verbs/add-users'; +import type { ProjectGroupChangeParentGroupParameters } from '@/api-clients/identity/project-group/schema/api-verbs/change-parent-group'; +import type { ProjectGroupCreateParameters } from '@/api-clients/identity/project-group/schema/api-verbs/create'; +import type { ProjectGroupDeleteParameters } from '@/api-clients/identity/project-group/schema/api-verbs/delete'; +import type { ProjectGroupGetParameters } from '@/api-clients/identity/project-group/schema/api-verbs/get'; +import type { ProjectGroupListParameters } from '@/api-clients/identity/project-group/schema/api-verbs/list'; +import type { ProjectGroupRemoveUsersParameters } from '@/api-clients/identity/project-group/schema/api-verbs/remove-users'; +import type { ProjectGroupUpdateParameters } from '@/api-clients/identity/project-group/schema/api-verbs/update'; +import type { ProjectGroupModel } from '@/api-clients/identity/project-group/schema/model'; + + +export const useProjectGroupApi = () => { + const projectGroupQueryKey = useAPIQueryKey('identity', 'project-group', 'get'); + const projectGroupListQueryKey = useAPIQueryKey('identity', 'project-group', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.projectGroup.create, + update: SpaceConnector.clientV2.identity.projectGroup.update, + delete: SpaceConnector.clientV2.identity.projectGroup.delete, + get: SpaceConnector.clientV2.identity.projectGroup.get, + list: SpaceConnector.clientV2.identity.projectGroup.list>, + addUsers: SpaceConnector.clientV2.identity.projectGroup.addUsers, + removeUsers: SpaceConnector.clientV2.identity.projectGroup.removeUsers, + changeParentGroup: SpaceConnector.clientV2.identity.projectGroup.changeParentGroup, + }; + + return { + projectGroupQueryKey, + projectGroupListQueryKey, + projectGroupAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/project-group/api-verbs/add-users.ts b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/add-users.ts similarity index 100% rename from apps/web/src/schema/identity/project-group/api-verbs/add-users.ts rename to apps/web/src/api-clients/identity/project-group/schema/api-verbs/add-users.ts diff --git a/apps/web/src/schema/identity/project-group/api-verbs/change-parent-group.ts b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/change-parent-group.ts similarity index 100% rename from apps/web/src/schema/identity/project-group/api-verbs/change-parent-group.ts rename to apps/web/src/api-clients/identity/project-group/schema/api-verbs/change-parent-group.ts diff --git a/apps/web/src/schema/identity/project-group/api-verbs/create.ts b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/project-group/api-verbs/create.ts rename to apps/web/src/api-clients/identity/project-group/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/project-group/api-verbs/delete.ts b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/project-group/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/project-group/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/project-group/api-verbs/get.ts b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/project-group/api-verbs/get.ts rename to apps/web/src/api-clients/identity/project-group/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/project-group/api-verbs/list.ts b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/identity/project-group/api-verbs/list.ts rename to apps/web/src/api-clients/identity/project-group/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/identity/project-group/api-verbs/remove-users.ts b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/remove-users.ts similarity index 100% rename from apps/web/src/schema/identity/project-group/api-verbs/remove-users.ts rename to apps/web/src/api-clients/identity/project-group/schema/api-verbs/remove-users.ts diff --git a/apps/web/src/schema/identity/project-group/api-verbs/update.ts b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/project-group/api-verbs/update.ts rename to apps/web/src/api-clients/identity/project-group/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/project-group/model.ts b/apps/web/src/api-clients/identity/project-group/schema/model.ts similarity index 100% rename from apps/web/src/schema/identity/project-group/model.ts rename to apps/web/src/api-clients/identity/project-group/schema/model.ts diff --git a/apps/web/src/api-clients/identity/project/composables/use-project-api.ts b/apps/web/src/api-clients/identity/project/composables/use-project-api.ts new file mode 100644 index 0000000000..561f6a805e --- /dev/null +++ b/apps/web/src/api-clients/identity/project/composables/use-project-api.ts @@ -0,0 +1,38 @@ +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 { ProjectAddUsersParameters } from '@/api-clients/identity/project/schema/api-verbs/add-users'; +import type { ProjectChangeProjectGroupParameters } from '@/api-clients/identity/project/schema/api-verbs/change-project-group'; +import type { ProjectCreateParameters } from '@/api-clients/identity/project/schema/api-verbs/create'; +import type { ProjectDeleteParameters } from '@/api-clients/identity/project/schema/api-verbs/delete'; +import type { ProjectGetParameters } from '@/api-clients/identity/project/schema/api-verbs/get'; +import type { ProjectListParameters } from '@/api-clients/identity/project/schema/api-verbs/list'; +import type { ProjectRemoveUsersParameters } from '@/api-clients/identity/project/schema/api-verbs/remove-users'; +import type { ProjectUpdateParameters } from '@/api-clients/identity/project/schema/api-verbs/udpate'; +import type { ProjectUpdateProjectTypeParameters } from '@/api-clients/identity/project/schema/api-verbs/update-project-type'; +import type { ProjectModel } from '@/api-clients/identity/project/schema/model'; + + +export const useProjectApi = () => { + const projectQueryKey = useAPIQueryKey('identity', 'project', 'get'); + const projectListQueryKey = useAPIQueryKey('identity', 'project', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.project.create, + update: SpaceConnector.clientV2.identity.project.update, + delete: SpaceConnector.clientV2.identity.project.delete, + get: SpaceConnector.clientV2.identity.project.get, + list: SpaceConnector.clientV2.identity.project.list>, + addUsers: SpaceConnector.clientV2.identity.project.addUsers, + removeUsers: SpaceConnector.clientV2.identity.project.removeUsers, + changeProjectGroup: SpaceConnector.clientV2.identity.project.changeProjectGroup, + updateProjectType: SpaceConnector.clientV2.identity.project.updateProjectType, + }; + + return { + projectQueryKey, + projectListQueryKey, + projectAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/project/api-verbs/add-users.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/add-users.ts similarity index 100% rename from apps/web/src/schema/identity/project/api-verbs/add-users.ts rename to apps/web/src/api-clients/identity/project/schema/api-verbs/add-users.ts diff --git a/apps/web/src/schema/identity/project/api-verbs/change-project-group.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/change-project-group.ts similarity index 100% rename from apps/web/src/schema/identity/project/api-verbs/change-project-group.ts rename to apps/web/src/api-clients/identity/project/schema/api-verbs/change-project-group.ts diff --git a/apps/web/src/schema/identity/project/api-verbs/create.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/create.ts similarity index 71% rename from apps/web/src/schema/identity/project/api-verbs/create.ts rename to apps/web/src/api-clients/identity/project/schema/api-verbs/create.ts index 86bf6ba911..1e84ed4d63 100644 --- a/apps/web/src/schema/identity/project/api-verbs/create.ts +++ b/apps/web/src/api-clients/identity/project/schema/api-verbs/create.ts @@ -1,4 +1,4 @@ -import type { ProjectType } from '@/schema/identity/project/type'; +import type { ProjectType } from '@/api-clients/identity/project/schema/type'; import type { Tag } from '@/common/modules/tags/type'; diff --git a/apps/web/src/schema/identity/project/api-verbs/delete.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/project/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/project/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/project/api-verbs/get.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/project/api-verbs/get.ts rename to apps/web/src/api-clients/identity/project/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/project/api-verbs/list.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/list.ts similarity index 81% rename from apps/web/src/schema/identity/project/api-verbs/list.ts rename to apps/web/src/api-clients/identity/project/schema/api-verbs/list.ts index 8d79606216..7effc91d1f 100644 --- a/apps/web/src/schema/identity/project/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/project/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { ProjectType } from '@/schema/identity/project/type'; +import type { ProjectType } from '@/api-clients/identity/project/schema/type'; export interface ProjectListParameters { diff --git a/apps/web/src/schema/identity/project/api-verbs/remove-users.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/remove-users.ts similarity index 100% rename from apps/web/src/schema/identity/project/api-verbs/remove-users.ts rename to apps/web/src/api-clients/identity/project/schema/api-verbs/remove-users.ts diff --git a/apps/web/src/schema/identity/project/api-verbs/udpate.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/udpate.ts similarity index 100% rename from apps/web/src/schema/identity/project/api-verbs/udpate.ts rename to apps/web/src/api-clients/identity/project/schema/api-verbs/udpate.ts diff --git a/apps/web/src/schema/identity/project/api-verbs/update-project-type.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/update-project-type.ts similarity index 58% rename from apps/web/src/schema/identity/project/api-verbs/update-project-type.ts rename to apps/web/src/api-clients/identity/project/schema/api-verbs/update-project-type.ts index f7f12f38ad..ed91e8606f 100644 --- a/apps/web/src/schema/identity/project/api-verbs/update-project-type.ts +++ b/apps/web/src/api-clients/identity/project/schema/api-verbs/update-project-type.ts @@ -1,4 +1,4 @@ -import type { ProjectType } from '@/schema/identity/project/type'; +import type { ProjectType } from '@/api-clients/identity/project/schema/type'; export interface ProjectUpdateProjectTypeParameters { project_id: string; diff --git a/apps/web/src/schema/identity/project/model.ts b/apps/web/src/api-clients/identity/project/schema/model.ts similarity index 84% rename from apps/web/src/schema/identity/project/model.ts rename to apps/web/src/api-clients/identity/project/schema/model.ts index ed34282216..06256581a6 100644 --- a/apps/web/src/schema/identity/project/model.ts +++ b/apps/web/src/api-clients/identity/project/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ProjectType } from '@/schema/identity/project/type'; +import type { ProjectType } from '@/api-clients/identity/project/schema/type'; export interface ProjectModel { diff --git a/apps/web/src/schema/identity/project/type.ts b/apps/web/src/api-clients/identity/project/schema/type.ts similarity index 100% rename from apps/web/src/schema/identity/project/type.ts rename to apps/web/src/api-clients/identity/project/schema/type.ts diff --git a/apps/web/src/api-clients/identity/provider/composables/use-provider-api.ts b/apps/web/src/api-clients/identity/provider/composables/use-provider-api.ts new file mode 100644 index 0000000000..d7bd5a98b9 --- /dev/null +++ b/apps/web/src/api-clients/identity/provider/composables/use-provider-api.ts @@ -0,0 +1,32 @@ +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 { ProviderCreateParameters } from '@/api-clients/identity/provider/schema/api-verbs/create'; +import type { ProviderDeleteParameters } from '@/api-clients/identity/provider/schema/api-verbs/delete'; +import type { ProviderGetParameters } from '@/api-clients/identity/provider/schema/api-verbs/get'; +import type { ProviderListParameters } from '@/api-clients/identity/provider/schema/api-verbs/list'; +import type { ProviderStatParameters } from '@/api-clients/identity/provider/schema/api-verbs/stat'; +import type { ProviderUpdateParameters } from '@/api-clients/identity/provider/schema/api-verbs/update'; +import type { ProviderModel } from '@/api-clients/identity/provider/schema/model'; + + +export const useProviderApi = () => { + const providerQueryKey = useAPIQueryKey('identity', 'provider', 'get'); + const providerListQueryKey = useAPIQueryKey('identity', 'provider', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.provider.create, + update: SpaceConnector.clientV2.identity.provider.update, + delete: SpaceConnector.clientV2.identity.provider.delete, + get: SpaceConnector.clientV2.identity.provider.get, + list: SpaceConnector.clientV2.identity.provider.list>, + stat: SpaceConnector.clientV2.identity.provider.stat, + }; + + return { + providerQueryKey, + providerListQueryKey, + providerAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/provider/api-verbs/create.ts b/apps/web/src/api-clients/identity/provider/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/provider/api-verbs/create.ts rename to apps/web/src/api-clients/identity/provider/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/provider/api-verbs/delete.ts b/apps/web/src/api-clients/identity/provider/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/provider/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/provider/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/provider/api-verbs/get.ts b/apps/web/src/api-clients/identity/provider/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/provider/api-verbs/get.ts rename to apps/web/src/api-clients/identity/provider/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/provider/api-verbs/list.ts b/apps/web/src/api-clients/identity/provider/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/identity/provider/api-verbs/list.ts rename to apps/web/src/api-clients/identity/provider/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/identity/provider/api-verbs/stat.ts b/apps/web/src/api-clients/identity/provider/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/identity/provider/api-verbs/stat.ts rename to apps/web/src/api-clients/identity/provider/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/identity/provider/api-verbs/update.ts b/apps/web/src/api-clients/identity/provider/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/provider/api-verbs/update.ts rename to apps/web/src/api-clients/identity/provider/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/provider/model.ts b/apps/web/src/api-clients/identity/provider/schema/model.ts similarity index 100% rename from apps/web/src/schema/identity/provider/model.ts rename to apps/web/src/api-clients/identity/provider/schema/model.ts diff --git a/apps/web/src/api-clients/identity/role-binding/composables/use-role-binding-api.ts b/apps/web/src/api-clients/identity/role-binding/composables/use-role-binding-api.ts new file mode 100644 index 0000000000..037091c426 --- /dev/null +++ b/apps/web/src/api-clients/identity/role-binding/composables/use-role-binding-api.ts @@ -0,0 +1,27 @@ +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 { RoleCreateParameters } from '@/api-clients/identity/role-binding/schema/api-verbs/create'; +import type { RoleBindingDeleteParameters } from '@/api-clients/identity/role-binding/schema/api-verbs/delete'; +import type { RoleBindingListParameters } from '@/api-clients/identity/role-binding/schema/api-verbs/list'; +import type { RoleBindingUpdateRoleParameters } from '@/api-clients/identity/role-binding/schema/api-verbs/update-role'; +import type { RoleBindingModel } from '@/api-clients/identity/role-binding/schema/model'; + +export const useRoleBindingApi = () => { + const roleBindingQueryKey = useAPIQueryKey('identity', 'role-binding', 'get'); + const roleBindingListQueryKey = useAPIQueryKey('identity', 'role-binding', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.roleBinding.create, + delete: SpaceConnector.clientV2.identity.roleBinding.delete, + list: SpaceConnector.clientV2.identity.roleBinding.list>, + updateRole: SpaceConnector.clientV2.identity.roleBinding.updateRole, + }; + + return { + roleBindingQueryKey, + roleBindingListQueryKey, + roleBindingAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/role-binding/api-verbs/create.ts b/apps/web/src/api-clients/identity/role-binding/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/role-binding/api-verbs/create.ts rename to apps/web/src/api-clients/identity/role-binding/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/role-binding/api-verbs/delete.ts b/apps/web/src/api-clients/identity/role-binding/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/role-binding/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/role-binding/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/role-binding/api-verbs/list.ts b/apps/web/src/api-clients/identity/role-binding/schema/api-verbs/list.ts similarity index 72% rename from apps/web/src/schema/identity/role-binding/api-verbs/list.ts rename to apps/web/src/api-clients/identity/role-binding/schema/api-verbs/list.ts index c4791ea82c..8f3ea931a2 100644 --- a/apps/web/src/schema/identity/role-binding/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/role-binding/schema/api-verbs/list.ts @@ -1,8 +1,8 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; -import type { RoleBindingModel } from '@/schema/identity/role-binding/model'; -import type { RoleType } from '@/schema/identity/role/type'; +import type { RoleBindingModel } from '@/api-clients/identity/role-binding/schema/model'; +import type { RoleType } from '@/api-clients/identity/role/type'; export interface RoleBindingListParameters { query?: Query; diff --git a/apps/web/src/schema/identity/role-binding/api-verbs/update-role.ts b/apps/web/src/api-clients/identity/role-binding/schema/api-verbs/update-role.ts similarity index 100% rename from apps/web/src/schema/identity/role-binding/api-verbs/update-role.ts rename to apps/web/src/api-clients/identity/role-binding/schema/api-verbs/update-role.ts diff --git a/apps/web/src/schema/identity/role-binding/model.ts b/apps/web/src/api-clients/identity/role-binding/schema/model.ts similarity index 85% rename from apps/web/src/schema/identity/role-binding/model.ts rename to apps/web/src/api-clients/identity/role-binding/schema/model.ts index e9ad42dd89..d6b7746b92 100644 --- a/apps/web/src/schema/identity/role-binding/model.ts +++ b/apps/web/src/api-clients/identity/role-binding/schema/model.ts @@ -1,5 +1,5 @@ import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { RoleType } from '@/schema/identity/role/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; export interface RoleBindingModel { diff --git a/apps/web/src/api-clients/identity/role/composables/use-role-api.ts b/apps/web/src/api-clients/identity/role/composables/use-role-api.ts new file mode 100644 index 0000000000..c6d7986873 --- /dev/null +++ b/apps/web/src/api-clients/identity/role/composables/use-role-api.ts @@ -0,0 +1,35 @@ +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 { RoleCreateParameters } from '@/api-clients/identity/role/schema/api-verbs/create'; +import type { RoleDeleteParameters } from '@/api-clients/identity/role/schema/api-verbs/delete'; +import type { RoleDisableParameters } from '@/api-clients/identity/role/schema/api-verbs/disable'; +import type { RoleEnableParameters } from '@/api-clients/identity/role/schema/api-verbs/enable'; +import type { RoleGetParameters } from '@/api-clients/identity/role/schema/api-verbs/get'; +import type { RoleListParameters } from '@/api-clients/identity/role/schema/api-verbs/list'; +import type { RoleListBasicRoleParameters } from '@/api-clients/identity/role/schema/api-verbs/list-basic-role'; +import type { RoleUpdateParameters } from '@/api-clients/identity/role/schema/api-verbs/update'; +import type { BasicRoleModel, RoleModel } from '@/api-clients/identity/role/schema/model'; + +export const useRoleApi = () => { + const roleQueryKey = useAPIQueryKey('identity', 'role', 'get'); + const roleListQueryKey = useAPIQueryKey('identity', 'role', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.role.create, + update: SpaceConnector.clientV2.identity.role.update, + delete: SpaceConnector.clientV2.identity.role.delete, + get: SpaceConnector.clientV2.identity.role.get, + list: SpaceConnector.clientV2.identity.role.list>, + enable: SpaceConnector.clientV2.identity.role.enable, + disable: SpaceConnector.clientV2.identity.role.disable, + listBasicRole: SpaceConnector.clientV2.identity.role.listBasicRole>, + }; + + return { + roleQueryKey, + roleListQueryKey, + roleAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/role/constant.ts b/apps/web/src/api-clients/identity/role/constant.ts similarity index 100% rename from apps/web/src/schema/identity/role/constant.ts rename to apps/web/src/api-clients/identity/role/constant.ts diff --git a/apps/web/src/schema/identity/role/api-verbs/create.ts b/apps/web/src/api-clients/identity/role/schema/api-verbs/create.ts similarity index 77% rename from apps/web/src/schema/identity/role/api-verbs/create.ts rename to apps/web/src/api-clients/identity/role/schema/api-verbs/create.ts index 482ba7792a..0d61c73576 100644 --- a/apps/web/src/schema/identity/role/api-verbs/create.ts +++ b/apps/web/src/api-clients/identity/role/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { RoleType } from '@/schema/identity/role/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; export interface RoleCreateParameters { name: string; diff --git a/apps/web/src/schema/identity/role/api-verbs/delete.ts b/apps/web/src/api-clients/identity/role/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/role/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/role/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/role/api-verbs/disable.ts b/apps/web/src/api-clients/identity/role/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/identity/role/api-verbs/disable.ts rename to apps/web/src/api-clients/identity/role/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/identity/role/api-verbs/enable.ts b/apps/web/src/api-clients/identity/role/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/identity/role/api-verbs/enable.ts rename to apps/web/src/api-clients/identity/role/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/identity/role/api-verbs/get.ts b/apps/web/src/api-clients/identity/role/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/role/api-verbs/get.ts rename to apps/web/src/api-clients/identity/role/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/role/api-verbs/list-basic-role.ts b/apps/web/src/api-clients/identity/role/schema/api-verbs/list-basic-role.ts similarity index 76% rename from apps/web/src/schema/identity/role/api-verbs/list-basic-role.ts rename to apps/web/src/api-clients/identity/role/schema/api-verbs/list-basic-role.ts index 07e8b01763..448a18b1f3 100644 --- a/apps/web/src/schema/identity/role/api-verbs/list-basic-role.ts +++ b/apps/web/src/api-clients/identity/role/schema/api-verbs/list-basic-role.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { RoleType } from '@/schema/identity/role/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; export interface RoleListBasicRoleParameters { query?: Query; diff --git a/apps/web/src/schema/identity/role/api-verbs/list.ts b/apps/web/src/api-clients/identity/role/schema/api-verbs/list.ts similarity index 75% rename from apps/web/src/schema/identity/role/api-verbs/list.ts rename to apps/web/src/api-clients/identity/role/schema/api-verbs/list.ts index 3ebbe010c8..816ccd2e1a 100644 --- a/apps/web/src/schema/identity/role/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/role/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { RoleType } from '@/schema/identity/role/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; export interface RoleListParameters { query?: Query; diff --git a/apps/web/src/schema/identity/role/api-verbs/update.ts b/apps/web/src/api-clients/identity/role/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/role/api-verbs/update.ts rename to apps/web/src/api-clients/identity/role/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/role/model.ts b/apps/web/src/api-clients/identity/role/schema/model.ts similarity index 86% rename from apps/web/src/schema/identity/role/model.ts rename to apps/web/src/api-clients/identity/role/schema/model.ts index 30ad12fe4b..1458ec97cc 100644 --- a/apps/web/src/schema/identity/role/model.ts +++ b/apps/web/src/api-clients/identity/role/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { RoleType, RoleState } from '@/schema/identity/role/type'; +import type { RoleType, RoleState } from '@/api-clients/identity/role/type'; export interface RoleModel { diff --git a/apps/web/src/schema/identity/role/type.ts b/apps/web/src/api-clients/identity/role/type.ts similarity index 61% rename from apps/web/src/schema/identity/role/type.ts rename to apps/web/src/api-clients/identity/role/type.ts index de436e4e88..2767201c47 100644 --- a/apps/web/src/schema/identity/role/type.ts +++ b/apps/web/src/api-clients/identity/role/type.ts @@ -1,4 +1,4 @@ -import type { ROLE_TYPE, ROLE_STATE } from '@/schema/identity/role/constant'; +import type { ROLE_TYPE, ROLE_STATE } from '@/api-clients/identity/role/constant'; export type RoleType = typeof ROLE_TYPE[keyof typeof ROLE_TYPE]; diff --git a/apps/web/src/api-clients/identity/schema/composables/use-schema-api.ts b/apps/web/src/api-clients/identity/schema/composables/use-schema-api.ts new file mode 100644 index 0000000000..a8733654a0 --- /dev/null +++ b/apps/web/src/api-clients/identity/schema/composables/use-schema-api.ts @@ -0,0 +1,31 @@ +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 { SchemaCreateParameters } from '@/api-clients/identity/schema/schema/api-verbs/create'; +import type { SchemaDeleteParameters } from '@/api-clients/identity/schema/schema/api-verbs/delete'; +import type { SchemaGetParameters } from '@/api-clients/identity/schema/schema/api-verbs/get'; +import type { SchemaListParameters } from '@/api-clients/identity/schema/schema/api-verbs/list'; +import type { SchemaStatParameters } from '@/api-clients/identity/schema/schema/api-verbs/stat'; +import type { SchemaUpdateParameters } from '@/api-clients/identity/schema/schema/api-verbs/update'; +import type { SchemaModel } from '@/api-clients/identity/schema/schema/model'; + +export const useSchemaApi = () => { + const schemaQueryKey = useAPIQueryKey('identity', 'schema', 'get'); + const schemaListQueryKey = useAPIQueryKey('identity', 'schema', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.schema.create, + update: SpaceConnector.clientV2.identity.schema.update, + delete: SpaceConnector.clientV2.identity.schema.delete, + get: SpaceConnector.clientV2.identity.schema.get, + list: SpaceConnector.clientV2.identity.schema.list>, + stat: SpaceConnector.clientV2.identity.schema.stat, + }; + + return { + schemaQueryKey, + schemaListQueryKey, + schemaAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/schema/api-verbs/create.ts b/apps/web/src/api-clients/identity/schema/schema/api-verbs/create.ts similarity index 84% rename from apps/web/src/schema/identity/schema/api-verbs/create.ts rename to apps/web/src/api-clients/identity/schema/schema/api-verbs/create.ts index 2ce82a285c..67e15549c9 100644 --- a/apps/web/src/schema/identity/schema/api-verbs/create.ts +++ b/apps/web/src/api-clients/identity/schema/schema/api-verbs/create.ts @@ -1,7 +1,7 @@ import type { JsonSchema } from '@cloudforet/mirinae/types/controls/forms/json-schema-form/type'; import type { Tags } from '@/api-clients/_common/schema/model'; -import type { SchemaType } from '@/schema/identity/schema/type'; +import type { SchemaType } from '@/api-clients/identity/schema/schema/type'; export interface SchemaCreateParameters { schema_id: string; diff --git a/apps/web/src/schema/identity/schema/api-verbs/delete.ts b/apps/web/src/api-clients/identity/schema/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/schema/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/schema/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/schema/api-verbs/get.ts b/apps/web/src/api-clients/identity/schema/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/schema/api-verbs/get.ts rename to apps/web/src/api-clients/identity/schema/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/schema/api-verbs/list.ts b/apps/web/src/api-clients/identity/schema/schema/api-verbs/list.ts similarity index 78% rename from apps/web/src/schema/identity/schema/api-verbs/list.ts rename to apps/web/src/api-clients/identity/schema/schema/api-verbs/list.ts index ba7db0844a..349ed20d72 100644 --- a/apps/web/src/schema/identity/schema/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/schema/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { SchemaType } from '@/schema/identity/schema/type'; +import type { SchemaType } from '@/api-clients/identity/schema/schema/type'; export interface SchemaListParameters { query?: Query; diff --git a/apps/web/src/schema/identity/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/schema/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/identity/schema/api-verbs/stat.ts rename to apps/web/src/api-clients/identity/schema/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/identity/schema/api-verbs/update.ts b/apps/web/src/api-clients/identity/schema/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/schema/api-verbs/update.ts rename to apps/web/src/api-clients/identity/schema/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/schema/model.ts b/apps/web/src/api-clients/identity/schema/schema/model.ts similarity index 88% rename from apps/web/src/schema/identity/schema/model.ts rename to apps/web/src/api-clients/identity/schema/schema/model.ts index fcf0e51e73..b6612336be 100644 --- a/apps/web/src/schema/identity/schema/model.ts +++ b/apps/web/src/api-clients/identity/schema/schema/model.ts @@ -1,7 +1,7 @@ import type { JsonSchema } from '@cloudforet/mirinae/types/controls/forms/json-schema-form/type'; import type { Tags } from '@/api-clients/_common/schema/model'; -import type { SchemaType } from '@/schema/identity/schema/type'; +import type { SchemaType } from '@/api-clients/identity/schema/schema/type'; export interface SchemaModel { schema_id: string; diff --git a/apps/web/src/schema/identity/schema/type.ts b/apps/web/src/api-clients/identity/schema/schema/type.ts similarity index 100% rename from apps/web/src/schema/identity/schema/type.ts rename to apps/web/src/api-clients/identity/schema/schema/type.ts diff --git a/apps/web/src/api-clients/identity/service-account/composables/use-service-account-api.ts b/apps/web/src/api-clients/identity/service-account/composables/use-service-account-api.ts new file mode 100644 index 0000000000..771f6dac2f --- /dev/null +++ b/apps/web/src/api-clients/identity/service-account/composables/use-service-account-api.ts @@ -0,0 +1,36 @@ +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 { ServiceAccountCreateParameters } from '@/api-clients/identity/service-account/schema/api-verbs/create'; +import type { ServiceAccountDeleteParameters } from '@/api-clients/identity/service-account/schema/api-verbs/detele'; +import type { ServiceAccountDeleteSecretDataParameters } from '@/api-clients/identity/service-account/schema/api-verbs/detele-secret-data'; +import type { ServiceAccountGetParameters } from '@/api-clients/identity/service-account/schema/api-verbs/get'; +import type { ServiceAccountListParameters } from '@/api-clients/identity/service-account/schema/api-verbs/list'; +import type { ServiceAccountStatParameters } from '@/api-clients/identity/service-account/schema/api-verbs/stat'; +import type { ServiceAccountUpdateParameters } from '@/api-clients/identity/service-account/schema/api-verbs/update'; +import type { ServiceAccountUpdateSecretDataParameters } from '@/api-clients/identity/service-account/schema/api-verbs/update-secret-data'; +import type { ServiceAccountModel } from '@/api-clients/identity/service-account/schema/model'; + + +export const useServiceAccountApi = () => { + const serviceAccountQueryKey = useAPIQueryKey('identity', 'service-account', 'get'); + const serviceAccountListQueryKey = useAPIQueryKey('identity', 'service-account', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.serviceAccount.create, + update: SpaceConnector.clientV2.identity.serviceAccount.update, + delete: SpaceConnector.clientV2.identity.serviceAccount.delete, + get: SpaceConnector.clientV2.identity.serviceAccount.get, + list: SpaceConnector.clientV2.identity.serviceAccount.list>, + stat: SpaceConnector.clientV2.identity.serviceAccount.stat, + updateSecretData: SpaceConnector.clientV2.identity.serviceAccount.updateSecretData, + deleteSecretData: SpaceConnector.clientV2.identity.serviceAccount.deleteSecretData, + }; + + return { + serviceAccountQueryKey, + serviceAccountListQueryKey, + serviceAccountAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/service-account/api-verbs/create.ts b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/service-account/api-verbs/create.ts rename to apps/web/src/api-clients/identity/service-account/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/service-account/api-verbs/detele-secret-data.ts b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/detele-secret-data.ts similarity index 100% rename from apps/web/src/schema/identity/service-account/api-verbs/detele-secret-data.ts rename to apps/web/src/api-clients/identity/service-account/schema/api-verbs/detele-secret-data.ts diff --git a/apps/web/src/schema/identity/service-account/api-verbs/detele.ts b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/detele.ts similarity index 100% rename from apps/web/src/schema/identity/service-account/api-verbs/detele.ts rename to apps/web/src/api-clients/identity/service-account/schema/api-verbs/detele.ts diff --git a/apps/web/src/schema/identity/service-account/api-verbs/get.ts b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/service-account/api-verbs/get.ts rename to apps/web/src/api-clients/identity/service-account/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/service-account/api-verbs/list.ts b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/identity/service-account/api-verbs/list.ts rename to apps/web/src/api-clients/identity/service-account/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/identity/service-account/api-verbs/stat.ts b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/identity/service-account/api-verbs/stat.ts rename to apps/web/src/api-clients/identity/service-account/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/identity/service-account/api-verbs/update-secret-data.ts b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/update-secret-data.ts similarity index 100% rename from apps/web/src/schema/identity/service-account/api-verbs/update-secret-data.ts rename to apps/web/src/api-clients/identity/service-account/schema/api-verbs/update-secret-data.ts diff --git a/apps/web/src/schema/identity/service-account/api-verbs/update.ts b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/service-account/api-verbs/update.ts rename to apps/web/src/api-clients/identity/service-account/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/service-account/constant.ts b/apps/web/src/api-clients/identity/service-account/schema/constant.ts similarity index 100% rename from apps/web/src/schema/identity/service-account/constant.ts rename to apps/web/src/api-clients/identity/service-account/schema/constant.ts diff --git a/apps/web/src/schema/identity/service-account/model.ts b/apps/web/src/api-clients/identity/service-account/schema/model.ts similarity index 87% rename from apps/web/src/schema/identity/service-account/model.ts rename to apps/web/src/api-clients/identity/service-account/schema/model.ts index 085a11c5e0..4beb378887 100644 --- a/apps/web/src/schema/identity/service-account/model.ts +++ b/apps/web/src/api-clients/identity/service-account/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ServiceAccountType } from '@/schema/identity/service-account/type'; +import type { ServiceAccountType } from '@/api-clients/identity/service-account/schema/type'; export interface ServiceAccountModel { service_account_id: string; diff --git a/apps/web/src/schema/identity/service-account/type.ts b/apps/web/src/api-clients/identity/service-account/schema/type.ts similarity index 76% rename from apps/web/src/schema/identity/service-account/type.ts rename to apps/web/src/api-clients/identity/service-account/schema/type.ts index f67e8e5e1c..3eb033e344 100644 --- a/apps/web/src/schema/identity/service-account/type.ts +++ b/apps/web/src/api-clients/identity/service-account/schema/type.ts @@ -1,4 +1,4 @@ -import type { ACCOUNT_TYPE, SERVICE_ACCOUNT_STATE } from '@/schema/identity/service-account/constant'; +import type { ACCOUNT_TYPE, SERVICE_ACCOUNT_STATE } from '@/api-clients/identity/service-account/schema/constant'; export type AccountType = typeof ACCOUNT_TYPE[keyof typeof ACCOUNT_TYPE]; export type ServiceAccountType = typeof SERVICE_ACCOUNT_STATE[keyof typeof SERVICE_ACCOUNT_STATE]; diff --git a/apps/web/src/api-clients/identity/token/composables/use-token-api.ts b/apps/web/src/api-clients/identity/token/composables/use-token-api.ts new file mode 100644 index 0000000000..e447a9000f --- /dev/null +++ b/apps/web/src/api-clients/identity/token/composables/use-token-api.ts @@ -0,0 +1,23 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key'; +import type { TokenGrantParameters } from '@/api-clients/identity/token/schema/api-verbs/grant'; +import type { TokenIssueParameters } from '@/api-clients/identity/token/schema/api-verbs/issue'; +import type { TokenIssueModel, TokenGrantModel } from '@/api-clients/identity/token/schema/model'; + + +export const useTokenApi = () => { + const tokenQueryKey = useAPIQueryKey('identity', 'token', 'issue'); + const tokenGrantQueryKey = useAPIQueryKey('identity', 'token', 'grant'); + + const actions = { + issue: SpaceConnector.clientV2.identity.token.issue, + grant: SpaceConnector.clientV2.identity.token.grant, + }; + + return { + tokenQueryKey, + tokenGrantQueryKey, + tokenAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/token/api-verbs/grant.ts b/apps/web/src/api-clients/identity/token/schema/api-verbs/grant.ts similarity index 64% rename from apps/web/src/schema/identity/token/api-verbs/grant.ts rename to apps/web/src/api-clients/identity/token/schema/api-verbs/grant.ts index 237952c80a..411eee22ef 100644 --- a/apps/web/src/schema/identity/token/api-verbs/grant.ts +++ b/apps/web/src/api-clients/identity/token/schema/api-verbs/grant.ts @@ -1,4 +1,4 @@ -import type { GrantScope, GrantType } from '@/schema/identity/token/type'; +import type { GrantScope, GrantType } from '@/api-clients/identity/token/schema/type'; export interface TokenGrantParameters { grant_type: GrantType; diff --git a/apps/web/src/schema/identity/token/api-verbs/issue.ts b/apps/web/src/api-clients/identity/token/schema/api-verbs/issue.ts similarity index 71% rename from apps/web/src/schema/identity/token/api-verbs/issue.ts rename to apps/web/src/api-clients/identity/token/schema/api-verbs/issue.ts index 2f2b1b1f20..d427d81492 100644 --- a/apps/web/src/schema/identity/token/api-verbs/issue.ts +++ b/apps/web/src/api-clients/identity/token/schema/api-verbs/issue.ts @@ -1,4 +1,4 @@ -import type { AuthType } from '@/schema/identity/user/type'; +import type { AuthType } from '@/api-clients/identity/user/schema/type'; export interface TokenIssueParameters { diff --git a/apps/web/src/schema/identity/token/model.ts b/apps/web/src/api-clients/identity/token/schema/model.ts similarity index 79% rename from apps/web/src/schema/identity/token/model.ts rename to apps/web/src/api-clients/identity/token/schema/model.ts index 3134eb2670..fe51819595 100644 --- a/apps/web/src/schema/identity/token/model.ts +++ b/apps/web/src/api-clients/identity/token/schema/model.ts @@ -1,4 +1,4 @@ -import type { RoleType } from '@/schema/identity/role/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; export interface TokenIssueModel { diff --git a/apps/web/src/schema/identity/token/type.ts b/apps/web/src/api-clients/identity/token/schema/type.ts similarity index 100% rename from apps/web/src/schema/identity/token/type.ts rename to apps/web/src/api-clients/identity/token/schema/type.ts diff --git a/apps/web/src/api-clients/identity/trusted-account/composables/use-trusted-account-api.ts b/apps/web/src/api-clients/identity/trusted-account/composables/use-trusted-account-api.ts new file mode 100644 index 0000000000..63a1359fa8 --- /dev/null +++ b/apps/web/src/api-clients/identity/trusted-account/composables/use-trusted-account-api.ts @@ -0,0 +1,34 @@ +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 { TrustedAccountCreateParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/create'; +import type { TrustedAccountDeleteParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/detele'; +import type { TrustedAccountGetParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/get'; +import type { TrustedAccountListParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/list'; +import type { TrustedAccountStatParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/stat'; +import type { TrustedAccountUpdateParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/update'; +import type { TrustedAccountUpdateSecretDataParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/update-secret-data'; +import type { TrustedAccountModel } from '@/api-clients/identity/trusted-account/schema/model'; + + +export const useTrustedAccountApi = () => { + const trustedAccountQueryKey = useAPIQueryKey('identity', 'trusted-account', 'get'); + const trustedAccountListQueryKey = useAPIQueryKey('identity', 'trusted-account', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.trustedAccount.create, + update: SpaceConnector.clientV2.identity.trustedAccount.update, + delete: SpaceConnector.clientV2.identity.trustedAccount.delete, + get: SpaceConnector.clientV2.identity.trustedAccount.get, + list: SpaceConnector.clientV2.identity.trustedAccount.list>, + stat: SpaceConnector.clientV2.identity.trustedAccount.stat, + updateSecretData: SpaceConnector.clientV2.identity.trustedAccount.updateSecretData, + }; + + return { + trustedAccountQueryKey, + trustedAccountListQueryKey, + trustedAccountAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/trusted-account/api-verbs/create.ts b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/trusted-account/api-verbs/create.ts rename to apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/trusted-account/api-verbs/detele.ts b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/detele.ts similarity index 100% rename from apps/web/src/schema/identity/trusted-account/api-verbs/detele.ts rename to apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/detele.ts diff --git a/apps/web/src/schema/identity/trusted-account/api-verbs/get.ts b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/trusted-account/api-verbs/get.ts rename to apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/trusted-account/api-verbs/list.ts b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/identity/trusted-account/api-verbs/list.ts rename to apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/identity/trusted-account/api-verbs/stat.ts b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/identity/trusted-account/api-verbs/stat.ts rename to apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/identity/trusted-account/api-verbs/update-secret-data.ts b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/update-secret-data.ts similarity index 100% rename from apps/web/src/schema/identity/trusted-account/api-verbs/update-secret-data.ts rename to apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/update-secret-data.ts diff --git a/apps/web/src/schema/identity/trusted-account/api-verbs/update.ts b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/trusted-account/api-verbs/update.ts rename to apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/trusted-account/model.ts b/apps/web/src/api-clients/identity/trusted-account/schema/model.ts similarity index 100% rename from apps/web/src/schema/identity/trusted-account/model.ts rename to apps/web/src/api-clients/identity/trusted-account/schema/model.ts diff --git a/apps/web/src/api-clients/identity/user-group/composables/use-user-group-api.ts b/apps/web/src/api-clients/identity/user-group/composables/use-user-group-api.ts new file mode 100644 index 0000000000..f3f7d590c3 --- /dev/null +++ b/apps/web/src/api-clients/identity/user-group/composables/use-user-group-api.ts @@ -0,0 +1,34 @@ +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 { UserGroupAddUsersParameters } from '@/api-clients/identity/user-group/schema/api-verbs/add-users'; +import type { UserGroupCreateParameters } from '@/api-clients/identity/user-group/schema/api-verbs/create'; +import type { UserGroupDeleteUserGroupParameters } from '@/api-clients/identity/user-group/schema/api-verbs/delete'; +import type { UserGroupGetParameters } from '@/api-clients/identity/user-group/schema/api-verbs/get'; +import type { UserGroupListParameters } from '@/api-clients/identity/user-group/schema/api-verbs/list'; +import type { UserGroupRemoveUsersParameters } from '@/api-clients/identity/user-group/schema/api-verbs/remove-users'; +import type { UserGroupUpdateParameters } from '@/api-clients/identity/user-group/schema/api-verbs/update'; +import type { UserGroupModel } from '@/api-clients/identity/user-group/schema/model'; + + +export const useUserGroupApi = () => { + const userGroupQueryKey = useAPIQueryKey('identity', 'user-group', 'get'); + const userGroupListQueryKey = useAPIQueryKey('identity', 'user-group', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.userGroup.create, + update: SpaceConnector.clientV2.identity.userGroup.update, + delete: SpaceConnector.clientV2.identity.userGroup.delete, + get: SpaceConnector.clientV2.identity.userGroup.get, + list: SpaceConnector.clientV2.identity.userGroup.list>, + addUsers: SpaceConnector.clientV2.identity.userGroup.addUsers, + removeUsers: SpaceConnector.clientV2.identity.userGroup.removeUsers, + }; + + return { + userGroupQueryKey, + userGroupListQueryKey, + userGroupAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/user-group/api-verbs/add-users.ts b/apps/web/src/api-clients/identity/user-group/schema/api-verbs/add-users.ts similarity index 100% rename from apps/web/src/schema/identity/user-group/api-verbs/add-users.ts rename to apps/web/src/api-clients/identity/user-group/schema/api-verbs/add-users.ts diff --git a/apps/web/src/schema/identity/user-group/api-verbs/create.ts b/apps/web/src/api-clients/identity/user-group/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/user-group/api-verbs/create.ts rename to apps/web/src/api-clients/identity/user-group/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/user-group/api-verbs/delete.ts b/apps/web/src/api-clients/identity/user-group/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/user-group/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/user-group/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/user-group/api-verbs/get.ts b/apps/web/src/api-clients/identity/user-group/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/user-group/api-verbs/get.ts rename to apps/web/src/api-clients/identity/user-group/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/user-group/api-verbs/list.ts b/apps/web/src/api-clients/identity/user-group/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/identity/user-group/api-verbs/list.ts rename to apps/web/src/api-clients/identity/user-group/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/identity/user-group/api-verbs/remove-users.ts b/apps/web/src/api-clients/identity/user-group/schema/api-verbs/remove-users.ts similarity index 100% rename from apps/web/src/schema/identity/user-group/api-verbs/remove-users.ts rename to apps/web/src/api-clients/identity/user-group/schema/api-verbs/remove-users.ts diff --git a/apps/web/src/schema/identity/user-group/api-verbs/update.ts b/apps/web/src/api-clients/identity/user-group/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/user-group/api-verbs/update.ts rename to apps/web/src/api-clients/identity/user-group/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/user-group/constants.ts b/apps/web/src/api-clients/identity/user-group/schema/constants.ts similarity index 100% rename from apps/web/src/schema/identity/user-group/constants.ts rename to apps/web/src/api-clients/identity/user-group/schema/constants.ts diff --git a/apps/web/src/schema/identity/user-group/model.ts b/apps/web/src/api-clients/identity/user-group/schema/model.ts similarity index 100% rename from apps/web/src/schema/identity/user-group/model.ts rename to apps/web/src/api-clients/identity/user-group/schema/model.ts diff --git a/apps/web/src/schema/identity/user-group/type.ts b/apps/web/src/api-clients/identity/user-group/schema/type.ts similarity index 54% rename from apps/web/src/schema/identity/user-group/type.ts rename to apps/web/src/api-clients/identity/user-group/schema/type.ts index 870b1fb99d..fbc693971b 100644 --- a/apps/web/src/schema/identity/user-group/type.ts +++ b/apps/web/src/api-clients/identity/user-group/schema/type.ts @@ -1,7 +1,7 @@ -import type { MEMBERS_TYPE } from '@/schema/identity/user-group/constants'; +import type { MEMBERS_TYPE } from '@/api-clients/identity/user-group/schema/constants'; import type { UserGroupModel, -} from '@/schema/identity/user-group/model'; +} from '@/api-clients/identity/user-group/schema/model'; export type UserGroupListItemType = Partial; diff --git a/apps/web/src/api-clients/identity/user-profile/composables/use-user-profile-api.ts b/apps/web/src/api-clients/identity/user-profile/composables/use-user-profile-api.ts new file mode 100644 index 0000000000..d2216672b9 --- /dev/null +++ b/apps/web/src/api-clients/identity/user-profile/composables/use-user-profile-api.ts @@ -0,0 +1,32 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key'; +import type { UserProfileConfirmEmailParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/confirm-email'; +import type { UserProfileConfirmMfaParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/confirm-mfa'; +import type { UserProfileEnableMfaParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/enable-mfa'; +import type { UserProfileGetWorkspacesParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/get-workspaces'; +import type { UserProfileResetPasswordParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/reset-password'; +import type { UserProfileUpdateParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/update'; +import type { UserProfileUpdatePasswordParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/update-password'; +import type { UserProfileVerifyEmailParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/verify-email'; + + +export const useUserProfileApi = () => { + const userProfileQueryKey = useAPIQueryKey('identity', 'user-profile', 'get'); + + const actions = { + update: SpaceConnector.clientV2.identity.userProfile.update, + updatePassword: SpaceConnector.clientV2.identity.userProfile.updatePassword, + resetPassword: SpaceConnector.clientV2.identity.userProfile.resetPassword, + verifyEmail: SpaceConnector.clientV2.identity.userProfile.verifyEmail, + confirmEmail: SpaceConnector.clientV2.identity.userProfile.confirmEmail, + enableMfa: SpaceConnector.clientV2.identity.userProfile.enableMfa, + confirmMfa: SpaceConnector.clientV2.identity.userProfile.confirmMfa, + getWorkspaces: SpaceConnector.clientV2.identity.userProfile.getWorkspaces, + }; + + return { + userProfileQueryKey, + userProfileAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/user-profile/api-verbs/confirm-email.ts b/apps/web/src/api-clients/identity/user-profile/schema/api-verbs/confirm-email.ts similarity index 100% rename from apps/web/src/schema/identity/user-profile/api-verbs/confirm-email.ts rename to apps/web/src/api-clients/identity/user-profile/schema/api-verbs/confirm-email.ts diff --git a/apps/web/src/schema/identity/user-profile/api-verbs/confirm-mfa.ts b/apps/web/src/api-clients/identity/user-profile/schema/api-verbs/confirm-mfa.ts similarity index 100% rename from apps/web/src/schema/identity/user-profile/api-verbs/confirm-mfa.ts rename to apps/web/src/api-clients/identity/user-profile/schema/api-verbs/confirm-mfa.ts diff --git a/apps/web/src/schema/identity/user-profile/api-verbs/enable-mfa.ts b/apps/web/src/api-clients/identity/user-profile/schema/api-verbs/enable-mfa.ts similarity index 57% rename from apps/web/src/schema/identity/user-profile/api-verbs/enable-mfa.ts rename to apps/web/src/api-clients/identity/user-profile/schema/api-verbs/enable-mfa.ts index 048e742750..5b35b1d484 100644 --- a/apps/web/src/schema/identity/user-profile/api-verbs/enable-mfa.ts +++ b/apps/web/src/api-clients/identity/user-profile/schema/api-verbs/enable-mfa.ts @@ -1,4 +1,4 @@ -import type { MultiFactorAuthType } from '@/schema/identity/user-profile/type'; +import type { MultiFactorAuthType } from '@/api-clients/identity/user-profile/schema/type'; export interface UserProfileEnableMfaParameters { mfa_type: MultiFactorAuthType; diff --git a/apps/web/src/schema/identity/user-profile/api-verbs/get-workspaces.ts b/apps/web/src/api-clients/identity/user-profile/schema/api-verbs/get-workspaces.ts similarity index 100% rename from apps/web/src/schema/identity/user-profile/api-verbs/get-workspaces.ts rename to apps/web/src/api-clients/identity/user-profile/schema/api-verbs/get-workspaces.ts diff --git a/apps/web/src/schema/identity/user-profile/api-verbs/reset-password.ts b/apps/web/src/api-clients/identity/user-profile/schema/api-verbs/reset-password.ts similarity index 100% rename from apps/web/src/schema/identity/user-profile/api-verbs/reset-password.ts rename to apps/web/src/api-clients/identity/user-profile/schema/api-verbs/reset-password.ts diff --git a/apps/web/src/schema/identity/user-profile/api-verbs/update-password.ts b/apps/web/src/api-clients/identity/user-profile/schema/api-verbs/update-password.ts similarity index 100% rename from apps/web/src/schema/identity/user-profile/api-verbs/update-password.ts rename to apps/web/src/api-clients/identity/user-profile/schema/api-verbs/update-password.ts diff --git a/apps/web/src/schema/identity/user-profile/api-verbs/update.ts b/apps/web/src/api-clients/identity/user-profile/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/user-profile/api-verbs/update.ts rename to apps/web/src/api-clients/identity/user-profile/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/user-profile/api-verbs/verify-email.ts b/apps/web/src/api-clients/identity/user-profile/schema/api-verbs/verify-email.ts similarity index 100% rename from apps/web/src/schema/identity/user-profile/api-verbs/verify-email.ts rename to apps/web/src/api-clients/identity/user-profile/schema/api-verbs/verify-email.ts diff --git a/apps/web/src/schema/identity/user-profile/constant.ts b/apps/web/src/api-clients/identity/user-profile/schema/constant.ts similarity index 100% rename from apps/web/src/schema/identity/user-profile/constant.ts rename to apps/web/src/api-clients/identity/user-profile/schema/constant.ts diff --git a/apps/web/src/schema/identity/user-profile/model.ts b/apps/web/src/api-clients/identity/user-profile/schema/model.ts similarity index 92% rename from apps/web/src/schema/identity/user-profile/model.ts rename to apps/web/src/api-clients/identity/user-profile/schema/model.ts index 9c529a0d52..06c4dcd366 100644 --- a/apps/web/src/schema/identity/user-profile/model.ts +++ b/apps/web/src/api-clients/identity/user-profile/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { UserState } from '@/schema/identity/user/type'; +import type { UserState } from '@/api-clients/identity/user/schema/type'; export interface MyWorkspaceModel { workspace_id: string; diff --git a/apps/web/src/schema/identity/user-profile/type.ts b/apps/web/src/api-clients/identity/user-profile/schema/type.ts similarity index 50% rename from apps/web/src/schema/identity/user-profile/type.ts rename to apps/web/src/api-clients/identity/user-profile/schema/type.ts index 8bede45743..1c6a813feb 100644 --- a/apps/web/src/schema/identity/user-profile/type.ts +++ b/apps/web/src/api-clients/identity/user-profile/schema/type.ts @@ -1,3 +1,3 @@ -import type { MULTI_FACTOR_AUTH_TYPE } from '@/schema/identity/user-profile/constant'; +import type { MULTI_FACTOR_AUTH_TYPE } from '@/api-clients/identity/user-profile/schema/constant'; export type MultiFactorAuthType = typeof MULTI_FACTOR_AUTH_TYPE[keyof typeof MULTI_FACTOR_AUTH_TYPE]; diff --git a/apps/web/src/api-clients/identity/user/composables/use-user-api.ts b/apps/web/src/api-clients/identity/user/composables/use-user-api.ts new file mode 100644 index 0000000000..cacbbbc1f0 --- /dev/null +++ b/apps/web/src/api-clients/identity/user/composables/use-user-api.ts @@ -0,0 +1,37 @@ +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 { UserCreateParameters } from '@/api-clients/identity/user/schema/api-verbs/create'; +import type { UserDeleteParameters } from '@/api-clients/identity/user/schema/api-verbs/delete'; +import type { UserDisableParameters } from '@/api-clients/identity/user/schema/api-verbs/disable'; +import type { UserDisableMfaParameters } from '@/api-clients/identity/user/schema/api-verbs/disable-mfa'; +import type { UserEnableParameters } from '@/api-clients/identity/user/schema/api-verbs/enable'; +import type { UserGetParameters } from '@/api-clients/identity/user/schema/api-verbs/get'; +import type { UserListParameters } from '@/api-clients/identity/user/schema/api-verbs/list'; +import type { UserUpdateParameters } from '@/api-clients/identity/user/schema/api-verbs/update'; +import type { UserVerifyEmailParameters } from '@/api-clients/identity/user/schema/api-verbs/verify-email'; +import type { UserModel } from '@/api-clients/identity/user/schema/model'; + +export const useUserApi = () => { + const userQueryKey = useAPIQueryKey('identity', 'user', 'get'); + const userListQueryKey = useAPIQueryKey('identity', 'user', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.user.create, + update: SpaceConnector.clientV2.identity.user.update, + delete: SpaceConnector.clientV2.identity.user.delete, + get: SpaceConnector.clientV2.identity.user.get, + list: SpaceConnector.clientV2.identity.user.list>, + enable: SpaceConnector.clientV2.identity.user.enable, + disable: SpaceConnector.clientV2.identity.user.disable, + disableMfa: SpaceConnector.clientV2.identity.user.disableMfa, + verifyEmail: SpaceConnector.clientV2.identity.user.verifyEmail, + }; + + return { + userQueryKey, + userListQueryKey, + userAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/user/api-verbs/create.ts b/apps/web/src/api-clients/identity/user/schema/api-verbs/create.ts similarity index 80% rename from apps/web/src/schema/identity/user/api-verbs/create.ts rename to apps/web/src/api-clients/identity/user/schema/api-verbs/create.ts index 79e4c416b7..7ad83faf97 100644 --- a/apps/web/src/schema/identity/user/api-verbs/create.ts +++ b/apps/web/src/api-clients/identity/user/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { AuthType } from '@/schema/identity/user/type'; +import type { AuthType } from '@/api-clients/identity/user/schema/type'; export interface UserCreateParameters { diff --git a/apps/web/src/schema/identity/user/api-verbs/delete.ts b/apps/web/src/api-clients/identity/user/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/user/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/user/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/user/api-verbs/disable-mfa.ts b/apps/web/src/api-clients/identity/user/schema/api-verbs/disable-mfa.ts similarity index 100% rename from apps/web/src/schema/identity/user/api-verbs/disable-mfa.ts rename to apps/web/src/api-clients/identity/user/schema/api-verbs/disable-mfa.ts diff --git a/apps/web/src/schema/identity/user/api-verbs/disable.ts b/apps/web/src/api-clients/identity/user/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/identity/user/api-verbs/disable.ts rename to apps/web/src/api-clients/identity/user/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/identity/user/api-verbs/enable.ts b/apps/web/src/api-clients/identity/user/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/identity/user/api-verbs/enable.ts rename to apps/web/src/api-clients/identity/user/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/identity/user/api-verbs/get.ts b/apps/web/src/api-clients/identity/user/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/user/api-verbs/get.ts rename to apps/web/src/api-clients/identity/user/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/user/api-verbs/list.ts b/apps/web/src/api-clients/identity/user/schema/api-verbs/list.ts similarity index 74% rename from apps/web/src/schema/identity/user/api-verbs/list.ts rename to apps/web/src/api-clients/identity/user/schema/api-verbs/list.ts index 97ff465aa6..1acca7bde0 100644 --- a/apps/web/src/schema/identity/user/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/user/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { AuthType, UserState } from '@/schema/identity/user/type'; +import type { AuthType, UserState } from '@/api-clients/identity/user/schema/type'; export interface UserListParameters { diff --git a/apps/web/src/schema/identity/user/api-verbs/update.ts b/apps/web/src/api-clients/identity/user/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/user/api-verbs/update.ts rename to apps/web/src/api-clients/identity/user/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/user/api-verbs/verify-email.ts b/apps/web/src/api-clients/identity/user/schema/api-verbs/verify-email.ts similarity index 100% rename from apps/web/src/schema/identity/user/api-verbs/verify-email.ts rename to apps/web/src/api-clients/identity/user/schema/api-verbs/verify-email.ts diff --git a/apps/web/src/schema/identity/user/constant.ts b/apps/web/src/api-clients/identity/user/schema/constant.ts similarity index 100% rename from apps/web/src/schema/identity/user/constant.ts rename to apps/web/src/api-clients/identity/user/schema/constant.ts diff --git a/apps/web/src/schema/identity/user/model.ts b/apps/web/src/api-clients/identity/user/schema/model.ts similarity index 81% rename from apps/web/src/schema/identity/user/model.ts rename to apps/web/src/api-clients/identity/user/schema/model.ts index aa9058324f..7edf82ba1d 100644 --- a/apps/web/src/schema/identity/user/model.ts +++ b/apps/web/src/api-clients/identity/user/schema/model.ts @@ -1,9 +1,9 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { RoleType } from '@/schema/identity/role/type'; -import type { MultiFactorAuthType } from '@/schema/identity/user-profile/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; +import type { MultiFactorAuthType } from '@/api-clients/identity/user-profile/schema/type'; import type { AuthType, UserState, UserMfaState, -} from '@/schema/identity/user/type'; +} from '@/api-clients/identity/user/schema/type'; export interface UserModel { user_id: string; diff --git a/apps/web/src/schema/identity/user/type.ts b/apps/web/src/api-clients/identity/user/schema/type.ts similarity index 100% rename from apps/web/src/schema/identity/user/type.ts rename to apps/web/src/api-clients/identity/user/schema/type.ts diff --git a/apps/web/src/api-clients/identity/workspace-group-user/composables/use-workspace-group-user-api.ts b/apps/web/src/api-clients/identity/workspace-group-user/composables/use-workspace-group-user-api.ts new file mode 100644 index 0000000000..e1ce722657 --- /dev/null +++ b/apps/web/src/api-clients/identity/workspace-group-user/composables/use-workspace-group-user-api.ts @@ -0,0 +1,32 @@ +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 { WorkspaceGroupUserAddParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/add'; +import type { WorkspaceGroupUserFindParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/find'; +import type { WorkspaceGroupUserGetParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/get'; +import type { WorkspaceGroupUserListParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/list'; +import type { WorkspaceGroupUserRemoveParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/remove'; +import type { WorkspaceGroupUserUpdateRoleParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/update-role'; +import type { WorkspaceGroupUserModel } from '@/api-clients/identity/workspace-group-user/schema/model'; + +export const useWorkspaceGroupUserApi = () => { + const workspaceGroupUserQueryKey = useAPIQueryKey('identity', 'workspace-group-user', 'get'); + const workspaceGroupUserListQueryKey = useAPIQueryKey('identity', 'workspace-group-user', 'list'); + + const actions = { + add: SpaceConnector.clientV2.identity.workspaceGroupUser.add, + remove: SpaceConnector.clientV2.identity.workspaceGroupUser.remove, + get: SpaceConnector.clientV2.identity.workspaceGroupUser.get, + list: SpaceConnector.clientV2.identity.workspaceGroupUser.list>, + find: SpaceConnector.clientV2.identity.workspaceGroupUser.find, + updateRole: SpaceConnector.clientV2.identity.workspaceGroupUser.updateRole, + stat: SpaceConnector.clientV2.identity.workspaceGroupUser.stat, + }; + + return { + workspaceGroupUserQueryKey, + workspaceGroupUserListQueryKey, + workspaceGroupUserAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/workspace-group-user/api-verbs/add.ts b/apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/add.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group-user/api-verbs/add.ts rename to apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/add.ts diff --git a/apps/web/src/schema/identity/workspace-group-user/api-verbs/find.ts b/apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/find.ts similarity index 72% rename from apps/web/src/schema/identity/workspace-group-user/api-verbs/find.ts rename to apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/find.ts index 5a86c652f9..9db528a202 100644 --- a/apps/web/src/schema/identity/workspace-group-user/api-verbs/find.ts +++ b/apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/find.ts @@ -1,4 +1,4 @@ -import type { UserState } from '@/schema/identity/user/type'; +import type { UserState } from '@/api-clients/identity/user/schema/type'; export interface WorkspaceGroupUserFindParameters { workspace_group_id: string; diff --git a/apps/web/src/schema/identity/workspace-group-user/api-verbs/get.ts b/apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group-user/api-verbs/get.ts rename to apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/workspace-group-user/api-verbs/list.ts b/apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group-user/api-verbs/list.ts rename to apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/identity/workspace-group-user/api-verbs/remove.ts b/apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/remove.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group-user/api-verbs/remove.ts rename to apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/remove.ts diff --git a/apps/web/src/schema/identity/workspace-group-user/api-verbs/stat.ts b/apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group-user/api-verbs/stat.ts rename to apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/identity/workspace-group-user/api-verbs/update-role.ts b/apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/update-role.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group-user/api-verbs/update-role.ts rename to apps/web/src/api-clients/identity/workspace-group-user/schema/api-verbs/update-role.ts diff --git a/apps/web/src/schema/identity/workspace-group-user/model.ts b/apps/web/src/api-clients/identity/workspace-group-user/schema/model.ts similarity index 72% rename from apps/web/src/schema/identity/workspace-group-user/model.ts rename to apps/web/src/api-clients/identity/workspace-group-user/schema/model.ts index bb7debac43..5c1a02467b 100644 --- a/apps/web/src/schema/identity/workspace-group-user/model.ts +++ b/apps/web/src/api-clients/identity/workspace-group-user/schema/model.ts @@ -1,7 +1,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { RoleType } from '@/schema/identity/role/type'; -import type { UserState } from '@/schema/identity/user/type'; -import type { WorkspaceModel } from '@/schema/identity/workspace/model'; +import type { RoleType } from '@/api-clients/identity/role/type'; +import type { UserState } from '@/api-clients/identity/user/schema/type'; +import type { WorkspaceModel } from '@/api-clients/identity/workspace/schema/model'; export interface WorkspaceGroupUserModel { workspace_group_id: string; diff --git a/apps/web/src/api-clients/identity/workspace-group/composables/use-workspace-group-api.ts b/apps/web/src/api-clients/identity/workspace-group/composables/use-workspace-group-api.ts new file mode 100644 index 0000000000..6d823bcfaf --- /dev/null +++ b/apps/web/src/api-clients/identity/workspace-group/composables/use-workspace-group-api.ts @@ -0,0 +1,37 @@ +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 { WorkspaceGroupAddUsersParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/add-users'; +import type { WorkspaceGroupCreateParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/create'; +import type { WorkspaceGroupDeleteParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/delete'; +import type { WorkspaceGroupGetParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/get'; +import type { WorkspaceGroupListParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/list'; +import type { WorkspaceGroupRemoveUsersParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/remove-users'; +import type { WorkspaceGroupStatParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/stat'; +import type { WorkspaceGroupUpdateParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/update'; +import type { WorkspaceGroupUpdateRoleParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/update-role'; +import type { WorkspaceGroupModel } from '@/api-clients/identity/workspace-group/schema/model'; + +export const useWorkspaceGroupApi = () => { + const workspaceGroupQueryKey = useAPIQueryKey('identity', 'workspace-group', 'get'); + const workspaceGroupListQueryKey = useAPIQueryKey('identity', 'workspace-group', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.workspaceGroup.create, + update: SpaceConnector.clientV2.identity.workspaceGroup.update, + delete: SpaceConnector.clientV2.identity.workspaceGroup.delete, + get: SpaceConnector.clientV2.identity.workspaceGroup.get, + list: SpaceConnector.clientV2.identity.workspaceGroup.list>, + addUsers: SpaceConnector.clientV2.identity.workspaceGroup.addUsers, + removeUsers: SpaceConnector.clientV2.identity.workspaceGroup.removeUsers, + updateRole: SpaceConnector.clientV2.identity.workspaceGroup.updateRole, + stat: SpaceConnector.clientV2.identity.workspaceGroup.stat, + }; + + return { + workspaceGroupQueryKey, + workspaceGroupListQueryKey, + workspaceGroupAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/workspace-group/api-verbs/add-users.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/add-users.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group/api-verbs/add-users.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/add-users.ts diff --git a/apps/web/src/schema/identity/workspace-group/api-verbs/create.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group/api-verbs/create.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/identity/workspace-group/api-verbs/delete.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group/api-verbs/delete.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/identity/workspace-group/api-verbs/get.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group/api-verbs/get.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/workspace-group/api-verbs/list.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group/api-verbs/list.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/identity/workspace-group/api-verbs/remove-users.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/remove-users.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group/api-verbs/remove-users.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/remove-users.ts diff --git a/apps/web/src/schema/identity/workspace-group/api-verbs/stat.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/stat.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group/api-verbs/stat.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/stat.ts diff --git a/apps/web/src/schema/identity/workspace-group/api-verbs/update-role.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/update-role.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group/api-verbs/update-role.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/update-role.ts diff --git a/apps/web/src/schema/identity/workspace-group/api-verbs/update.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-group/api-verbs/update.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/workspace-group/model.ts b/apps/web/src/api-clients/identity/workspace-group/schema/model.ts similarity index 77% rename from apps/web/src/schema/identity/workspace-group/model.ts rename to apps/web/src/api-clients/identity/workspace-group/schema/model.ts index c55ae02cf7..ce9f951b39 100644 --- a/apps/web/src/schema/identity/workspace-group/model.ts +++ b/apps/web/src/api-clients/identity/workspace-group/schema/model.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { RoleType } from '@/schema/identity/role/type'; -import type { UserState } from '@/schema/identity/user/type'; +import type { RoleType } from '@/api-clients/identity/role/type'; +import type { UserState } from '@/api-clients/identity/user/schema/type'; export interface WorkspaceGroupModel { workspace_group_id: string; diff --git a/apps/web/src/api-clients/identity/workspace-user/composables/use-workspace-user-api.ts b/apps/web/src/api-clients/identity/workspace-user/composables/use-workspace-user-api.ts new file mode 100644 index 0000000000..1981d3e820 --- /dev/null +++ b/apps/web/src/api-clients/identity/workspace-user/composables/use-workspace-user-api.ts @@ -0,0 +1,27 @@ +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 { WorkspaceUserCreateParameters } from '@/api-clients/identity/workspace-user/schema/api-verbs/create'; +import type { FindWorkspaceUserParameters } from '@/api-clients/identity/workspace-user/schema/api-verbs/find'; +import type { WorkspaceUserGetParameters } from '@/api-clients/identity/workspace-user/schema/api-verbs/get'; +import type { WorkspaceUserListParameters } from '@/api-clients/identity/workspace-user/schema/api-verbs/list'; +import type { WorkspaceUserModel } from '@/api-clients/identity/workspace-user/schema/model'; + +export const useWorkspaceUserApi = () => { + const workspaceUserQueryKey = useAPIQueryKey('identity', 'workspace-user', 'get'); + const workspaceUserListQueryKey = useAPIQueryKey('identity', 'workspace-user', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.workspaceUser.create, + get: SpaceConnector.clientV2.identity.workspaceUser.get, + list: SpaceConnector.clientV2.identity.workspaceUser.list>, + find: SpaceConnector.clientV2.identity.workspaceUser.find, + }; + + return { + workspaceUserQueryKey, + workspaceUserListQueryKey, + workspaceUserAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/workspace-user/api-verbs/create.ts b/apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/create.ts similarity index 82% rename from apps/web/src/schema/identity/workspace-user/api-verbs/create.ts rename to apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/create.ts index 5a418395fd..ed17d6383a 100644 --- a/apps/web/src/schema/identity/workspace-user/api-verbs/create.ts +++ b/apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { AuthType } from '@/schema/identity/user/type'; +import type { AuthType } from '@/api-clients/identity/user/schema/type'; export interface WorkspaceUserCreateParameters { user_id: string; diff --git a/apps/web/src/schema/identity/workspace-user/api-verbs/find.ts b/apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/find.ts similarity index 72% rename from apps/web/src/schema/identity/workspace-user/api-verbs/find.ts rename to apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/find.ts index 1203b3971d..7bbadc5000 100644 --- a/apps/web/src/schema/identity/workspace-user/api-verbs/find.ts +++ b/apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/find.ts @@ -1,4 +1,4 @@ -import type { UserState } from '@/schema/identity/user/type'; +import type { UserState } from '@/api-clients/identity/user/schema/type'; interface Page { start: number; diff --git a/apps/web/src/schema/identity/workspace-user/api-verbs/get.ts b/apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/identity/workspace-user/api-verbs/get.ts rename to apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/identity/workspace-user/api-verbs/list.ts b/apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/list.ts similarity index 76% rename from apps/web/src/schema/identity/workspace-user/api-verbs/list.ts rename to apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/list.ts index cef6fcf1db..479d6c11bc 100644 --- a/apps/web/src/schema/identity/workspace-user/api-verbs/list.ts +++ b/apps/web/src/api-clients/identity/workspace-user/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { AuthType, UserState } from '@/schema/identity/user/type'; +import type { AuthType, UserState } from '@/api-clients/identity/user/schema/type'; export interface WorkspaceUserListParameters { diff --git a/apps/web/src/schema/identity/workspace-user/model.ts b/apps/web/src/api-clients/identity/workspace-user/schema/model.ts similarity index 64% rename from apps/web/src/schema/identity/workspace-user/model.ts rename to apps/web/src/api-clients/identity/workspace-user/schema/model.ts index 72d89bea59..c304390a6e 100644 --- a/apps/web/src/schema/identity/workspace-user/model.ts +++ b/apps/web/src/api-clients/identity/workspace-user/schema/model.ts @@ -1,8 +1,8 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { RoleBindingModel } from '@/schema/identity/role-binding/model'; -import type { RoleType } from '@/schema/identity/role/type'; -import type { UserGroupPerUserModel } from '@/schema/identity/user/model'; -import type { AuthType, UserState } from '@/schema/identity/user/type'; +import type { RoleBindingModel } from '@/api-clients/identity/role-binding/schema/model'; +import type { RoleType } from '@/api-clients/identity/role/type'; +import type { UserGroupPerUserModel } from '@/api-clients/identity/user/schema/model'; +import type { AuthType, UserState } from '@/api-clients/identity/user/schema/type'; export interface WorkspaceUserModel { user_id: string; 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..e2d4115f5b --- /dev/null +++ b/apps/web/src/api-clients/identity/workspace/composables/use-workspace-api.ts @@ -0,0 +1,33 @@ +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/schema/api-verbs/add-package'; +import type { WorkspaceChangeWorkspaceGroupParameters } from '@/api-clients/identity/workspace/schema/api-verbs/change-workspace-group'; +import type { WorkspaceCreateParameters } from '@/api-clients/identity/workspace/schema/api-verbs/create'; +import type { WorkspaceDeleteParameters } from '@/api-clients/identity/workspace/schema/api-verbs/delete'; +import type { WorkspaceListParameters } from '@/api-clients/identity/workspace/schema/api-verbs/list'; +import type { WorkspaceRemovePackageParameters } from '@/api-clients/identity/workspace/schema/api-verbs/remove-package'; +import type { WorkspaceUpdateParameters } from '@/api-clients/identity/workspace/schema/api-verbs/update'; +import type { WorkspaceModel } from '@/api-clients/identity/workspace/schema/model'; + +export const useWorkspaceApi = () => { + const workspaceQueryKey = useAPIQueryKey('identity', 'workspace', 'get'); + const workspaceListQueryKey = useAPIQueryKey('identity', 'workspace', 'list'); + + const actions = { + create: SpaceConnector.clientV2.identity.workspace.create, + update: SpaceConnector.clientV2.identity.workspace.update, + delete: SpaceConnector.clientV2.identity.workspace.delete, + list: SpaceConnector.clientV2.identity.workspace.list>, + addPackage: SpaceConnector.clientV2.identity.workspace.addPackage, + removePackage: SpaceConnector.clientV2.identity.workspace.removePackage, + changeWorkspaceGroup: SpaceConnector.clientV2.identity.workspace.changeWorkspaceGroup, + }; + + return { + workspaceQueryKey, + workspaceListQueryKey, + workspaceAPI: actions, + }; +}; diff --git a/apps/web/src/schema/identity/workspace/api-verbs/add-package.ts b/apps/web/src/api-clients/identity/workspace/schema/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/schema/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/schema/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/schema/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/schema/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/schema/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/schema/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/schema/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/schema/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/schema/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/schema/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/schema/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/schema/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/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/identity/workspace/model.ts b/apps/web/src/api-clients/identity/workspace/schema/model.ts similarity index 100% rename from apps/web/src/schema/identity/workspace/model.ts rename to apps/web/src/api-clients/identity/workspace/schema/model.ts diff --git a/apps/web/src/api-clients/opsflow/_types/task-field-type.ts b/apps/web/src/api-clients/opsflow/_types/task-field-type.ts index 1cb2a8e12a..ee7c81085b 100644 --- a/apps/web/src/api-clients/opsflow/_types/task-field-type.ts +++ b/apps/web/src/api-clients/opsflow/_types/task-field-type.ts @@ -17,7 +17,8 @@ export interface TaskFieldOptions { // union of all task field options } /* task field options by type */ -interface TextTaskFieldOptions { +export interface TextTaskFieldOptions { + description?: string; example?: string; max_length?: number; } 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..a48c00a006 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,29 @@ +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'; + +export const useCommentApi = () => { + const commentQueryKey = useAPIQueryKey('opsflow', 'comment', 'get'); + const commentListQueryKey = useAPIQueryKey('opsflow', 'comment', 'list'); + + const actions = { + create: SpaceConnector.clientV2.opsflow.comment.create, + update: SpaceConnector.clientV2.opsflow.comment.update, + delete: SpaceConnector.clientV2.opsflow.comment.delete, + get: SpaceConnector.clientV2.opsflow.comment.get, + list: SpaceConnector.clientV2.opsflow.comment.list>, + }; + + 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..3a10564a88 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,19 @@ +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'; + +export const useEventApi = () => { + const eventListQueryKey = useAPIQueryKey('opsflow', 'event', 'list'); + + const actions = { + list: SpaceConnector.clientV2.opsflow.event.list>, + }; + + 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 e69de29bb2..9839b45774 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 @@ -0,0 +1,29 @@ +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 { TaskCategoryCreateParameters } from '@/api-clients/opsflow/task-category/schema/api-verbs/create'; +import type { TaskCategoryDeleteParameters } from '@/api-clients/opsflow/task-category/schema/api-verbs/delete'; +import type { TaskCategoryGetParameters } from '@/api-clients/opsflow/task-category/schema/api-verbs/get'; +import type { TaskCategoryListParameters } from '@/api-clients/opsflow/task-category/schema/api-verbs/list'; +import type { TaskCategoryUpdateParameters } from '@/api-clients/opsflow/task-category/schema/api-verbs/update'; +import type { TaskCategoryModel } from '@/api-clients/opsflow/task-category/schema/model'; + +export const useTaskCategoryApi = () => { + const taskCategoryQueryKey = useAPIQueryKey('opsflow', 'task-category', 'get'); + const taskCategoryListQueryKey = useAPIQueryKey('opsflow', 'task-category', 'list'); + + const actions = { + create: SpaceConnector.clientV2.opsflow.taskCategory.create, + update: SpaceConnector.clientV2.opsflow.taskCategory.update, + delete: SpaceConnector.clientV2.opsflow.taskCategory.delete, + get: SpaceConnector.clientV2.opsflow.taskCategory.get, + list: SpaceConnector.clientV2.opsflow.taskCategory.list>, + }; + + return { + taskCategoryQueryKey, + taskCategoryListQueryKey, + taskCategoryAPI: actions, + }; +}; 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-type/composables/use-task-type-api.ts b/apps/web/src/api-clients/opsflow/task-type/composables/use-task-type-api.ts index e69de29bb2..70a688ae0a 100644 --- 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 @@ -0,0 +1,31 @@ +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 { TaskTypeCreateParameters } from '@/api-clients/opsflow/task-type/schema/api-verbs/create'; +import type { TaskTypeDeleteParameters } from '@/api-clients/opsflow/task-type/schema/api-verbs/delete'; +import type { TaskTypeGetParameters } from '@/api-clients/opsflow/task-type/schema/api-verbs/get'; +import type { TaskTypeListParameters } from '@/api-clients/opsflow/task-type/schema/api-verbs/list'; +import type { TaskTypeUpdateParameters } from '@/api-clients/opsflow/task-type/schema/api-verbs/update'; +import type { TaskTypeUpdateFieldsParameters } from '@/api-clients/opsflow/task-type/schema/api-verbs/update-fields'; +import type { TaskTypeModel } from '@/api-clients/opsflow/task-type/schema/model'; + +export const useTaskTypeApi = () => { + const taskTypeQueryKey = useAPIQueryKey('opsflow', 'task-type', 'get'); + const taskTypeListQueryKey = useAPIQueryKey('opsflow', 'task-type', 'list'); + + const actions = { + create: SpaceConnector.clientV2.opsflow.taskType.create, + update: SpaceConnector.clientV2.opsflow.taskType.update, + delete: SpaceConnector.clientV2.opsflow.taskType.delete, + get: SpaceConnector.clientV2.opsflow.taskType.get, + list: SpaceConnector.clientV2.opsflow.taskType.list>, + updateFields: SpaceConnector.clientV2.opsflow.taskType.updateFields, + }; + + return { + taskTypeQueryKey, + taskTypeListQueryKey, + taskTypeAPI: actions, + }; +}; 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 index e69de29bb2..501cd4101e 100644 --- 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 @@ -0,0 +1,35 @@ +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 { TaskChangeAssigneeParameters } from '@/api-clients/opsflow/task/schema/api-verbs/change-assignee'; +import type { TaskChangeStatusParameters } from '@/api-clients/opsflow/task/schema/api-verbs/change-status'; +import type { TaskCreateParameters } from '@/api-clients/opsflow/task/schema/api-verbs/create'; +import type { TaskDeleteParameters } from '@/api-clients/opsflow/task/schema/api-verbs/delete'; +import type { TaskGetParameters } from '@/api-clients/opsflow/task/schema/api-verbs/get'; +import type { TaskListParameters } from '@/api-clients/opsflow/task/schema/api-verbs/list'; +import type { TaskUpdateParameters } from '@/api-clients/opsflow/task/schema/api-verbs/update'; +import type { TaskUpdateDescriptionParameters } from '@/api-clients/opsflow/task/schema/api-verbs/update-description'; +import type { TaskModel } from '@/api-clients/opsflow/task/schema/model'; + +export const useTaskApi = () => { + const taskQueryKey = useAPIQueryKey('opsflow', 'task', 'get'); + const taskListQueryKey = useAPIQueryKey('opsflow', 'task', 'list'); + + const actions = { + create: SpaceConnector.clientV2.opsflow.task.create, + update: SpaceConnector.clientV2.opsflow.task.update, + delete: SpaceConnector.clientV2.opsflow.task.delete, + get: SpaceConnector.clientV2.opsflow.task.get, + list: SpaceConnector.clientV2.opsflow.task.list>, + changeAssignee: SpaceConnector.clientV2.opsflow.task.changeAssignee, + changeStatus: SpaceConnector.clientV2.opsflow.task.changeStatus, + updateDescription: SpaceConnector.clientV2.opsflow.task.updateDescription, + }; + + return { + taskQueryKey, + taskListQueryKey, + taskAPI: actions, + }; +}; 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/bookmark/BookmarkFolderFormModal.vue b/apps/web/src/common/components/bookmark/BookmarkFolderFormModal.vue index 32e2f20e47..6b4b6e90f6 100644 --- a/apps/web/src/common/components/bookmark/BookmarkFolderFormModal.vue +++ b/apps/web/src/common/components/bookmark/BookmarkFolderFormModal.vue @@ -6,7 +6,7 @@ import { PButtonModal, PFieldGroup, PTextInput, PRadioGroup, PRadio, } from '@cloudforet/mirinae'; -import { ROLE_TYPE } from '@/schema/identity/role/constant'; +import { ROLE_TYPE } from '@/api-clients/identity/role/constant'; import { i18n } from '@/translations'; import { useAppContextStore } from '@/store/app-context/app-context-store'; diff --git a/apps/web/src/common/components/bookmark/BookmarkLinkFormModal.vue b/apps/web/src/common/components/bookmark/BookmarkLinkFormModal.vue index 6bdafc2ed5..fb6063854a 100644 --- a/apps/web/src/common/components/bookmark/BookmarkLinkFormModal.vue +++ b/apps/web/src/common/components/bookmark/BookmarkLinkFormModal.vue @@ -10,7 +10,7 @@ import { PButton, PButtonModal, PFieldGroup, PI, PRadio, PRadioGroup, PTextInput, } from '@cloudforet/mirinae'; -import { ROLE_TYPE } from '@/schema/identity/role/constant'; +import { ROLE_TYPE } from '@/api-clients/identity/role/constant'; import { i18n } from '@/translations'; import { useAppContextStore } from '@/store/app-context/app-context-store'; 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/components/editor/text-editor-nodes.pcss b/apps/web/src/common/components/editor/text-editor-nodes.pcss index 8602905579..a39d91c52a 100644 --- a/apps/web/src/common/components/editor/text-editor-nodes.pcss +++ b/apps/web/src/common/components/editor/text-editor-nodes.pcss @@ -157,6 +157,7 @@ @apply bg-gray-100 rounded-lg; margin-top: 0.75rem; padding: 0.5rem 1rem; + white-space: pre-wrap; > code { font-family: $font-code; font-size: 0.875rem; diff --git a/apps/web/src/common/components/modals/UserAPIKeyModal.vue b/apps/web/src/common/components/modals/UserAPIKeyModal.vue index 1d9d2af6ad..49556daf86 100644 --- a/apps/web/src/common/components/modals/UserAPIKeyModal.vue +++ b/apps/web/src/common/components/modals/UserAPIKeyModal.vue @@ -7,10 +7,10 @@ import yaml from 'js-yaml'; import { PIconModal, PI, PPaneLayout, PDivider, PCollapsibleToggle, PButton, PLink, PCodeEditor, } from '@cloudforet/mirinae'; -import { ACTION_ICON } from '@cloudforet/mirinae/src/navigation/link/type'; -import type { AppModel } from '@/schema/identity/app/model'; + +import type { AppModel } from '@/api-clients/identity/app/schema/model'; import { useProxyValue } from '@/common/composables/proxy-state'; @@ -153,7 +153,7 @@ watch(() => props.visible, async (visible) => {

{{ $t('IDENTITY.USER.API_KEY.SPACECTL_DESC') }} {{ $t('IDENTITY.USER.API_KEY.VIEW_MORE') }} diff --git a/apps/web/src/common/composables/contents-accessibility/index.ts b/apps/web/src/common/composables/contents-accessibility/index.ts new file mode 100644 index 0000000000..4ddb74a9ae --- /dev/null +++ b/apps/web/src/common/composables/contents-accessibility/index.ts @@ -0,0 +1,23 @@ +import type { Ref } from 'vue'; +import { computed, reactive, toRef } from 'vue'; + +import { useMenuStore } from '@/store/menu/menu-store'; + +import type { MenuId } from '@/lib/menu/config'; + +interface UseContentsAccessibilityReturnType { + visibleContents: Ref; +} + +export const useContentsAccessibility = (menuId: MenuId): UseContentsAccessibilityReturnType => { + const menuStore = useMenuStore(); + const menuState = menuStore.state; + + const state = reactive({ + visibleContents: computed(() => menuState.menuList.findIndex((menu) => menu.id === menuId) !== -1), + }); + + return { + visibleContents: toRef(state, 'visibleContents'), + }; +}; diff --git a/apps/web/src/common/composables/data-source/use-cost-data-source-filter-menu-items.ts b/apps/web/src/common/composables/data-source/use-cost-data-source-filter-menu-items.ts index d72aae3a2e..0a7644b7e2 100644 --- a/apps/web/src/common/composables/data-source/use-cost-data-source-filter-menu-items.ts +++ b/apps/web/src/common/composables/data-source/use-cost-data-source-filter-menu-items.ts @@ -3,7 +3,7 @@ import { computed, reactive, watch } from 'vue'; import { sortBy } from 'lodash'; -import type { MenuItem } from '@cloudforet/mirinae/src/controls/context-menu/type'; +import type { MenuItem } from '@cloudforet/mirinae/types/controls/context-menu/type'; import type { CostDataSourceItems } from '@/store/reference/cost-data-source-reference-store'; diff --git a/apps/web/src/common/composables/dynamic-layout/index.ts b/apps/web/src/common/composables/dynamic-layout/index.ts index ff9ed724ac..41dad22adf 100644 --- a/apps/web/src/common/composables/dynamic-layout/index.ts +++ b/apps/web/src/common/composables/dynamic-layout/index.ts @@ -1,3 +1,5 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-nocheck import { debouncedWatch } from '@vueuse/core'; import { computed, reactive, 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/composables/grant-scope-guard/index.ts b/apps/web/src/common/composables/grant-scope-guard/index.ts index 5ebd08a3b1..ad4d72cf34 100644 --- a/apps/web/src/common/composables/grant-scope-guard/index.ts +++ b/apps/web/src/common/composables/grant-scope-guard/index.ts @@ -1,6 +1,6 @@ import { computed, reactive, watch } from 'vue'; -import type { GrantScope } from '@/schema/identity/token/type'; +import type { GrantScope } from '@/api-clients/identity/token/schema/type'; import { useAppContextStore } from '@/store/app-context/app-context-store'; import type { GrantInfo } from '@/store/user/type'; diff --git a/apps/web/src/common/composables/query-tags/index.ts b/apps/web/src/common/composables/query-tags/index.ts index f833026110..aab13003b5 100644 --- a/apps/web/src/common/composables/query-tags/index.ts +++ b/apps/web/src/common/composables/query-tags/index.ts @@ -23,7 +23,6 @@ interface KeyItemSet { items: KeyItem[]; } type KeyMap = Record; -type ReferenceStore = Record>; const datetimeOperatorToOriginMap: Partial> = { '>t': '>', '>=t': '>=', @@ -34,7 +33,7 @@ const datetimeOperatorToOriginMap: Partial>|ReturnType['getters'], ): QueryTag | null => { if (filter.k === undefined || filter.k === null) { /* no key case */ 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 d67cd690b2..9c2c1929f2 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 @@ -11,10 +11,10 @@ import { import type { DataTableFieldType } from '@cloudforet/mirinae/types/data-display/tables/data-table/type'; 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'; -import type { UserType } from '@/schema/identity/user/type'; +import type { UserConfigGetParameters } from '@/api-clients/config/user-config/schema/api-verbs/get'; +import type { UserConfigUpdateParameters } from '@/api-clients/config/user-config/schema/api-verbs/update'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; +import type { UserType } from '@/api-clients/identity/user/schema/type'; import { i18n } from '@/translations'; import { useUserStore } from '@/store/user/user-store'; diff --git a/apps/web/src/common/modules/custom-table/custom-field-modal/CustomFieldModalForDynamicLayout.vue b/apps/web/src/common/modules/custom-table/custom-field-modal/CustomFieldModalForDynamicLayout.vue index 12009d5a5a..31adf2a591 100644 --- a/apps/web/src/common/modules/custom-table/custom-field-modal/CustomFieldModalForDynamicLayout.vue +++ b/apps/web/src/common/modules/custom-table/custom-field-modal/CustomFieldModalForDynamicLayout.vue @@ -8,7 +8,7 @@ import { } from '@cloudforet/mirinae'; import type { DynamicField } from '@cloudforet/mirinae/types/data-display/dynamic/dynamic-field/type/field-schema'; -import type { UserType } from '@/schema/identity/user/type'; +import type { UserType } from '@/api-clients/identity/user/schema/type'; import { i18n } from '@/translations'; import { useAppContextStore } from '@/store/app-context/app-context-store'; @@ -21,12 +21,12 @@ import { useProxyValue } from '@/common/composables/proxy-state'; import { TAGS_OPTIONS, TAGS_PREFIX } from '@/common/modules/custom-table/custom-field-modal/config'; import ColumnItemForDynamicLayout from '@/common/modules/custom-table/custom-field-modal/modules/ColumnItemForDynamicLayout.vue'; -import { convertAgentModeOptions } from '@/services/asset-inventory-v1/helpers/agent-mode-helper'; -import { getServiceAccountTableSchema, updateCustomTableSchema } from '@/services/asset-inventory-v1/helpers/dynamic-ui-schema-generator'; +import { convertAgentModeOptions } from '@/services/service-account/helpers/agent-mode-helper'; +import { getServiceAccountTableSchema, updateCustomTableSchema } from '@/services/service-account/helpers/dynamic-ui-schema-generator'; import type { GetSchemaParams, ResourceType, -} from '@/services/asset-inventory-v1/helpers/dynamic-ui-schema-generator/type'; +} from '@/services/service-account/helpers/dynamic-ui-schema-generator/type'; const SelectCloudServiceTagColumns = () => import('@/common/modules/custom-table/custom-field-modal/modules/SelectCloudServiceTagColumns.vue'); const SelectTagColumns = () => import('@/common/modules/custom-table/custom-field-modal/modules/SelectTagColumns.vue'); 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..6f18c0d8bd 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/schema/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/favorites/favorite-button/store/favorite-store.ts b/apps/web/src/common/modules/favorites/favorite-button/store/favorite-store.ts index 55696266a4..d41b32a4a0 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 @@ -1,3 +1,5 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-nocheck import { computed, reactive, watch } from 'vue'; import { defineStore } from 'pinia'; @@ -6,10 +8,10 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import { ApiQueryHelper } from '@cloudforet/core-lib/space-connector/helper'; 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'; -import type { UserConfigModel } from '@/schema/config/user-config/model'; +import type { UserConfigDeleteParameters } from '@/api-clients/config/user-config/schema/api-verbs/delete'; +import type { UserConfigListParameters } from '@/api-clients/config/user-config/schema/api-verbs/list'; +import type { UserConfigSetParameters } from '@/api-clients/config/user-config/schema/api-verbs/set'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; import { useUserStore } from '@/store/user/user-store'; diff --git a/apps/web/src/common/modules/monitoring/Monitoring.vue b/apps/web/src/common/modules/monitoring/Monitoring.vue index 00e7eb05d7..7847804c64 100644 --- a/apps/web/src/common/modules/monitoring/Monitoring.vue +++ b/apps/web/src/common/modules/monitoring/Monitoring.vue @@ -20,7 +20,7 @@

@@ -119,7 +119,7 @@ import { ApiQueryHelper } from '@cloudforet/core-lib/space-connector/helper'; import { PSelectButtonGroup, PSelectDropdown, PIconButton, PButton, PLink, PSpinner, } from '@cloudforet/mirinae'; -import { ACTION_ICON } from '@cloudforet/mirinae/src/navigation/link/type'; + import { MONITORING_TYPE } from '@/schema/monitoring/data-source/constant'; @@ -377,7 +377,6 @@ export default { return { ...toRefs(state), TIME_RANGE, - ACTION_ICON, legendFormatter(resource): string { return resource.name ? `${resource.name} (${resource.id})` : `(${resource.id})`; }, diff --git a/apps/web/src/common/modules/navigations/gnb/GNBNavigationRail.vue b/apps/web/src/common/modules/navigations/gnb/GNBNavigationRail.vue index 405a484a6e..f4593f0749 100644 --- a/apps/web/src/common/modules/navigations/gnb/GNBNavigationRail.vue +++ b/apps/web/src/common/modules/navigations/gnb/GNBNavigationRail.vue @@ -10,8 +10,9 @@ import { isEmpty } from 'lodash'; import { PI, screens, PButton, PTextButton, PTooltip, } from '@cloudforet/mirinae'; -import type { ContextMenuType } from '@cloudforet/mirinae/src/controls/context-menu/type'; +import type { ContextMenuType } from '@cloudforet/mirinae/types/controls/context-menu/type'; +import { useAppContextStore } from '@/store/app-context/app-context-store'; import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; import { useDisplayStore } from '@/store/display/display-store'; import type { DisplayMenu } from '@/store/display/type'; @@ -25,9 +26,9 @@ import BetaMark from '@/common/components/marks/BetaMark.vue'; import NewMark from '@/common/components/marks/NewMark.vue'; import UpdateMark from '@/common/components/marks/UpdateMark.vue'; import { useCurrentMenuId } from '@/common/composables/current-menu-id'; -import { useProperRouteLocation } from '@/common/composables/proper-route-location'; import { useGnbStore } from '@/common/modules/navigations/stores/gnb-store'; +import { ADMIN_COST_EXPLORER_ROUTE } from '@/services/cost-explorer/routes/admin/route-constant'; import { COST_EXPLORER_ROUTE } from '@/services/cost-explorer/routes/route-constant'; interface GNBMenuType extends DisplayMenu { @@ -38,7 +39,7 @@ interface GNBMenuType extends DisplayMenu { const allReferenceStore = useAllReferenceStore(); const allReferenceGetters = allReferenceStore.getters; -const { getProperRouteLocation } = useProperRouteLocation(); +const appContextStore = useAppContextStore(); const gnbStore = useGnbStore(); const gnbGetters = gnbStore.getters; const userWorkspaceStore = useUserWorkspaceStore(); @@ -52,13 +53,14 @@ const { width } = useWindowSize(); const { currentMenuId } = useCurrentMenuId(); const storeState = reactive({ + isAdminMode: computed(() => appContextStore.getters.isAdminMode), isHideNavRail: computed(() => gnbGetters.isHideNavRail), isMinimizeNavRail: computed(() => gnbGetters.isMinimizeNavRail), currentWorkspaceId: computed(() => userWorkspaceGetters.currentWorkspaceId), costDataSource: computed(() => allReferenceGetters.costDataSource), }); -const noParentsMenuList:MenuId[] = [MENU_ID.DASHBOARDS, MENU_ID.WORKSPACE_HOME, MENU_ID.PROJECT]; +const noParentsMenuList:MenuId[] = [MENU_ID.WORKSPACE_HOME, MENU_ID.DASHBOARDS, MENU_ID.PROJECT, MENU_ID.SERVICE_ACCOUNT]; const state = reactive({ isInit: false as boolean|undefined, @@ -106,9 +108,9 @@ const handleMouseEvent = (value: boolean) => { const handleMenuDescription = (value?: boolean) => { state.isMenuDescription = value; if (value) { - router.push(getProperRouteLocation({ - name: COST_EXPLORER_ROUTE.LANDING._NAME, - })); + router.push({ + name: storeState.isAdminMode ? ADMIN_COST_EXPLORER_ROUTE.LANDING._NAME : COST_EXPLORER_ROUTE.LANDING._NAME, + }).catch(() => {}); } }; const handleMinimizedGnbRail = () => { 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/stores/gnb-store.ts b/apps/web/src/common/modules/navigations/stores/gnb-store.ts index 02151ac7f9..4277a98f3e 100644 --- a/apps/web/src/common/modules/navigations/stores/gnb-store.ts +++ b/apps/web/src/common/modules/navigations/stores/gnb-store.ts @@ -5,10 +5,10 @@ import { defineStore } from 'pinia'; import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { UserConfigListParameters } from '@/api-clients/config/user-config/schema/api-verbs/list'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; 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 { MetricExampleListParameters } from '@/schema/inventory/metric-example/api-verbs/list'; import type { MetricExampleModel } from '@/schema/inventory/metric-example/model'; @@ -22,6 +22,7 @@ import type { FavoriteOptions } from '@/common/modules/favorites/favorite-button import type { Breadcrumb } from '@/common/modules/page-layouts/type'; interface GnbStoreState { + visibleAlertIcon?: boolean; breadcrumbs: Breadcrumb[]; selectedItem: Breadcrumb; id?: string; @@ -44,6 +45,7 @@ export const useGnbStore = defineStore('gnb', () => { }); const state = reactive({ + visibleAlertIcon: false, breadcrumbs: [], selectedItem: {} as Breadcrumb, id: '', @@ -66,6 +68,9 @@ export const useGnbStore = defineStore('gnb', () => { }); const mutations = { + setVisibleAlertIcon: (val?: boolean) => { + state.visibleAlertIcon = val; + }, setBreadcrumbs: (breadcrumbs: Breadcrumb[]) => { state.breadcrumbs = breadcrumbs; }, diff --git a/apps/web/src/common/modules/navigations/stores/recent-store.ts b/apps/web/src/common/modules/navigations/stores/recent-store.ts index b6f5f3d5d9..f731b9fe3c 100644 --- a/apps/web/src/common/modules/navigations/stores/recent-store.ts +++ b/apps/web/src/common/modules/navigations/stores/recent-store.ts @@ -1,3 +1,5 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-nocheck import { computed, reactive, watch } from 'vue'; import { defineStore } from 'pinia'; @@ -5,7 +7,7 @@ import { defineStore } from 'pinia'; import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import { ApiQueryHelper } from '@cloudforet/core-lib/space-connector/helper'; -import type { UserConfigDeleteParameters } from '@/schema/config/user-config/api-verbs/delete'; +import type { UserConfigDeleteParameters } from '@/api-clients/config/user-config/schema/api-verbs/delete'; import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; import { useUserStore } from '@/store/user/user-store'; diff --git a/apps/web/src/common/modules/navigations/top-bar/TopBarMyPage.vue b/apps/web/src/common/modules/navigations/top-bar/TopBarMyPage.vue index c4f142ab18..2bb5ce1c5c 100644 --- a/apps/web/src/common/modules/navigations/top-bar/TopBarMyPage.vue +++ b/apps/web/src/common/modules/navigations/top-bar/TopBarMyPage.vue @@ -41,14 +41,14 @@ const handleBackToWorkspace = () => { return; } if (state.beforeWorkspace === 'landing') { - router.push({ name: ROOT_ROUTE.WORKSPACE._NAME }); + router.push({ name: ROOT_ROUTE.WORKSPACE._NAME }).catch(() => {}); return; } if (state.beforeWorkspace) { router.push({ name: ROOT_ROUTE.WORKSPACE._NAME, params: { workspaceId: state.beforeWorkspace } }); return; } - router.push({ name: ROOT_ROUTE._NAME }); + router.push({ name: ROOT_ROUTE._NAME }).catch(() => {}); }; diff --git a/apps/web/src/common/modules/navigations/top-bar/constants/constant.ts b/apps/web/src/common/modules/navigations/top-bar/constants/constant.ts index 104b4dfa8c..c3ce2632bd 100644 --- a/apps/web/src/common/modules/navigations/top-bar/constants/constant.ts +++ b/apps/web/src/common/modules/navigations/top-bar/constants/constant.ts @@ -1,4 +1,4 @@ -import { DOMAIN_CONFIG_NAMES } from '@/schema/config/domain-config/constant'; +import { DOMAIN_CONFIG_NAMES } from '@/api-clients/config/domain-config/schema/constant'; import type { MenuId } from '@/lib/menu/config'; import { MENU_ID } from '@/lib/menu/config'; 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..848fc2959c 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 @@ -10,10 +10,9 @@ import { sortBy } from 'lodash'; import { PSelectDropdown, PTooltip, PI, PButton, PTextHighlighting, PEmpty, } from '@cloudforet/mirinae'; -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 { MenuItem } from '@cloudforet/mirinae/types/controls/context-menu/type'; -import type { WorkspaceModel } from '@/schema/identity/workspace/model'; +import type { WorkspaceModel } from '@/api-clients/identity/workspace/schema/model'; import { i18n } from '@/translations'; import { useAppContextStore } from '@/store/app-context/app-context-store'; @@ -86,12 +85,12 @@ const selectWorkspace = (name: string): void => { }; const formatMenuItems = (menuItems: WorkspaceModel[] = []): MenuItem[] => { const result = menuItems.length > 0 ? [ - { type: CONTEXT_MENU_TYPE.header, name: 'workspace_header', label: `${i18n.t('COMMON.GNB.WORKSPACE.WORKSPACES')} (${storeState.workspaceList.length})` }, + { type: 'header', name: 'workspace_header', label: `${i18n.t('COMMON.GNB.WORKSPACE.WORKSPACES')} (${storeState.workspaceList.length})` }, ] : [] as MenuItem[]; menuItems.forEach((d) => { result.push({ ...d, - type: CONTEXT_MENU_TYPE.item, + type: 'item', name: d.workspace_id || '', label: d.name as string, }); @@ -101,14 +100,14 @@ const formatMenuItems = (menuItems: WorkspaceModel[] = []): MenuItem[] => { const filterStarredItems = (menuItems: FavoriteItem[] = []): MenuItem[] => { if (storeState.favoriteItems.length === 0) return []; const result: MenuItem[] = [ - { type: CONTEXT_MENU_TYPE.header, name: 'starred_header', label: i18n.t('COMMON.STARRED') }, + { type: 'header', name: 'starred_header', label: i18n.t('COMMON.STARRED') }, ]; menuItems.forEach((d) => { const item = storeState.workspaceList.find((w) => w.workspace_id === d.itemId); if (item) { result.push({ ...item, - type: CONTEXT_MENU_TYPE.item, + type: 'item', name: d.itemId || '', label: d.label as string, }); 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 6458d04819..6dd2444f28 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 @@ -5,9 +5,10 @@ import { QueryHelper } from '@cloudforet/core-lib/query'; import { SEARCH_TAB } from '@/common/modules/navigations/top-bar/modules/top-bar-search/config'; import type { SearchTab } from '@/common/modules/navigations/top-bar/modules/top-bar-search/type'; -import { ASSET_INVENTORY_ROUTE_V1 } from '@/services/asset-inventory-v1/routes/route-constant'; +import { ASSET_INVENTORY_ROUTE } from '@/services/asset-inventory/routes/route-constant'; import { DASHBOARDS_ROUTE } from '@/services/dashboards/routes/route-constant'; -import { PROJECT_ROUTE } from '@/services/project-v1/routes/route-constant'; +import { PROJECT_ROUTE_V1 } from '@/services/project/v1/routes/route-constant'; +import { SERVICE_ACCOUNT_ROUTE } from '@/services/service-account/routes/route-constant'; const queryHelper = new QueryHelper(); @@ -15,12 +16,12 @@ export const topBarSearchReferenceRouter = (type: Exclude, switch (type) { case SEARCH_TAB.SERVICE_ACCOUNT: return { - name: ASSET_INVENTORY_ROUTE_V1.SERVICE_ACCOUNT.DETAIL._NAME, + name: SERVICE_ACCOUNT_ROUTE.DETAIL._NAME, params: { serviceAccountId: resourceId, workspaceId }, }; case SEARCH_TAB.PROJECT: return { - name: PROJECT_ROUTE.DETAIL._NAME, + name: PROJECT_ROUTE_V1.DETAIL._NAME, params: { id: resourceId, workspaceId }, }; case SEARCH_TAB.DASHBOARD: @@ -31,7 +32,7 @@ export const topBarSearchReferenceRouter = (type: Exclude, case SEARCH_TAB.CLOUD_SERVICE: if (!options.name || !options.group || !options.provider) throw new Error('provider and group are required for cloudService type'); return { - name: ASSET_INVENTORY_ROUTE_V1.CLOUD_SERVICE.DETAIL._NAME, + name: ASSET_INVENTORY_ROUTE.CLOUD_SERVICE.DETAIL._NAME, params: { name: options.name, workspaceId, diff --git a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/modules/top-bar-search-dropdown/modules/TopBarSearchWorkspaceFilter.vue b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/modules/top-bar-search-dropdown/modules/TopBarSearchWorkspaceFilter.vue index 93428833c4..d2fa0bdccd 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/modules/top-bar-search-dropdown/modules/TopBarSearchWorkspaceFilter.vue +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-search/modules/top-bar-search-dropdown/modules/TopBarSearchWorkspaceFilter.vue @@ -10,7 +10,7 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import { PCheckboxGroup, PCheckbox, PTooltip, PToggleButton, PTextButton, PContextMenu, PIconButton, PScopedNotification, } from '@cloudforet/mirinae'; -import type { MenuItem } from '@cloudforet/mirinae/src/controls/context-menu/type'; +import type { MenuItem } from '@cloudforet/mirinae/types/controls/context-menu/type'; import type { ResourceSearchParameters, ResourceSearchResponse } from '@/schema/search/resource/api-verbs/search'; 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..2ca2999bfb 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/schema/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/TopBarToolset.vue b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/TopBarToolset.vue index 82aa5be4e5..e95fc2df05 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/TopBarToolset.vue +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/TopBarToolset.vue @@ -9,8 +9,7 @@ import { useAppContextStore } from '@/store/app-context/app-context-store'; import { useDomainStore } from '@/store/domain/domain-store'; import { useUserStore } from '@/store/user/user-store'; -import config from '@/lib/config'; - +import { useGnbStore } from '@/common/modules/navigations/stores/gnb-store'; import TopBarAdminToggleButton from '@/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-admin-toggle-button/TopBarAdminToggleButton.vue'; import TopBarFavorite from '@/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-favorite/TopBarFavorite.vue'; @@ -33,10 +32,13 @@ const emit = defineEmits<{(event: 'hide-menu'): void; const appContextStore = useAppContextStore(); const domainStore = useDomainStore(); const userStore = useUserStore(); +const gnbStore = useGnbStore(); + const state = reactive({ isDomainAdmin: computed(() => userStore.getters.isDomainAdmin), isAdminMode: computed(() => appContextStore.getters.isAdminMode), isGrantLoading: computed(() => appContextStore.getters.globalGrantLoading), + visibleAlertIcon: computed(() => gnbStore.state.visibleAlertIcon), tooltipTexts: computed>(() => ({ adminToggle: (state.isAdminMode ? i18n.t('COMMON.GNB.TOOLTIP.EXIT_ADMIN_MODE') : i18n.t('COMMON.GNB.TOOLTIP.ENABLE_ADMIN_MODE')) as string, })), @@ -44,7 +46,6 @@ const state = reactive({ const extraMenu = domainStore.getters.domainExtraMenu; return extraMenu?.title; }), - isAlertManagerVersionV2: computed(() => (config.get('ADVANCED_SERVICE')?.alert_manager_v2 ?? []).includes(domainStore.state.domainId)), }); const hideMenu = () => { @@ -72,7 +73,7 @@ const updateOpenedMenu = (menu: string, visible: boolean) => { :visible="props.openedMenu === 'favorite'" @update:visible="updateOpenedMenu('favorite', $event)" /> - 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..1e47de19ed 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/schema/model'; import { i18n } from '@/translations'; import { ROOT_ROUTE } from '@/router/constant'; 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 352c743b0f..1747cfb3eb 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 @@ -49,11 +49,11 @@ import type { FavoriteItem, FavoriteType } from '@/common/modules/favorites/favo import { useGnbStore } from '@/common/modules/navigations/stores/gnb-store'; import TopBarSuggestionList from '@/common/modules/navigations/top-bar/modules/TopBarSuggestionList.vue'; -import { ASSET_INVENTORY_ROUTE_V1 } from '@/services/asset-inventory-v1/routes/route-constant'; +import { ASSET_INVENTORY_ROUTE } from '@/services/asset-inventory/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-v1/routes/route-constant'; +import { PROJECT_ROUTE_V1 } from '@/services/project/v1/routes/route-constant'; const FAVORITE_LIMIT = 5; @@ -244,7 +244,7 @@ const handleClickMenuButton = (type: FavoriteType) => { // Dashboard and Cost Analysis are added after (Planning). if (type === FAVORITE_TYPE.PROJECT) { router.replace({ - name: PROJECT_ROUTE._NAME, + name: PROJECT_ROUTE_V1._NAME, }); } emit('close'); @@ -277,7 +277,7 @@ const handleSelect = (item: FavoriteMenuItem) => { router.push(referenceRouter(itemName, { resource_type: 'identity.ProjectGroup' })).catch(() => {}); } else if (item.itemType === FAVORITE_TYPE.METRIC) { router.push({ - name: ASSET_INVENTORY_ROUTE_V1.METRIC_EXPLORER.DETAIL._NAME, + name: ASSET_INVENTORY_ROUTE.METRIC_EXPLORER.DETAIL._NAME, params: { metricId: item.name || '', }, @@ -286,7 +286,7 @@ const handleSelect = (item: FavoriteMenuItem) => { const metricId = storeState.metricExamples.find((example) => example.example_id === item.name)?.metric_id; if (!metricId) return; router.push({ - name: ASSET_INVENTORY_ROUTE_V1.METRIC_EXPLORER.DETAIL.EXAMPLE._NAME, + name: ASSET_INVENTORY_ROUTE.METRIC_EXPLORER.DETAIL.EXAMPLE._NAME, params: { metricId, metricExampleId: item.name || '', 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 5866be524e..24e50ceae2 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 @@ -15,7 +15,6 @@ import { ApiQueryHelper } from '@cloudforet/core-lib/space-connector/helper'; import { PDataLoader, PButtonModal, PI, PLink, PDefinitionTable, PButton, PEmpty, PTextBeautifier, } from '@cloudforet/mirinae'; -import { ACTION_ICON } from '@cloudforet/mirinae/src/navigation/link/type'; import { iso8601Formatter } from '@cloudforet/utils'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; @@ -315,7 +314,7 @@ onMounted(() => {
{{ $t('COMMON.GNB.NOTICE.DETAIL_LINK') }} {{ state.selectedItem.message.link }} diff --git a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-profile/TopBarProfile.vue b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-profile/TopBarProfile.vue index a0de8546fb..c6de3c4c1b 100644 --- a/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-profile/TopBarProfile.vue +++ b/apps/web/src/common/modules/navigations/top-bar/modules/top-bar-toolset/modules/top-bar-profile/TopBarProfile.vue @@ -13,13 +13,13 @@ import { PI, PDivider, PButton, PCopyButton, PTooltip, PAvatar, PLazyImg, } from '@cloudforet/mirinae'; +import type { RoleBindingModel } from '@/api-clients/identity/role-binding/schema/model'; +import { ROLE_TYPE } from '@/api-clients/identity/role/constant'; import DomainAdminImage from '@/assets/images/role/img_avatar_admin.png'; import UserImage from '@/assets/images/role/img_avatar_no-role.png'; import SystemAdminImage from '@/assets/images/role/img_avatar_system-admin.png'; import WorkspaceMemberImage from '@/assets/images/role/img_avatar_workspace-member.png'; import WorkspaceOwnerImage from '@/assets/images/role/img_avatar_workspace-owner.png'; -import type { RoleBindingModel } from '@/schema/identity/role-binding/model'; -import { ROLE_TYPE } from '@/schema/identity/role/constant'; import { i18n } from '@/translations'; import { useAppContextStore } from '@/store/app-context/app-context-store'; diff --git a/apps/web/src/common/modules/navigations/type.ts b/apps/web/src/common/modules/navigations/type.ts index 09a104e9c5..2ed10a5c11 100644 --- a/apps/web/src/common/modules/navigations/type.ts +++ b/apps/web/src/common/modules/navigations/type.ts @@ -1,4 +1,4 @@ -import type { UserConfigModel } from '@/schema/config/user-config/model'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; export const RECENT_TYPE = { SERVICE: 'SERVICE', diff --git a/apps/web/src/common/modules/page-layouts/type.ts b/apps/web/src/common/modules/page-layouts/type.ts index 5268190d82..4343f25bac 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-v1/types/project-tree-type'; +import type { ProjectGroupTreeNodeData } from '@/services/project/v-shared/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 8398f79472..97e8efef27 100644 --- a/apps/web/src/common/modules/popup/notice/NoticePopup.vue +++ b/apps/web/src/common/modules/popup/notice/NoticePopup.vue @@ -7,12 +7,12 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import { ApiQueryHelper } from '@cloudforet/core-lib/space-connector/helper'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { UserConfigListParameters } from '@/api-clients/config/user-config/schema/api-verbs/list'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; 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'; import type { NoticeConfigData } from '@/schema/board/post/type'; -import type { UserConfigListParameters } from '@/schema/config/user-config/api-verbs/list'; -import type { UserConfigModel } from '@/schema/config/user-config/model'; import { useAppContextStore } from '@/store/app-context/app-context-store'; import { useUserStore } from '@/store/user/user-store'; diff --git a/apps/web/src/common/modules/project/ProjectLinkButton.vue b/apps/web/src/common/modules/project/ProjectLinkButton.vue index f2562690b9..8156f51d08 100644 --- a/apps/web/src/common/modules/project/ProjectLinkButton.vue +++ b/apps/web/src/common/modules/project/ProjectLinkButton.vue @@ -1,16 +1,16 @@ diff --git a/apps/web/src/common/modules/project/ProjectSelectDropdown.vue b/apps/web/src/common/modules/project/ProjectSelectDropdown.vue index 098d1ff9c1..85eb705042 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-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 { ProjectTreeOptions } from '@/services/project/v-shared/composables/use-project-tree'; +import { useProjectTree } from '@/services/project/v-shared/composables/use-project-tree'; import type { ProjectTreeItem, ProjectTreeNodeData, ProjectTreeRoot, ProjectTreeItemType, ProjectTreeNode, -} from '@/services/project-v1/types/project-tree-type'; +} from '@/services/project/v-shared/types/project-tree-type'; +import { PROJECT_ROUTE_V1 } from '@/services/project/v1/routes/route-constant'; interface ProjectGroupSelectOptions { id: string; @@ -50,7 +50,7 @@ interface Props { isInitSelectedItem?: boolean; block?: boolean; styleType?: string; - appearanceType?: 'stack'; + appearanceType?: 'stack'|'badge'; showDeleteAllButton?: boolean; } @@ -253,7 +253,7 @@ const refreshProjectTree = async () => { const handleClickCreateButton = () => { window.open(SpaceRouter.router.resolve({ - name: PROJECT_ROUTE._NAME, + name: PROJECT_ROUTE_V1._NAME, ...(props.workspaceId ? { params: { workspaceId: props.workspaceId } } : {}), }).href); state.visibleMenu = false; @@ -325,7 +325,7 @@ watch(() => state._selectedProjectIds, (selectedProjectIds) => {