Adding multi tenant check and Starting firm initialization
This commit is contained in:
@@ -55,7 +55,7 @@ function App() {
|
||||
queries: {
|
||||
retry: (failureCount, error) => {
|
||||
// @ts-ignore
|
||||
if (error.status >= 400 && error.status <= 499) {
|
||||
if (error.statusCode >= 400 && error.statusCode <= 499) {
|
||||
return false
|
||||
}
|
||||
return failureCount < 4
|
||||
|
||||
@@ -2,6 +2,9 @@ import {Route, Routes} from "react-router";
|
||||
import React, { useContext } from "react";
|
||||
import { FirmContext, FirmContextProvider } from "../../contexts/FirmContext";
|
||||
import { Header } from "../../components";
|
||||
import { useOne } from "@refinedev/core";
|
||||
import { CrudForm } from "../../lib/crud/components/crud-form";
|
||||
import { IFirm } from "../../interfaces";
|
||||
|
||||
export const FirmRoutes = () => {
|
||||
return (
|
||||
@@ -22,7 +25,31 @@ export const FirmRoutes = () => {
|
||||
|
||||
const FirmHome = () => {
|
||||
const { currentFirm } = useContext(FirmContext);
|
||||
const { data: firm, isError, error, isLoading } = useOne({resource: 'firm', id: `${currentFirm.instance}/${currentFirm.firm}`, errorNotification: false})
|
||||
|
||||
if (isLoading) {
|
||||
return <h1>Loading...</h1>
|
||||
}
|
||||
|
||||
if (isError && error?.statusCode == 405) {
|
||||
return <FirmInitForm currentFirm={currentFirm} />
|
||||
}
|
||||
|
||||
return (
|
||||
<h1>This is la firme {currentFirm.instance} / {currentFirm.firm}</h1>
|
||||
);
|
||||
}
|
||||
|
||||
type FirmInitFormPros = {
|
||||
currentFirm: IFirm
|
||||
}
|
||||
|
||||
const FirmInitForm = (props: FirmInitFormPros) => {
|
||||
const { currentFirm } = props;
|
||||
return (
|
||||
<>
|
||||
<h1>Initialization of {`${currentFirm.instance} / ${currentFirm.firm}`}</h1>
|
||||
<CrudForm schemaName={"CurrentFirmSchemaCreate"} resource={`/firm/${currentFirm.instance}/${currentFirm.firm}`} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -1,11 +1,20 @@
|
||||
import type { DataProvider } from "@refinedev/core";
|
||||
import type { DataProvider, HttpError } from "@refinedev/core";
|
||||
|
||||
const API_URL = "/api/v1";
|
||||
|
||||
export const dataProvider: DataProvider = {
|
||||
getOne: async ({ resource, id, meta }) => {
|
||||
const response = id !== "" ? await fetch(`${API_URL}/${resource}/${id}`) : await fetch(`${API_URL}/${resource}`);
|
||||
if (response.status < 200 || response.status > 299) throw response;
|
||||
if (response.status < 200 || response.status > 299) {
|
||||
if (response.status == 405) {
|
||||
const error: HttpError = {
|
||||
message: "Resource is not ready",
|
||||
statusCode: 405,
|
||||
};
|
||||
return Promise.reject(error);
|
||||
}
|
||||
throw response;
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
@@ -22,8 +31,16 @@ export const dataProvider: DataProvider = {
|
||||
},
|
||||
});
|
||||
|
||||
if (response.status < 200 || response.status > 299) throw response;
|
||||
|
||||
if (response.status < 200 || response.status > 299) {
|
||||
if (response.status == 405) {
|
||||
const error: HttpError = {
|
||||
message: "Resource is not ready",
|
||||
statusCode: 405,
|
||||
};
|
||||
return Promise.reject(error);
|
||||
}
|
||||
throw response;
|
||||
}
|
||||
const data = await response.json();
|
||||
|
||||
return { data };
|
||||
@@ -51,7 +68,16 @@ export const dataProvider: DataProvider = {
|
||||
|
||||
const response = await fetch(`${API_URL}/${resource}?${params.toString()}`);
|
||||
|
||||
if (response.status < 200 || response.status > 299) throw response;
|
||||
if (response.status < 200 || response.status > 299) {
|
||||
if (response.status == 405) {
|
||||
const error: HttpError = {
|
||||
message: "Resource is not ready",
|
||||
statusCode: 405,
|
||||
};
|
||||
return Promise.reject(error);
|
||||
}
|
||||
throw response;
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
@@ -75,7 +101,16 @@ export const dataProvider: DataProvider = {
|
||||
},
|
||||
});
|
||||
|
||||
if (response.status < 200 || response.status > 299) throw response;
|
||||
if (response.status < 200 || response.status > 299) {
|
||||
if (response.status == 405) {
|
||||
const error: HttpError = {
|
||||
message: "Resource is not ready",
|
||||
statusCode: 405,
|
||||
};
|
||||
return Promise.reject(error);
|
||||
}
|
||||
throw response;
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
@@ -86,7 +121,16 @@ export const dataProvider: DataProvider = {
|
||||
method: "DELETE",
|
||||
});
|
||||
|
||||
if (response.status < 200 || response.status > 299) throw response;
|
||||
if (response.status < 200 || response.status > 299) {
|
||||
if (response.status == 405) {
|
||||
const error: HttpError = {
|
||||
message: "Resource is not ready",
|
||||
statusCode: 405,
|
||||
};
|
||||
return Promise.reject(error);
|
||||
}
|
||||
throw response;
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user