Implementing dataProvider and tuniong create route
This commit is contained in:
@@ -13,9 +13,9 @@ import routerBindings, {
|
||||
DocumentTitleHandler,
|
||||
UnsavedChangesNotifier,
|
||||
} from "@refinedev/react-router";
|
||||
import dataProvider from "@refinedev/simple-rest";
|
||||
import { BrowserRouter, Outlet, Route, Routes } from "react-router";
|
||||
import { authProvider } from "./providers/auth-provider";
|
||||
import { dataProvider } from "./providers/data-provider";
|
||||
import { ColorModeContextProvider } from "./contexts/color-mode";
|
||||
import { Login } from "./components/auth/Login";
|
||||
import { Register } from "./components/auth/Register";
|
||||
@@ -36,7 +36,7 @@ function App() {
|
||||
<RefineSnackbarProvider>
|
||||
<Refine
|
||||
authProvider={authProvider}
|
||||
dataProvider={dataProvider("https://api.fake-rest.refine.dev")}
|
||||
dataProvider={dataProvider}
|
||||
notificationProvider={useNotificationProvider}
|
||||
routerProvider={routerBindings}
|
||||
options={{
|
||||
|
||||
@@ -1,20 +1,10 @@
|
||||
import type { DataProvider } from "@refinedev/core";
|
||||
|
||||
const API_URL = "http://localhost:8000";
|
||||
|
||||
const fetcher = async (url: string, options?: RequestInit) => {
|
||||
return fetch(url, {
|
||||
...options,
|
||||
headers: {
|
||||
...options?.headers,
|
||||
Authorization: "Bearer " + localStorage.getItem("access_token"),
|
||||
},
|
||||
});
|
||||
};
|
||||
const API_URL = "/api/v1";
|
||||
|
||||
export const dataProvider: DataProvider = {
|
||||
getOne: async ({ resource, id, meta }) => {
|
||||
const response = id !== "" ? await fetcher(`${API_URL}/${resource}/${id}`) : await fetcher(`${API_URL}/${resource}`);
|
||||
const response = id !== "" ? await fetch(`${API_URL}/${resource}/${id}`) : await fetch(`${API_URL}/${resource}`);
|
||||
if (response.status < 200 || response.status > 299) throw response;
|
||||
|
||||
const data = await response.json();
|
||||
@@ -24,7 +14,7 @@ export const dataProvider: DataProvider = {
|
||||
};
|
||||
},
|
||||
update: async ({ resource, id, variables }) => {
|
||||
const response = await fetcher(`${API_URL}/${resource}/${id}`, {
|
||||
const response = await fetch(`${API_URL}/${resource}/${id}`, {
|
||||
method: "PUT",
|
||||
body: JSON.stringify(variables),
|
||||
headers: {
|
||||
@@ -58,7 +48,7 @@ export const dataProvider: DataProvider = {
|
||||
});
|
||||
}
|
||||
|
||||
const response = await fetcher(`${API_URL}/${resource}?${params.toString()}`);
|
||||
const response = await fetch(`${API_URL}/${resource}?${params.toString()}`);
|
||||
|
||||
if (response.status < 200 || response.status > 299) throw response;
|
||||
|
||||
@@ -70,7 +60,7 @@ export const dataProvider: DataProvider = {
|
||||
};
|
||||
},
|
||||
create: async ({ resource, variables }) => {
|
||||
const response = await fetcher(`${API_URL}/${resource}`, {
|
||||
const response = await fetch(`${API_URL}/${resource}`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify(variables),
|
||||
headers: {
|
||||
@@ -85,7 +75,7 @@ export const dataProvider: DataProvider = {
|
||||
return { data };
|
||||
},
|
||||
deleteOne: async ({ resource, id, variables, meta }) => {
|
||||
const response = await fetcher(`${API_URL}/${resource}/${id}`,{
|
||||
const response = await fetch(`${API_URL}/${resource}/${id}`,{
|
||||
method: "DELETE",
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user