Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import type { ComputedRef } from 'vue';
import { computed, reactive } from 'vue';


import type { QueryKey } from '@tanstack/vue-query';

import type {
ResourceName, ServiceName, Verb,
} from '@/api-clients/_common/types/query-key-type';


import { useAppContextStore } from '@/store/app-context/app-context-store';
import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store';

Expand Down Expand Up @@ -40,7 +35,7 @@ export const useAPIQueryKey = <S extends ServiceName, R extends ResourceName<S>,
resource: R,
verb: V,
additionalGlobalParams?: Partial<GlobalQueryParams>,
): ComputedRef<QueryKey> => {
) => {
const appContextStore = useAppContextStore();
const userWorkspaceStore = useUserWorkspaceStore();

Expand All @@ -55,5 +50,5 @@ export const useAPIQueryKey = <S extends ServiceName, R extends ResourceName<S>,
...additionalGlobalParams,
});

return computed<QueryKey>(() => [service, resource, verb, { ...globalQueryParams }]);
return computed(() => [service, resource, verb, { ...globalQueryParams }]);
};
146 changes: 146 additions & 0 deletions apps/web/src/api-clients/_common/constants/api-doc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,152 @@
*/

export const API_DOC = {
identity: {
agent: [
'create',
'delete',
'get',
'list',
'update',
],
app: [
'create',
'delete',
'get',
'list',
'update',
],
domain: [
'create',
'delete',
'get',
'list',
'update',
],
endpoint: [
'create',
'delete',
'get',
'list',
'update',
],
job: [
'get',
'list',
],
package: [
'change-order',
'create',
'delete',
'get',
'list',
'set-default',
'update',
],
project: [
'create',
'delete',
'get',
'list',
'update',
],
'project-group': [
'create',
'delete',
'get',
'list',
'update',
],
provider: [
'create',
'delete',
'get',
'list',
'update',
],
role: [
'create',
'delete',
'get',
'list',
'update',
],
'role-binding': [
'create',
'delete',
'get',
'list',
'update',
],
schema: [
'get',
'list',
],
'service-account': [
'create',
'delete',
'get',
'list',
'update',
],
token: [
'issue',
'refresh',
],
'trusted-account': [
'create',
'delete',
'get',
'list',
'update',
],
user: [
'create',
'delete',
'get',
'list',
'update',
],
'user-group': [
'create',
'delete',
'get',
'list',
'update',
],
'user-profile': [
'get',
'update',
],
workspace: [
'create',
'delete',
'get',
'list',
'update',
],
'workspace-group': [
'create',
'delete',
'get',
'list',
'update',
],
'workspace-group-user': [
'create',
'delete',
'get',
'list',
'update',
],
'workspace-user': [
'create',
'delete',
'get',
'list',
'update',
],
},
'cost-analysis': {
budget: [
'create',
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import type { ComputedRef } from 'vue';

import type { QueryKey } from '@tanstack/vue-query';

import { SpaceConnector } from '@cloudforet/core-lib/space-connector';

import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
import type { PackageChangeOrderParameters } from '@/api-clients/identity/package/schema/api-verbs/change-order';
import type { PackageCreateParameters } from '@/api-clients/identity/package/schema/api-verbs/create';
import type { PackageDeleteParameters } from '@/api-clients/identity/package/schema/api-verbs/delete';
import type { PackageGetParameters } from '@/api-clients/identity/package/schema/api-verbs/get';
import type { PackageListParameters } from '@/api-clients/identity/package/schema/api-verbs/list';
import type { PackageSetDefaultParameters } from '@/api-clients/identity/package/schema/api-verbs/set-default';
import type { PackageUpdateParameters } from '@/api-clients/identity/package/schema/api-verbs/update';
import type { PackageModel } from '@/api-clients/identity/package/schema/model';

interface UsePackageApiReturn {
packageQueryKey: ComputedRef<QueryKey>;
packageListQueryKey: ComputedRef<QueryKey>;
packageAPI: {
create: (params: PackageCreateParameters) => Promise<PackageModel>;
update: (params: PackageUpdateParameters) => Promise<PackageModel>;
delete: (params: PackageDeleteParameters) => Promise<void>;
get: (params: PackageGetParameters) => Promise<PackageModel>;
list: (params: PackageListParameters) => Promise<ListResponse<PackageModel>>;
setDefault: (params: PackageSetDefaultParameters) => Promise<PackageModel>;
changeOrder: (params: PackageChangeOrderParameters) => Promise<PackageModel>;
}
}

export const usePackageApi = (): UsePackageApiReturn => {
const packageQueryKey = useAPIQueryKey('identity', 'package', 'get');
const packageListQueryKey = useAPIQueryKey('identity', 'package', 'list');

const actions = {
async create(params: PackageCreateParameters) {
return SpaceConnector.clientV2.identity.package.create<PackageCreateParameters, PackageModel>(params);
},
async update(params: PackageUpdateParameters) {
return SpaceConnector.clientV2.identity.package.update<PackageUpdateParameters, PackageModel>(params);
},
async delete(params: PackageDeleteParameters) {
return SpaceConnector.clientV2.identity.package.delete<PackageDeleteParameters>(params);
},
async get(params: PackageGetParameters) {
return SpaceConnector.clientV2.identity.package.get<PackageGetParameters, PackageModel>(params);
},
async list(params: PackageListParameters) {
return SpaceConnector.clientV2.identity.package.list<PackageListParameters, ListResponse<PackageModel>>(params);
},
async setDefault(params: PackageSetDefaultParameters) {
return SpaceConnector.clientV2.identity.package.setDefault<PackageSetDefaultParameters, PackageModel>(params);
},
async changeOrder(params: PackageChangeOrderParameters) {
return SpaceConnector.clientV2.identity.package.changeOrder<PackageChangeOrderParameters, PackageModel>(params);
},
};

return {
packageQueryKey,
packageListQueryKey,
packageAPI: actions,
};
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';

import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
import type { WorkspaceAddPackageParameters } from '@/api-clients/identity/workspace/api-verbs/add-package';
import type { WorkspaceChangeWorkspaceGroupParameters } from '@/api-clients/identity/workspace/api-verbs/change-workspace-group';
import type { WorkspaceCreateParameters } from '@/api-clients/identity/workspace/api-verbs/create';
import type { WorkspaceDeleteParameters } from '@/api-clients/identity/workspace/api-verbs/delete';
import type { WorkspaceListParameters } from '@/api-clients/identity/workspace/api-verbs/list';
import type { WorkspaceRemovePackageParameters } from '@/api-clients/identity/workspace/api-verbs/remove-package';
import type { WorkspaceUpdateParameters } from '@/api-clients/identity/workspace/api-verbs/update';
import type { WorkspaceModel } from '@/api-clients/identity/workspace/model';

export const useWorkspaceApi = () => {
const workspaceQueryKey = useAPIQueryKey('identity', 'workspace', 'get');
const workspaceListQueryKey = useAPIQueryKey('identity', 'workspace', 'list');

const actions = {
async create(params: WorkspaceCreateParameters) {
return SpaceConnector.clientV2.identity.workspace.create<WorkspaceCreateParameters, WorkspaceModel>(params);
},
async update(params: WorkspaceUpdateParameters) {
return SpaceConnector.clientV2.identity.workspace.update<WorkspaceUpdateParameters, WorkspaceModel>(params);
},
async delete(params: WorkspaceDeleteParameters) {
return SpaceConnector.clientV2.identity.workspace.delete<WorkspaceDeleteParameters>(params);
},
async list(params: WorkspaceListParameters) {
return SpaceConnector.clientV2.identity.workspace.list<WorkspaceListParameters, ListResponse<WorkspaceModel>>(params);
},
async addPackage(params: WorkspaceAddPackageParameters) {
return SpaceConnector.clientV2.identity.workspace.addPackage<WorkspaceAddPackageParameters, WorkspaceModel>(params);
},
async removePackage(params: WorkspaceRemovePackageParameters) {
return SpaceConnector.clientV2.identity.workspace.removePackage<WorkspaceRemovePackageParameters, WorkspaceModel>(params);
},
async changeWorkspaceGroup(params: WorkspaceChangeWorkspaceGroupParameters) {
return SpaceConnector.clientV2.identity.workspace.changeWorkspaceGroup<WorkspaceChangeWorkspaceGroupParameters, WorkspaceModel>(params);
},
};

return {
workspaceQueryKey,
workspaceListQueryKey,
workspaceAPI: actions,
};
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import type { ComputedRef } from 'vue';

import type { QueryKey } from '@tanstack/vue-query';

import { SpaceConnector } from '@cloudforet/core-lib/space-connector';

import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
import type { CommentCreateParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/create';
import type { CommentDeleteParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/delete';
import type { CommentGetParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/get';
import type { CommentListParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/list';
import type { CommentUpdateParameters } from '@/api-clients/opsflow/comment/schema/api-verbs/update';
import type { CommentModel } from '@/api-clients/opsflow/comment/schema/model';

interface UseCommentApiReturn {
commentQueryKey: ComputedRef<QueryKey>;
commentListQueryKey: ComputedRef<QueryKey>;
commentAPI: {
create: (params: CommentCreateParameters) => Promise<CommentModel>;
update: (params: CommentUpdateParameters) => Promise<CommentModel>;
delete: (params: CommentDeleteParameters) => Promise<void>;
get: (params: CommentGetParameters) => Promise<CommentModel>;
list: (params: CommentListParameters) => Promise<ListResponse<CommentModel>>;
}
}

export const useCommentApi = (): UseCommentApiReturn => {
const commentQueryKey = useAPIQueryKey('opsflow', 'comment', 'get');
const commentListQueryKey = useAPIQueryKey('opsflow', 'comment', 'list');

const actions = {
async create(params: CommentCreateParameters) {
return SpaceConnector.clientV2.opsflow.comment.create<CommentCreateParameters, CommentModel>(params);
},
async update(params: CommentUpdateParameters) {
return SpaceConnector.clientV2.opsflow.comment.update<CommentUpdateParameters, CommentModel>(params);
},
async delete(params: CommentDeleteParameters) {
return SpaceConnector.clientV2.opsflow.comment.delete<CommentDeleteParameters>(params);
},
async get(params: CommentGetParameters) {
return SpaceConnector.clientV2.opsflow.comment.get<CommentGetParameters, CommentModel>(params);
},
async list(params: CommentListParameters) {
return SpaceConnector.clientV2.opsflow.comment.list<CommentListParameters, ListResponse<CommentModel>>(params);
},
};

return {
commentQueryKey,
commentListQueryKey,
commentAPI: actions,
};
};
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
5 changes: 3 additions & 2 deletions apps/web/src/api-clients/opsflow/comment/schema/model.ts
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Loading
Loading