@ph-cms/client-sdk-admin 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +101 -0
- package/dist/hooks/useHierarchy.d.ts +39 -1
- package/dist/hooks/useHierarchy.js +56 -1
- package/dist/hooks/usePolicy.d.ts +25 -1
- package/dist/hooks/usePolicy.js +34 -1
- package/dist/hooks/useTerms.d.ts +16 -0
- package/dist/hooks/useTerms.js +23 -1
- package/package.json +3 -3
- package/src/hooks/useHierarchy.ts +60 -2
- package/src/hooks/usePolicy.ts +36 -2
- package/src/hooks/useTerms.ts +24 -1
package/README.md
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# @ph-cms/client-sdk-admin
|
|
2
|
+
|
|
3
|
+
Admin-only PH-CMS Client SDK.
|
|
4
|
+
|
|
5
|
+
This package provides:
|
|
6
|
+
|
|
7
|
+
- A typed API client for administrative endpoints
|
|
8
|
+
- React context and hooks for consuming the admin client in UI code
|
|
9
|
+
- **Integrated React Query support** (from v0.1.1)
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @ph-cms/client-sdk-admin
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
> **Note:** `@tanstack/react-query` is a direct dependency from v0.1.1. You no longer need to install it manually unless you use it in your own application code.
|
|
18
|
+
|
|
19
|
+
## Usage (Core SDK)
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { PHCMSAdminClient } from '@ph-cms/client-sdk-admin';
|
|
23
|
+
|
|
24
|
+
const client = new PHCMSAdminClient({
|
|
25
|
+
baseURL: 'https://api.example.com',
|
|
26
|
+
apiKey: 'your-admin-api-key', // if using API key auth
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// Use the modules directly
|
|
30
|
+
const users = await client.user.list({
|
|
31
|
+
page: 1,
|
|
32
|
+
limit: 20,
|
|
33
|
+
});
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## React Usage (v0.1.1+)
|
|
37
|
+
|
|
38
|
+
From version 0.1.1, `PHCMSAdminProvider` automatically includes a `QueryClientProvider`. You don't need to wrap your app with `QueryClientProvider` manually to use admin-sdk hooks.
|
|
39
|
+
|
|
40
|
+
### Basic Setup
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
import { PHCMSAdminProvider } from '@ph-cms/client-sdk-admin';
|
|
44
|
+
import { adminClient } from './lib/sdk'; // Your pre-configured admin client
|
|
45
|
+
|
|
46
|
+
export function App() {
|
|
47
|
+
return (
|
|
48
|
+
<PHCMSAdminProvider client={adminClient}>
|
|
49
|
+
<YourAdminComponents />
|
|
50
|
+
</PHCMSAdminProvider>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Using Hooks
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
import { useUserList, usePolicy } from '@ph-cms/client-sdk-admin';
|
|
59
|
+
|
|
60
|
+
function UserManagement() {
|
|
61
|
+
const { data: users, isLoading } = useUserList();
|
|
62
|
+
|
|
63
|
+
if (isLoading) return <div>Loading users...</div>;
|
|
64
|
+
|
|
65
|
+
return (
|
|
66
|
+
<div>
|
|
67
|
+
<h1>User Management</h1>
|
|
68
|
+
<ul>
|
|
69
|
+
{users?.items.map(user => (
|
|
70
|
+
<li key={user.uid}>{user.email} ({user.role})</li>
|
|
71
|
+
))}
|
|
72
|
+
</ul>
|
|
73
|
+
</div>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Custom QueryClient (Optional)
|
|
79
|
+
|
|
80
|
+
If your application already uses React Query and you want to share the cache/settings:
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
84
|
+
import { PHCMSAdminProvider } from '@ph-cms/client-sdk-admin';
|
|
85
|
+
|
|
86
|
+
const queryClient = new QueryClient();
|
|
87
|
+
const adminClient = new PHCMSAdminClient({ baseURL: '...' });
|
|
88
|
+
|
|
89
|
+
export function App() {
|
|
90
|
+
return (
|
|
91
|
+
<PHCMSAdminProvider client={adminClient} queryClient={queryClient}>
|
|
92
|
+
{/* Both your app and Admin SDK hooks will use the same queryClient */}
|
|
93
|
+
<YourAdminComponents />
|
|
94
|
+
</PHCMSAdminProvider>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## License
|
|
100
|
+
|
|
101
|
+
MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ListHierarchyQuery } from '@ph-cms/api-contract-admin';
|
|
1
|
+
import { AddHierarchyItemRequest, ListHierarchyQuery, UpdateHierarchySetRequest } from '@ph-cms/api-contract-admin';
|
|
2
2
|
export declare const hierarchyKeys: {
|
|
3
3
|
all: readonly ["hierarchy"];
|
|
4
4
|
lists: () => readonly ["hierarchy", "list"];
|
|
@@ -32,3 +32,41 @@ export declare const useHierarchyItems: (setUid?: string, enabled?: boolean) =>
|
|
|
32
32
|
is_root: boolean;
|
|
33
33
|
is_geo: boolean;
|
|
34
34
|
}[], Error>;
|
|
35
|
+
export declare const useCreateHierarchySet: () => import("@tanstack/react-query").UseMutationResult<{
|
|
36
|
+
name: string;
|
|
37
|
+
created_at: string;
|
|
38
|
+
updated_at: string;
|
|
39
|
+
uid: string;
|
|
40
|
+
description: string | null;
|
|
41
|
+
}, Error, {
|
|
42
|
+
name: string;
|
|
43
|
+
description?: string | undefined;
|
|
44
|
+
}, unknown>;
|
|
45
|
+
export declare const useUpdateHierarchySet: () => import("@tanstack/react-query").UseMutationResult<{
|
|
46
|
+
name: string;
|
|
47
|
+
created_at: string;
|
|
48
|
+
updated_at: string;
|
|
49
|
+
uid: string;
|
|
50
|
+
description: string | null;
|
|
51
|
+
}, Error, {
|
|
52
|
+
uid: string;
|
|
53
|
+
data: UpdateHierarchySetRequest;
|
|
54
|
+
}, unknown>;
|
|
55
|
+
export declare const useDeleteHierarchySet: () => import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
|
|
56
|
+
export declare const useAddHierarchyItem: () => import("@tanstack/react-query").UseMutationResult<{
|
|
57
|
+
created_at: string;
|
|
58
|
+
uid: string;
|
|
59
|
+
description: string | null;
|
|
60
|
+
setUid: string;
|
|
61
|
+
parent_type: string | null;
|
|
62
|
+
child_type: string;
|
|
63
|
+
is_root: boolean;
|
|
64
|
+
is_geo: boolean;
|
|
65
|
+
}, Error, {
|
|
66
|
+
setUid: string;
|
|
67
|
+
data: AddHierarchyItemRequest;
|
|
68
|
+
}, unknown>;
|
|
69
|
+
export declare const useRemoveHierarchyItem: () => import("@tanstack/react-query").UseMutationResult<void, Error, {
|
|
70
|
+
setUid: string;
|
|
71
|
+
itemUid: string;
|
|
72
|
+
}, unknown>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useHierarchyItems = exports.useHierarchyList = exports.hierarchyKeys = void 0;
|
|
3
|
+
exports.useRemoveHierarchyItem = exports.useAddHierarchyItem = exports.useDeleteHierarchySet = exports.useUpdateHierarchySet = exports.useCreateHierarchySet = exports.useHierarchyItems = exports.useHierarchyList = exports.hierarchyKeys = void 0;
|
|
4
4
|
const react_query_1 = require("@tanstack/react-query");
|
|
5
5
|
const context_1 = require("../context");
|
|
6
6
|
exports.hierarchyKeys = {
|
|
@@ -29,3 +29,58 @@ const useHierarchyItems = (setUid, enabled = true) => {
|
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
31
|
exports.useHierarchyItems = useHierarchyItems;
|
|
32
|
+
const useCreateHierarchySet = () => {
|
|
33
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
34
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
35
|
+
return (0, react_query_1.useMutation)({
|
|
36
|
+
mutationFn: (data) => client.hierarchy.create(data),
|
|
37
|
+
onSuccess: () => {
|
|
38
|
+
queryClient.invalidateQueries({ queryKey: exports.hierarchyKeys.lists() });
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
exports.useCreateHierarchySet = useCreateHierarchySet;
|
|
43
|
+
const useUpdateHierarchySet = () => {
|
|
44
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
45
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
46
|
+
return (0, react_query_1.useMutation)({
|
|
47
|
+
mutationFn: ({ uid, data }) => client.hierarchy.update(uid, data),
|
|
48
|
+
onSuccess: () => {
|
|
49
|
+
queryClient.invalidateQueries({ queryKey: exports.hierarchyKeys.lists() });
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
exports.useUpdateHierarchySet = useUpdateHierarchySet;
|
|
54
|
+
const useDeleteHierarchySet = () => {
|
|
55
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
56
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
57
|
+
return (0, react_query_1.useMutation)({
|
|
58
|
+
mutationFn: (uid) => client.hierarchy.delete(uid),
|
|
59
|
+
onSuccess: () => {
|
|
60
|
+
queryClient.invalidateQueries({ queryKey: exports.hierarchyKeys.lists() });
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
exports.useDeleteHierarchySet = useDeleteHierarchySet;
|
|
65
|
+
const useAddHierarchyItem = () => {
|
|
66
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
67
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
68
|
+
return (0, react_query_1.useMutation)({
|
|
69
|
+
mutationFn: ({ setUid, data }) => client.hierarchy.addItem(setUid, data),
|
|
70
|
+
onSuccess: (_, variables) => {
|
|
71
|
+
queryClient.invalidateQueries({ queryKey: exports.hierarchyKeys.itemList(variables.setUid) });
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
exports.useAddHierarchyItem = useAddHierarchyItem;
|
|
76
|
+
const useRemoveHierarchyItem = () => {
|
|
77
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
78
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
79
|
+
return (0, react_query_1.useMutation)({
|
|
80
|
+
mutationFn: ({ setUid, itemUid }) => client.hierarchy.removeItem(setUid, itemUid),
|
|
81
|
+
onSuccess: (_, variables) => {
|
|
82
|
+
queryClient.invalidateQueries({ queryKey: exports.hierarchyKeys.itemList(variables.setUid) });
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
exports.useRemoveHierarchyItem = useRemoveHierarchyItem;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ListPolicyQuery } from '@ph-cms/api-contract-admin';
|
|
1
|
+
import { ListPolicyQuery, UpdatePermissionPolicySetRequest } from '@ph-cms/api-contract-admin';
|
|
2
2
|
export declare const policyKeys: {
|
|
3
3
|
all: readonly ["policy"];
|
|
4
4
|
lists: () => readonly ["policy", "list"];
|
|
@@ -21,3 +21,27 @@ export declare const usePolicyList: (params?: ListPolicyQuery) => import("@tanst
|
|
|
21
21
|
limit: number;
|
|
22
22
|
totalPages: number;
|
|
23
23
|
}, Error>;
|
|
24
|
+
export declare const useCreatePolicySet: () => import("@tanstack/react-query").UseMutationResult<{
|
|
25
|
+
name: string;
|
|
26
|
+
created_at: string;
|
|
27
|
+
updated_at: string;
|
|
28
|
+
uid: string;
|
|
29
|
+
description: string | null;
|
|
30
|
+
policy: Record<string, any>;
|
|
31
|
+
}, Error, {
|
|
32
|
+
name: string;
|
|
33
|
+
policy: Record<string, any>;
|
|
34
|
+
description?: string | undefined;
|
|
35
|
+
}, unknown>;
|
|
36
|
+
export declare const useUpdatePolicySet: () => import("@tanstack/react-query").UseMutationResult<{
|
|
37
|
+
name: string;
|
|
38
|
+
created_at: string;
|
|
39
|
+
updated_at: string;
|
|
40
|
+
uid: string;
|
|
41
|
+
description: string | null;
|
|
42
|
+
policy: Record<string, any>;
|
|
43
|
+
}, Error, {
|
|
44
|
+
uid: string;
|
|
45
|
+
data: UpdatePermissionPolicySetRequest;
|
|
46
|
+
}, unknown>;
|
|
47
|
+
export declare const useDeletePolicySet: () => import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
|
package/dist/hooks/usePolicy.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.usePolicyList = exports.policyKeys = void 0;
|
|
3
|
+
exports.useDeletePolicySet = exports.useUpdatePolicySet = exports.useCreatePolicySet = exports.usePolicyList = exports.policyKeys = void 0;
|
|
4
4
|
const react_query_1 = require("@tanstack/react-query");
|
|
5
5
|
const context_1 = require("../context");
|
|
6
6
|
exports.policyKeys = {
|
|
@@ -17,3 +17,36 @@ const usePolicyList = (params) => {
|
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
19
|
exports.usePolicyList = usePolicyList;
|
|
20
|
+
const useCreatePolicySet = () => {
|
|
21
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
22
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
23
|
+
return (0, react_query_1.useMutation)({
|
|
24
|
+
mutationFn: (data) => client.policy.create(data),
|
|
25
|
+
onSuccess: () => {
|
|
26
|
+
queryClient.invalidateQueries({ queryKey: exports.policyKeys.lists() });
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
exports.useCreatePolicySet = useCreatePolicySet;
|
|
31
|
+
const useUpdatePolicySet = () => {
|
|
32
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
33
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
34
|
+
return (0, react_query_1.useMutation)({
|
|
35
|
+
mutationFn: ({ uid, data }) => client.policy.update(uid, data),
|
|
36
|
+
onSuccess: () => {
|
|
37
|
+
queryClient.invalidateQueries({ queryKey: exports.policyKeys.lists() });
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
exports.useUpdatePolicySet = useUpdatePolicySet;
|
|
42
|
+
const useDeletePolicySet = () => {
|
|
43
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
44
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
45
|
+
return (0, react_query_1.useMutation)({
|
|
46
|
+
mutationFn: (uid) => client.policy.delete(uid),
|
|
47
|
+
onSuccess: () => {
|
|
48
|
+
queryClient.invalidateQueries({ queryKey: exports.policyKeys.lists() });
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
exports.useDeletePolicySet = useDeletePolicySet;
|
package/dist/hooks/useTerms.d.ts
CHANGED
|
@@ -24,3 +24,19 @@ export declare const useTermsList: (params?: ListTermsQuery) => import("@tanstac
|
|
|
24
24
|
limit: number;
|
|
25
25
|
totalPages: number;
|
|
26
26
|
}, Error>;
|
|
27
|
+
export declare const useCreateTerm: () => import("@tanstack/react-query").UseMutationResult<{
|
|
28
|
+
code: string;
|
|
29
|
+
title: string;
|
|
30
|
+
content: string;
|
|
31
|
+
id: number;
|
|
32
|
+
version: string;
|
|
33
|
+
isActive: boolean;
|
|
34
|
+
createdAt: string;
|
|
35
|
+
}, Error, {
|
|
36
|
+
code: string;
|
|
37
|
+
content: string;
|
|
38
|
+
title: string;
|
|
39
|
+
version: string;
|
|
40
|
+
isActive: boolean;
|
|
41
|
+
}, unknown>;
|
|
42
|
+
export declare const useDisableTerm: () => import("@tanstack/react-query").UseMutationResult<void, Error, number, unknown>;
|
package/dist/hooks/useTerms.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useTermsList = exports.termsKeys = void 0;
|
|
3
|
+
exports.useDisableTerm = exports.useCreateTerm = exports.useTermsList = exports.termsKeys = void 0;
|
|
4
4
|
const react_query_1 = require("@tanstack/react-query");
|
|
5
5
|
const context_1 = require("../context");
|
|
6
6
|
exports.termsKeys = {
|
|
@@ -17,3 +17,25 @@ const useTermsList = (params) => {
|
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
19
|
exports.useTermsList = useTermsList;
|
|
20
|
+
const useCreateTerm = () => {
|
|
21
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
22
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
23
|
+
return (0, react_query_1.useMutation)({
|
|
24
|
+
mutationFn: (data) => client.terms.create(data),
|
|
25
|
+
onSuccess: () => {
|
|
26
|
+
queryClient.invalidateQueries({ queryKey: exports.termsKeys.lists() });
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
exports.useCreateTerm = useCreateTerm;
|
|
31
|
+
const useDisableTerm = () => {
|
|
32
|
+
const client = (0, context_1.usePHCMSAdmin)();
|
|
33
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
34
|
+
return (0, react_query_1.useMutation)({
|
|
35
|
+
mutationFn: (id) => client.terms.disable(id),
|
|
36
|
+
onSuccess: () => {
|
|
37
|
+
queryClient.invalidateQueries({ queryKey: exports.termsKeys.lists() });
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
exports.useDisableTerm = useDisableTerm;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ph-cms/client-sdk-admin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Admin-only PH-CMS Client SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
"@tanstack/react-query": "^5.0.0",
|
|
12
12
|
"axios": "^1.6.0",
|
|
13
13
|
"zod": "^3.22.4",
|
|
14
|
-
"@ph-cms/client-sdk": "0.1.
|
|
14
|
+
"@ph-cms/client-sdk": "0.1.8",
|
|
15
15
|
"@ph-cms/api-contract-admin": "0.1.0",
|
|
16
|
-
"@ph-cms/api-contract": "0.1.
|
|
16
|
+
"@ph-cms/api-contract": "0.1.1"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
19
|
"react": ">=18.0.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useQuery } from '@tanstack/react-query';
|
|
1
|
+
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
2
2
|
import { usePHCMSAdmin } from '../context';
|
|
3
|
-
import { ListHierarchyQuery } from '@ph-cms/api-contract-admin';
|
|
3
|
+
import { AddHierarchyItemRequest, CreateHierarchySetRequest, ListHierarchyQuery, UpdateHierarchySetRequest } from '@ph-cms/api-contract-admin';
|
|
4
4
|
|
|
5
5
|
export const hierarchyKeys = {
|
|
6
6
|
all: ['hierarchy'] as const,
|
|
@@ -28,3 +28,61 @@ export const useHierarchyItems = (setUid?: string, enabled = true) => {
|
|
|
28
28
|
enabled: enabled && !!setUid,
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
|
+
|
|
32
|
+
export const useCreateHierarchySet = () => {
|
|
33
|
+
const client = usePHCMSAdmin();
|
|
34
|
+
const queryClient = useQueryClient();
|
|
35
|
+
return useMutation({
|
|
36
|
+
mutationFn: (data: CreateHierarchySetRequest) => client.hierarchy.create(data),
|
|
37
|
+
onSuccess: () => {
|
|
38
|
+
queryClient.invalidateQueries({ queryKey: hierarchyKeys.lists() });
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const useUpdateHierarchySet = () => {
|
|
44
|
+
const client = usePHCMSAdmin();
|
|
45
|
+
const queryClient = useQueryClient();
|
|
46
|
+
return useMutation({
|
|
47
|
+
mutationFn: ({ uid, data }: { uid: string; data: UpdateHierarchySetRequest }) =>
|
|
48
|
+
client.hierarchy.update(uid, data),
|
|
49
|
+
onSuccess: () => {
|
|
50
|
+
queryClient.invalidateQueries({ queryKey: hierarchyKeys.lists() });
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export const useDeleteHierarchySet = () => {
|
|
56
|
+
const client = usePHCMSAdmin();
|
|
57
|
+
const queryClient = useQueryClient();
|
|
58
|
+
return useMutation({
|
|
59
|
+
mutationFn: (uid: string) => client.hierarchy.delete(uid),
|
|
60
|
+
onSuccess: () => {
|
|
61
|
+
queryClient.invalidateQueries({ queryKey: hierarchyKeys.lists() });
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export const useAddHierarchyItem = () => {
|
|
67
|
+
const client = usePHCMSAdmin();
|
|
68
|
+
const queryClient = useQueryClient();
|
|
69
|
+
return useMutation({
|
|
70
|
+
mutationFn: ({ setUid, data }: { setUid: string; data: AddHierarchyItemRequest }) =>
|
|
71
|
+
client.hierarchy.addItem(setUid, data),
|
|
72
|
+
onSuccess: (_, variables) => {
|
|
73
|
+
queryClient.invalidateQueries({ queryKey: hierarchyKeys.itemList(variables.setUid) });
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const useRemoveHierarchyItem = () => {
|
|
79
|
+
const client = usePHCMSAdmin();
|
|
80
|
+
const queryClient = useQueryClient();
|
|
81
|
+
return useMutation({
|
|
82
|
+
mutationFn: ({ setUid, itemUid }: { setUid: string; itemUid: string }) =>
|
|
83
|
+
client.hierarchy.removeItem(setUid, itemUid),
|
|
84
|
+
onSuccess: (_, variables) => {
|
|
85
|
+
queryClient.invalidateQueries({ queryKey: hierarchyKeys.itemList(variables.setUid) });
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
};
|
package/src/hooks/usePolicy.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useQuery } from '@tanstack/react-query';
|
|
1
|
+
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
2
2
|
import { usePHCMSAdmin } from '../context';
|
|
3
|
-
import { ListPolicyQuery } from '@ph-cms/api-contract-admin';
|
|
3
|
+
import { CreatePermissionPolicySetRequest, ListPolicyQuery, UpdatePermissionPolicySetRequest } from '@ph-cms/api-contract-admin';
|
|
4
4
|
|
|
5
5
|
export const policyKeys = {
|
|
6
6
|
all: ['policy'] as const,
|
|
@@ -16,3 +16,37 @@ export const usePolicyList = (params?: ListPolicyQuery) => {
|
|
|
16
16
|
staleTime: 1000 * 60 * 60, // 1 hour
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
+
|
|
20
|
+
export const useCreatePolicySet = () => {
|
|
21
|
+
const client = usePHCMSAdmin();
|
|
22
|
+
const queryClient = useQueryClient();
|
|
23
|
+
return useMutation({
|
|
24
|
+
mutationFn: (data: CreatePermissionPolicySetRequest) => client.policy.create(data),
|
|
25
|
+
onSuccess: () => {
|
|
26
|
+
queryClient.invalidateQueries({ queryKey: policyKeys.lists() });
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const useUpdatePolicySet = () => {
|
|
32
|
+
const client = usePHCMSAdmin();
|
|
33
|
+
const queryClient = useQueryClient();
|
|
34
|
+
return useMutation({
|
|
35
|
+
mutationFn: ({ uid, data }: { uid: string; data: UpdatePermissionPolicySetRequest }) =>
|
|
36
|
+
client.policy.update(uid, data),
|
|
37
|
+
onSuccess: () => {
|
|
38
|
+
queryClient.invalidateQueries({ queryKey: policyKeys.lists() });
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const useDeletePolicySet = () => {
|
|
44
|
+
const client = usePHCMSAdmin();
|
|
45
|
+
const queryClient = useQueryClient();
|
|
46
|
+
return useMutation({
|
|
47
|
+
mutationFn: (uid: string) => client.policy.delete(uid),
|
|
48
|
+
onSuccess: () => {
|
|
49
|
+
queryClient.invalidateQueries({ queryKey: policyKeys.lists() });
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
};
|
package/src/hooks/useTerms.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { useQuery } from '@tanstack/react-query';
|
|
1
|
+
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
2
2
|
import { usePHCMSAdmin } from '../context';
|
|
3
3
|
import { ListTermsQuery } from '@ph-cms/api-contract';
|
|
4
|
+
import { CreateTermRequest } from '@ph-cms/api-contract-admin';
|
|
4
5
|
|
|
5
6
|
export const termsKeys = {
|
|
6
7
|
all: ['terms'] as const,
|
|
@@ -16,3 +17,25 @@ export const useTermsList = (params?: ListTermsQuery) => {
|
|
|
16
17
|
staleTime: 1000 * 60 * 60, // 1 hour
|
|
17
18
|
});
|
|
18
19
|
};
|
|
20
|
+
|
|
21
|
+
export const useCreateTerm = () => {
|
|
22
|
+
const client = usePHCMSAdmin();
|
|
23
|
+
const queryClient = useQueryClient();
|
|
24
|
+
return useMutation({
|
|
25
|
+
mutationFn: (data: CreateTermRequest) => client.terms.create(data),
|
|
26
|
+
onSuccess: () => {
|
|
27
|
+
queryClient.invalidateQueries({ queryKey: termsKeys.lists() });
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const useDisableTerm = () => {
|
|
33
|
+
const client = usePHCMSAdmin();
|
|
34
|
+
const queryClient = useQueryClient();
|
|
35
|
+
return useMutation({
|
|
36
|
+
mutationFn: (id: number) => client.terms.disable(id),
|
|
37
|
+
onSuccess: () => {
|
|
38
|
+
queryClient.invalidateQueries({ queryKey: termsKeys.lists() });
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
};
|