Handle api error json (#18)

* Handle api error json

* Fix get vehicles error handling
Update .env.template
This commit is contained in:
John Wu
2021-03-17 15:11:41 -07:00
committed by GitHub
parent 2e1f4a7a7c
commit bf401e68eb
10 changed files with 69 additions and 47 deletions

View File

@@ -20,10 +20,7 @@ export const UserProvider = ({ children }) => {
useEffect(() => {
if (!token) return;
const {
idToken: { jwtToken },
} = token;
verifyToken(jwtToken);
verifyToken();
return () => {
if (timer) timer.terminate();
};
@@ -57,15 +54,14 @@ export const UserProvider = ({ children }) => {
timer.start(duration);
};
const verifyToken = async (idToken) => {
const verifyToken = async () => {
try {
const {
idToken: { jwtToken: idToken },
} = token;
const result = await auth.verify(idToken);
if (
(!result.valid && !result.authenticated) ||
!token.idToken.payload ||
!token.idToken.payload.exp
) {
if (!result && !result.valid) {
const t = await refreshTokens();
if (!isError(t)) return;
signOut();
@@ -74,7 +70,8 @@ export const UserProvider = ({ children }) => {
startSessionTimer();
} catch (e) {
setError(e.message);
signOut();
setError(`Verify error. ${e.message}`);
}
};
@@ -126,7 +123,6 @@ export const UserProvider = ({ children }) => {
setFetching(true);
setError(null);
// eslint-disable-next-line
result = await auth.refresh(value);
if (result.message) {

View File

@@ -24,10 +24,13 @@ export const VehicleProvider = ({ children }) => {
const getVehicles = async (search, token) => {
try {
setBusy(true);
const {
data: { data },
} = await api.getVehicles(search, token);
setVehicles(data);
const result = await api.getVehicles(search, token);
if (result.error) {
setVehicles([]);
throw new Error(`Get vehicles error. ${result.message}`);
} else {
setVehicles(result.data);
}
} finally {
setBusy(false);
}
@@ -37,7 +40,9 @@ export const VehicleProvider = ({ children }) => {
try {
setBusy(true);
validateAdd(vehicle);
await api.addVehicle(vehicle, token);
const result = await api.addVehicle(vehicle, token);
if (result.error) throw new Error(`Add vehicle error. ${result.message}`);
return result;
} finally {
setBusy(false);
}

View File

@@ -131,12 +131,14 @@ describe("VehicleContext", () => {
});
});
const expectedVehicleData = [
{ vin: "3C4PDCBG0ET127145" },
{ vin: "1G1FP87S3GN100062" },
{ vin: "1HGCG325XYA062256" },
{ vin: "1J4GZ78YXWC160024" },
{ vin: "2C3CCAAG8CH222800" },
{ vin: "KNADM4A39C6028108" },
{ vin: "1G11C5SL9FF153507" },
];
const expectedVehicleData = {
data: [
{ vin: "3C4PDCBG0ET127145" },
{ vin: "1G1FP87S3GN100062" },
{ vin: "1HGCG325XYA062256" },
{ vin: "1J4GZ78YXWC160024" },
{ vin: "2C3CCAAG8CH222800" },
{ vin: "KNADM4A39C6028108" },
{ vin: "1G11C5SL9FF153507" },
],
};

View File

@@ -43,7 +43,6 @@ const FileUploadZone = ({ classes, token }) => {
onChange={(files) => setFiles(files)}
onDelete={(files) => setFiles(files)}
onDropRejected={(files) => {
console.log("Rejected files", files);
setMessage(`Rejected ${files[0].name} too large`);
}}
/>

View File

@@ -24,9 +24,9 @@ const MainForm = () => {
vin: vinEl.current.value,
};
await addVehicle(formData, authToken);
const result = await addVehicle(formData, authToken);
setMessage(`Added ${vinEl.current.value}`);
setMessage(`Added ${result.vin}`);
vinEl.current.value = "";
} catch (e) {
setMessage(e.message);