Skip to content

Commit 3a40764

Browse files
committed
feat: add composables for identity API clients
Signed-off-by: Wanjin Noh <[email protected]>
1 parent 1afc168 commit 3a40764

File tree

9 files changed

+291
-0
lines changed

9 files changed

+291
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';
2+
3+
import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
4+
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
5+
import type { DomainGetParameters } from '@/api-clients/identity/domain/schema/api-verbs/get';
6+
import type { DomainGetAuthInfoParams } from '@/api-clients/identity/domain/schema/api-verbs/get-auth-info';
7+
import type { DomainListParameters } from '@/api-clients/identity/domain/schema/api-verbs/list';
8+
import type { DomainModel } from '@/api-clients/identity/domain/schema/model';
9+
10+
11+
export const useDomainApi = () => {
12+
const domainQueryKey = useAPIQueryKey('identity', 'domain', 'get');
13+
const domainListQueryKey = useAPIQueryKey('identity', 'domain', 'list');
14+
15+
const actions = {
16+
get: SpaceConnector.clientV2.identity.domain.get<DomainGetParameters, DomainModel>,
17+
list: SpaceConnector.clientV2.identity.domain.list<DomainListParameters, ListResponse<DomainModel>>,
18+
getAuthInfo: SpaceConnector.clientV2.identity.domain.getAuthInfo<DomainGetAuthInfoParams, any>,
19+
};
20+
21+
return {
22+
domainQueryKey,
23+
domainListQueryKey,
24+
domainAPI: actions,
25+
};
26+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';
2+
3+
import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
4+
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
5+
import type { ProjectGroupAddUsersParameters } from '@/api-clients/identity/project-group/schema/api-verbs/add-users';
6+
import type { ProjectGroupChangeParentGroupParameters } from '@/api-clients/identity/project-group/schema/api-verbs/change-parent-group';
7+
import type { ProjectGroupCreateParameters } from '@/api-clients/identity/project-group/schema/api-verbs/create';
8+
import type { ProjectGroupDeleteParameters } from '@/api-clients/identity/project-group/schema/api-verbs/delete';
9+
import type { ProjectGroupGetParameters } from '@/api-clients/identity/project-group/schema/api-verbs/get';
10+
import type { ProjectGroupListParameters } from '@/api-clients/identity/project-group/schema/api-verbs/list';
11+
import type { ProjectGroupRemoveUsersParameters } from '@/api-clients/identity/project-group/schema/api-verbs/remove-users';
12+
import type { ProjectGroupUpdateParameters } from '@/api-clients/identity/project-group/schema/api-verbs/update';
13+
import type { ProjectGroupModel } from '@/api-clients/identity/project-group/schema/model';
14+
15+
16+
export const useProjectGroupApi = () => {
17+
const projectGroupQueryKey = useAPIQueryKey('identity', 'project-group', 'get');
18+
const projectGroupListQueryKey = useAPIQueryKey('identity', 'project-group', 'list');
19+
20+
const actions = {
21+
create: SpaceConnector.clientV2.identity.projectGroup.create<ProjectGroupCreateParameters, ProjectGroupModel>,
22+
update: SpaceConnector.clientV2.identity.projectGroup.update<ProjectGroupUpdateParameters, ProjectGroupModel>,
23+
delete: SpaceConnector.clientV2.identity.projectGroup.delete<ProjectGroupDeleteParameters>,
24+
get: SpaceConnector.clientV2.identity.projectGroup.get<ProjectGroupGetParameters, ProjectGroupModel>,
25+
list: SpaceConnector.clientV2.identity.projectGroup.list<ProjectGroupListParameters, ListResponse<ProjectGroupModel>>,
26+
addUsers: SpaceConnector.clientV2.identity.projectGroup.addUsers<ProjectGroupAddUsersParameters, ProjectGroupModel>,
27+
removeUsers: SpaceConnector.clientV2.identity.projectGroup.removeUsers<ProjectGroupRemoveUsersParameters, ProjectGroupModel>,
28+
changeParentGroup: SpaceConnector.clientV2.identity.projectGroup.changeParentGroup<ProjectGroupChangeParentGroupParameters, ProjectGroupModel>,
29+
};
30+
31+
return {
32+
projectGroupQueryKey,
33+
projectGroupListQueryKey,
34+
projectGroupAPI: actions,
35+
};
36+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';
2+
3+
import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
4+
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
5+
import type { ProjectAddUsersParameters } from '@/api-clients/identity/project/schema/api-verbs/add-users';
6+
import type { ProjectChangeProjectGroupParameters } from '@/api-clients/identity/project/schema/api-verbs/change-project-group';
7+
import type { ProjectCreateParameters } from '@/api-clients/identity/project/schema/api-verbs/create';
8+
import type { ProjectDeleteParameters } from '@/api-clients/identity/project/schema/api-verbs/delete';
9+
import type { ProjectGetParameters } from '@/api-clients/identity/project/schema/api-verbs/get';
10+
import type { ProjectListParameters } from '@/api-clients/identity/project/schema/api-verbs/list';
11+
import type { ProjectRemoveUsersParameters } from '@/api-clients/identity/project/schema/api-verbs/remove-users';
12+
import type { ProjectUpdateParameters } from '@/api-clients/identity/project/schema/api-verbs/udpate';
13+
import type { ProjectUpdateProjectTypeParameters } from '@/api-clients/identity/project/schema/api-verbs/update-project-type';
14+
import type { ProjectModel } from '@/api-clients/identity/project/schema/model';
15+
16+
17+
export const useProjectApi = () => {
18+
const projectQueryKey = useAPIQueryKey('identity', 'project', 'get');
19+
const projectListQueryKey = useAPIQueryKey('identity', 'project', 'list');
20+
21+
const actions = {
22+
create: SpaceConnector.clientV2.identity.project.create<ProjectCreateParameters, ProjectModel>,
23+
update: SpaceConnector.clientV2.identity.project.update<ProjectUpdateParameters, ProjectModel>,
24+
delete: SpaceConnector.clientV2.identity.project.delete<ProjectDeleteParameters>,
25+
get: SpaceConnector.clientV2.identity.project.get<ProjectGetParameters, ProjectModel>,
26+
list: SpaceConnector.clientV2.identity.project.list<ProjectListParameters, ListResponse<ProjectModel>>,
27+
addUsers: SpaceConnector.clientV2.identity.project.addUsers<ProjectAddUsersParameters, ProjectModel>,
28+
removeUsers: SpaceConnector.clientV2.identity.project.removeUsers<ProjectRemoveUsersParameters, ProjectModel>,
29+
changeProjectGroup: SpaceConnector.clientV2.identity.project.changeProjectGroup<ProjectChangeProjectGroupParameters, ProjectModel>,
30+
updateProjectType: SpaceConnector.clientV2.identity.project.updateProjectType<ProjectUpdateProjectTypeParameters, ProjectModel>,
31+
};
32+
33+
return {
34+
projectQueryKey,
35+
projectListQueryKey,
36+
projectAPI: actions,
37+
};
38+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';
2+
3+
import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
4+
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
5+
import type { ProviderCreateParameters } from '@/api-clients/identity/provider/schema/api-verbs/create';
6+
import type { ProviderDeleteParameters } from '@/api-clients/identity/provider/schema/api-verbs/delete';
7+
import type { ProviderGetParameters } from '@/api-clients/identity/provider/schema/api-verbs/get';
8+
import type { ProviderListParameters } from '@/api-clients/identity/provider/schema/api-verbs/list';
9+
import type { ProviderStatParameters } from '@/api-clients/identity/provider/schema/api-verbs/stat';
10+
import type { ProviderUpdateParameters } from '@/api-clients/identity/provider/schema/api-verbs/update';
11+
import type { ProviderModel } from '@/api-clients/identity/provider/schema/model';
12+
13+
14+
export const useProviderApi = () => {
15+
const providerQueryKey = useAPIQueryKey('identity', 'provider', 'get');
16+
const providerListQueryKey = useAPIQueryKey('identity', 'provider', 'list');
17+
18+
const actions = {
19+
create: SpaceConnector.clientV2.identity.provider.create<ProviderCreateParameters, ProviderModel>,
20+
update: SpaceConnector.clientV2.identity.provider.update<ProviderUpdateParameters, ProviderModel>,
21+
delete: SpaceConnector.clientV2.identity.provider.delete<ProviderDeleteParameters>,
22+
get: SpaceConnector.clientV2.identity.provider.get<ProviderGetParameters, ProviderModel>,
23+
list: SpaceConnector.clientV2.identity.provider.list<ProviderListParameters, ListResponse<ProviderModel>>,
24+
stat: SpaceConnector.clientV2.identity.provider.stat<ProviderStatParameters, any>,
25+
};
26+
27+
return {
28+
providerQueryKey,
29+
providerListQueryKey,
30+
providerAPI: actions,
31+
};
32+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';
2+
3+
import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
4+
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
5+
import type { ServiceAccountCreateParameters } from '@/api-clients/identity/service-account/schema/api-verbs/create';
6+
import type { ServiceAccountDeleteParameters } from '@/api-clients/identity/service-account/schema/api-verbs/detele';
7+
import type { ServiceAccountDeleteSecretDataParameters } from '@/api-clients/identity/service-account/schema/api-verbs/detele-secret-data';
8+
import type { ServiceAccountGetParameters } from '@/api-clients/identity/service-account/schema/api-verbs/get';
9+
import type { ServiceAccountListParameters } from '@/api-clients/identity/service-account/schema/api-verbs/list';
10+
import type { ServiceAccountStatParameters } from '@/api-clients/identity/service-account/schema/api-verbs/stat';
11+
import type { ServiceAccountUpdateParameters } from '@/api-clients/identity/service-account/schema/api-verbs/update';
12+
import type { ServiceAccountUpdateSecretDataParameters } from '@/api-clients/identity/service-account/schema/api-verbs/update-secret-data';
13+
import type { ServiceAccountModel } from '@/api-clients/identity/service-account/schema/model';
14+
15+
16+
export const useServiceAccountApi = () => {
17+
const serviceAccountQueryKey = useAPIQueryKey('identity', 'service-account', 'get');
18+
const serviceAccountListQueryKey = useAPIQueryKey('identity', 'service-account', 'list');
19+
20+
const actions = {
21+
create: SpaceConnector.clientV2.identity.serviceAccount.create<ServiceAccountCreateParameters, ServiceAccountModel>,
22+
update: SpaceConnector.clientV2.identity.serviceAccount.update<ServiceAccountUpdateParameters, ServiceAccountModel>,
23+
delete: SpaceConnector.clientV2.identity.serviceAccount.delete<ServiceAccountDeleteParameters>,
24+
get: SpaceConnector.clientV2.identity.serviceAccount.get<ServiceAccountGetParameters, ServiceAccountModel>,
25+
list: SpaceConnector.clientV2.identity.serviceAccount.list<ServiceAccountListParameters, ListResponse<ServiceAccountModel>>,
26+
stat: SpaceConnector.clientV2.identity.serviceAccount.stat<ServiceAccountStatParameters, any>,
27+
updateSecretData: SpaceConnector.clientV2.identity.serviceAccount.updateSecretData<ServiceAccountUpdateSecretDataParameters, ServiceAccountModel>,
28+
deleteSecretData: SpaceConnector.clientV2.identity.serviceAccount.deleteSecretData<ServiceAccountDeleteSecretDataParameters>,
29+
};
30+
31+
return {
32+
serviceAccountQueryKey,
33+
serviceAccountListQueryKey,
34+
serviceAccountAPI: actions,
35+
};
36+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';
2+
3+
import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
4+
import type { TokenGrantParameters } from '@/api-clients/identity/token/schema/api-verbs/grant';
5+
import type { TokenIssueParameters } from '@/api-clients/identity/token/schema/api-verbs/issue';
6+
import type { TokenIssueModel, TokenGrantModel } from '@/api-clients/identity/token/schema/model';
7+
8+
9+
export const useTokenApi = () => {
10+
const tokenQueryKey = useAPIQueryKey('identity', 'token', 'issue');
11+
const tokenGrantQueryKey = useAPIQueryKey('identity', 'token', 'grant');
12+
13+
const actions = {
14+
issue: SpaceConnector.clientV2.identity.token.issue<TokenIssueParameters, TokenIssueModel>,
15+
grant: SpaceConnector.clientV2.identity.token.grant<TokenGrantParameters, TokenGrantModel>,
16+
};
17+
18+
return {
19+
tokenQueryKey,
20+
tokenGrantQueryKey,
21+
tokenAPI: actions,
22+
};
23+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';
2+
3+
import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
4+
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
5+
import type { TrustedAccountCreateParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/create';
6+
import type { TrustedAccountDeleteParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/detele';
7+
import type { TrustedAccountGetParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/get';
8+
import type { TrustedAccountListParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/list';
9+
import type { TrustedAccountStatParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/stat';
10+
import type { TrustedAccountUpdateParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/update';
11+
import type { TrustedAccountUpdateSecretDataParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/update-secret-data';
12+
import type { TrustedAccountModel } from '@/api-clients/identity/trusted-account/schema/model';
13+
14+
15+
export const useTrustedAccountApi = () => {
16+
const trustedAccountQueryKey = useAPIQueryKey('identity', 'trusted-account', 'get');
17+
const trustedAccountListQueryKey = useAPIQueryKey('identity', 'trusted-account', 'list');
18+
19+
const actions = {
20+
create: SpaceConnector.clientV2.identity.trustedAccount.create<TrustedAccountCreateParameters, TrustedAccountModel>,
21+
update: SpaceConnector.clientV2.identity.trustedAccount.update<TrustedAccountUpdateParameters, TrustedAccountModel>,
22+
delete: SpaceConnector.clientV2.identity.trustedAccount.delete<TrustedAccountDeleteParameters>,
23+
get: SpaceConnector.clientV2.identity.trustedAccount.get<TrustedAccountGetParameters, TrustedAccountModel>,
24+
list: SpaceConnector.clientV2.identity.trustedAccount.list<TrustedAccountListParameters, ListResponse<TrustedAccountModel>>,
25+
stat: SpaceConnector.clientV2.identity.trustedAccount.stat<TrustedAccountStatParameters, any>,
26+
updateSecretData: SpaceConnector.clientV2.identity.trustedAccount.updateSecretData<TrustedAccountUpdateSecretDataParameters, TrustedAccountModel>,
27+
};
28+
29+
return {
30+
trustedAccountQueryKey,
31+
trustedAccountListQueryKey,
32+
trustedAccountAPI: actions,
33+
};
34+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';
2+
3+
import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
4+
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
5+
import type { UserGroupAddUsersParameters } from '@/api-clients/identity/user-group/schema/api-verbs/add-users';
6+
import type { UserGroupCreateParameters } from '@/api-clients/identity/user-group/schema/api-verbs/create';
7+
import type { UserGroupDeleteUserGroupParameters } from '@/api-clients/identity/user-group/schema/api-verbs/delete';
8+
import type { UserGroupGetParameters } from '@/api-clients/identity/user-group/schema/api-verbs/get';
9+
import type { UserGroupListParameters } from '@/api-clients/identity/user-group/schema/api-verbs/list';
10+
import type { UserGroupRemoveUsersParameters } from '@/api-clients/identity/user-group/schema/api-verbs/remove-users';
11+
import type { UserGroupUpdateParameters } from '@/api-clients/identity/user-group/schema/api-verbs/update';
12+
import type { UserGroupModel } from '@/api-clients/identity/user-group/schema/model';
13+
14+
15+
export const useUserGroupApi = () => {
16+
const userGroupQueryKey = useAPIQueryKey('identity', 'user-group', 'get');
17+
const userGroupListQueryKey = useAPIQueryKey('identity', 'user-group', 'list');
18+
19+
const actions = {
20+
create: SpaceConnector.clientV2.identity.userGroup.create<UserGroupCreateParameters, UserGroupModel>,
21+
update: SpaceConnector.clientV2.identity.userGroup.update<UserGroupUpdateParameters, UserGroupModel>,
22+
delete: SpaceConnector.clientV2.identity.userGroup.delete<UserGroupDeleteUserGroupParameters>,
23+
get: SpaceConnector.clientV2.identity.userGroup.get<UserGroupGetParameters, UserGroupModel>,
24+
list: SpaceConnector.clientV2.identity.userGroup.list<UserGroupListParameters, ListResponse<UserGroupModel>>,
25+
addUsers: SpaceConnector.clientV2.identity.userGroup.addUsers<UserGroupAddUsersParameters, UserGroupModel>,
26+
removeUsers: SpaceConnector.clientV2.identity.userGroup.removeUsers<UserGroupRemoveUsersParameters, UserGroupModel>,
27+
};
28+
29+
return {
30+
userGroupQueryKey,
31+
userGroupListQueryKey,
32+
userGroupAPI: actions,
33+
};
34+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';
2+
3+
import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
4+
import type { UserProfileConfirmEmailParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/confirm-email';
5+
import type { UserProfileConfirmMfaParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/confirm-mfa';
6+
import type { UserProfileEnableMfaParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/enable-mfa';
7+
import type { UserProfileGetWorkspacesParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/get-workspaces';
8+
import type { UserProfileResetPasswordParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/reset-password';
9+
import type { UserProfileUpdateParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/update';
10+
import type { UserProfileUpdatePasswordParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/update-password';
11+
import type { UserProfileVerifyEmailParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/verify-email';
12+
13+
14+
export const useUserProfileApi = () => {
15+
const userProfileQueryKey = useAPIQueryKey('identity', 'user-profile', 'get');
16+
17+
const actions = {
18+
update: SpaceConnector.clientV2.identity.userProfile.update<UserProfileUpdateParameters, any>,
19+
updatePassword: SpaceConnector.clientV2.identity.userProfile.updatePassword<UserProfileUpdatePasswordParameters, any>,
20+
resetPassword: SpaceConnector.clientV2.identity.userProfile.resetPassword<UserProfileResetPasswordParameters, any>,
21+
verifyEmail: SpaceConnector.clientV2.identity.userProfile.verifyEmail<UserProfileVerifyEmailParameters, any>,
22+
confirmEmail: SpaceConnector.clientV2.identity.userProfile.confirmEmail<UserProfileConfirmEmailParameters, any>,
23+
enableMfa: SpaceConnector.clientV2.identity.userProfile.enableMfa<UserProfileEnableMfaParameters, any>,
24+
confirmMfa: SpaceConnector.clientV2.identity.userProfile.confirmMfa<UserProfileConfirmMfaParameters, any>,
25+
getWorkspaces: SpaceConnector.clientV2.identity.userProfile.getWorkspaces<UserProfileGetWorkspacesParameters, any>,
26+
};
27+
28+
return {
29+
userProfileQueryKey,
30+
userProfileAPI: actions,
31+
};
32+
};

0 commit comments

Comments
 (0)