68 lines
1.7 KiB
TypeScript
68 lines
1.7 KiB
TypeScript
import { createApi } from "@reduxjs/toolkit/query/react"; // Fix import
|
|
import { baseQueryWithReauth } from "./apiSlice";
|
|
|
|
|
|
|
|
|
|
export const privacyPolicy = createApi({
|
|
reducerPath: "privacyPolicy",
|
|
baseQuery: baseQueryWithReauth, // Use enhanced baseQuery with error handling
|
|
endpoints: (builder) => ({
|
|
// 🔹 GET: Fetch all privacy policies
|
|
getPrivacyPolicy: builder.query<PrivacyPolicy[], void>({
|
|
query: () => "/privacy-policy",
|
|
}),
|
|
|
|
// 🔹 GET: Fetch a single post by ID
|
|
// getPostById: builder.query<Post, number>({
|
|
// query: (id) => `/posts/${id}`,
|
|
// }),
|
|
|
|
// 🔹 POST: Create a new post
|
|
// createPost: builder.mutation<Post, Partial<Post>>({
|
|
// query: (newPost) => ({
|
|
// url: "/posts",
|
|
// method: "POST",
|
|
// body: newPost,
|
|
// }),
|
|
// }),
|
|
|
|
// 🔹 PUT: Update an existing post
|
|
// updatePost: builder.mutation<Post, { id: number; updatedData: Partial<Post> }>({
|
|
// query: ({ id, updatedData }) => ({
|
|
// url: `/posts/${id}`,
|
|
// method: "PUT",
|
|
// body: updatedData,
|
|
// }),
|
|
// }),
|
|
|
|
// 🔹 DELETE: Remove a post by ID
|
|
// deletePost: builder.mutation<{ success: boolean }, number>({
|
|
// query: (id) => ({
|
|
// url: `/posts/${id}`,
|
|
// method: "DELETE",
|
|
// }),
|
|
// }),
|
|
}),
|
|
});
|
|
|
|
// Export hooks for usage in components
|
|
export const {
|
|
useGetPrivacyPolicyQuery, // Export the correct hook
|
|
|
|
} = privacyPolicy;
|
|
|
|
|
|
// Define types at the top for better readability
|
|
export type Post = {
|
|
id: number;
|
|
title: string;
|
|
body: string;
|
|
};
|
|
|
|
export type PrivacyPolicy = {
|
|
id: number;
|
|
language_master_xid: number;
|
|
content: string;
|
|
is_active: boolean;
|
|
}; |