CEC-1691 Handle 503 errors (#156)

This commit is contained in:
John Wu
2022-05-18 16:02:13 -07:00
committed by GitHub
parent 8fde694801
commit 23111f9c3a
8 changed files with 206 additions and 104 deletions

View File

@@ -1,49 +1,58 @@
import {
getAuthHeaderOptions,
fetchRespHandler,
addQueryParams,
errorHandler,
getAuthHeaderOptions,
fetchRespHandler,
addQueryParams,
} from "../utils/http";
const API_ENDPOINT = process.env.REACT_APP_UPLOAD_SERVICE_URL;
const canFiltersAPI = {
addFilter: async (vin, filter, token) =>
fetch(`${API_ENDPOINT}/vehicle/${vin}/filter`, {
method: "POST",
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(filter)
}).then(fetchRespHandler),
addFilter: async (vin, filter, token) =>
fetch(`${API_ENDPOINT}/vehicle/${vin}/filter`, {
method: "POST",
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(filter),
})
.then(fetchRespHandler)
.catch(errorHandler),
getFilters: async (vin, search, token) =>
fetch(addQueryParams(`${API_ENDPOINT}/vehicle/${vin}/filters`, search), {
method: "GET",
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler),
getFilters: async (vin, search, token) =>
fetch(addQueryParams(`${API_ENDPOINT}/vehicle/${vin}/filters`, search), {
method: "GET",
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
})
.then(fetchRespHandler)
.catch(errorHandler),
updateFilter: async (vin, canID, filter, token) =>
fetch(`${API_ENDPOINT}/vehicle/${vin}/filter/${canID}`, {
method: "PUT",
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(filter)
}).then(fetchRespHandler),
updateFilter: async (vin, canID, filter, token) =>
fetch(`${API_ENDPOINT}/vehicle/${vin}/filter/${canID}`, {
method: "PUT",
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(filter),
})
.then(fetchRespHandler)
.catch(errorHandler),
deleteFilter: async (vin, canID, token) =>
fetch(`${API_ENDPOINT}/vehicle/${vin}/filter/${canID}`, {
method: "DELETE",
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
)
}).then(fetchRespHandler),
deleteFilter: async (vin, canID, token) =>
fetch(`${API_ENDPOINT}/vehicle/${vin}/filter/${canID}`, {
method: "DELETE",
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
})
.then(fetchRespHandler)
.catch(errorHandler),
};
export default canFiltersAPI;

View File

@@ -1,4 +1,4 @@
import { fetchRespHandler } from "../utils/http";
import { errorHandler, fetchRespHandler } from "../utils/http";
const AUTH_URL = process.env.REACT_APP_AUTH_SERVICE_URL;
const CALLBACK_URL = process.env.REACT_APP_AUTH_CALLBACK_URL;
@@ -16,7 +16,9 @@ const auth = {
code,
redirect: CALLBACK_URL,
}),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
verify: (idToken) =>
fetch(`${AUTH_URL}/verify`, {
@@ -25,7 +27,9 @@ const auth = {
"Content-Type": "application/json",
},
body: JSON.stringify({ token: idToken }),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
refresh: (refreshToken) =>
fetch(`${AUTH_URL}/refresh`, {
@@ -34,7 +38,9 @@ const auth = {
"Content-Type": "application/json",
},
body: JSON.stringify({ refresh_token: refreshToken }),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
};
export default auth;

View File

@@ -1,4 +1,8 @@
import { getAuthHeaderOptions, fetchRespHandler } from "../utils/http";
import {
errorHandler,
getAuthHeaderOptions,
fetchRespHandler,
} from "../utils/http";
const API_ENDPOINT = process.env.REACT_APP_CERT_SERVICE_URL;
@@ -11,7 +15,9 @@ const certificatesAPI = {
getAuthHeaderOptions(token)
),
body: JSON.stringify(data),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
};
export default certificatesAPI;

View File

@@ -1,4 +1,5 @@
import {
errorHandler,
getAuthHeaderOptions,
fetchRespHandler,
addQueryParams,
@@ -14,8 +15,10 @@ const fleetsAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(fleet)
}).then(fetchRespHandler),
body: JSON.stringify(fleet),
})
.then(fetchRespHandler)
.catch(errorHandler),
getFleet: async (name, token) =>
fetch(`${API_ENDPOINT}/fleet/${name}`, {
@@ -23,8 +26,10 @@ const fleetsAPI = {
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
)
}).then(fetchRespHandler),
),
})
.then(fetchRespHandler)
.catch(errorHandler),
getFleets: async (search, token) =>
fetch(addQueryParams(`${API_ENDPOINT}/fleets`, search), {
@@ -33,7 +38,9 @@ const fleetsAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
updateFleet: async (name, fleet, token) =>
fetch(`${API_ENDPOINT}/fleet/${name}`, {
@@ -42,8 +49,10 @@ const fleetsAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(fleet)
}).then(fetchRespHandler),
body: JSON.stringify(fleet),
})
.then(fetchRespHandler)
.catch(errorHandler),
deleteFleet: async (name, token) =>
fetch(`${API_ENDPOINT}/fleet/${name}`, {
@@ -51,8 +60,10 @@ const fleetsAPI = {
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
)
}).then(fetchRespHandler),
),
})
.then(fetchRespHandler)
.catch(errorHandler),
getFleetVehicles: async (name, search, token) =>
fetch(addQueryParams(`${API_ENDPOINT}/fleet/${name}/vehicles`, search), {
@@ -60,8 +71,10 @@ const fleetsAPI = {
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
)
}).then(fetchRespHandler),
),
})
.then(fetchRespHandler)
.catch(errorHandler),
addFleetVehicle: async (name, vehicle, token) =>
fetch(`${API_ENDPOINT}/fleet/${name}/vehicle`, {
@@ -70,8 +83,10 @@ const fleetsAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(vehicle)
}).then(fetchRespHandler),
body: JSON.stringify(vehicle),
})
.then(fetchRespHandler)
.catch(errorHandler),
deleteFleetVehicle: async (name, vehicle, token) =>
fetch(`${API_ENDPOINT}/fleet/${name}/vehicle/${vehicle.vin}`, {
@@ -79,8 +94,10 @@ const fleetsAPI = {
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
)
}).then(fetchRespHandler),
),
})
.then(fetchRespHandler)
.catch(errorHandler),
getFleetCANFilters: async (name, search, token) =>
fetch(addQueryParams(`${API_ENDPOINT}/fleet/${name}/filters`, search), {
@@ -88,8 +105,10 @@ const fleetsAPI = {
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
)
}).then(fetchRespHandler),
),
})
.then(fetchRespHandler)
.catch(errorHandler),
addFleetCANFilter: async (name, filter, token) =>
fetch(`${API_ENDPOINT}/fleet/${name}/filter`, {
@@ -98,8 +117,10 @@ const fleetsAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(filter)
}).then(fetchRespHandler),
body: JSON.stringify(filter),
})
.then(fetchRespHandler)
.catch(errorHandler),
updateFleetCANFilter: async (name, can_id, filter, token) =>
fetch(`${API_ENDPOINT}/fleet/${name}/filter/${can_id}`, {
@@ -108,8 +129,10 @@ const fleetsAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(filter)
}).then(fetchRespHandler),
body: JSON.stringify(filter),
})
.then(fetchRespHandler)
.catch(errorHandler),
deleteFleetCANFilter: async (name, can_id, token) =>
fetch(`${API_ENDPOINT}/fleet/${name}/filter/${can_id}`, {
@@ -117,8 +140,10 @@ const fleetsAPI = {
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
)
}).then(fetchRespHandler),
),
})
.then(fetchRespHandler)
.catch(errorHandler),
};
export default fleetsAPI;

View File

@@ -1,4 +1,5 @@
import {
errorHandler,
getAuthHeaderOptions,
fetchRespHandler,
addQueryParams,
@@ -14,7 +15,9 @@ const manifestsAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
getManifest: async (id, token) => {
const u = addQueryParams(`${API_ENDPOINT}/manifest`, { id });
@@ -24,7 +27,9 @@ const manifestsAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler);
})
.then(fetchRespHandler)
.catch(errorHandler);
},
getManifests: async (search, token) => {
@@ -35,7 +40,9 @@ const manifestsAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler);
})
.then(fetchRespHandler)
.catch(errorHandler);
},
createManifest: async (data, token) =>
@@ -46,7 +53,9 @@ const manifestsAPI = {
getAuthHeaderOptions(token)
),
body: JSON.stringify(data),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
createManifestECU: async (data, token) =>
fetch(`${API_ENDPOINT}/manifestecu`, {
@@ -56,7 +65,9 @@ const manifestsAPI = {
getAuthHeaderOptions(token)
),
body: JSON.stringify(data),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
};
export default manifestsAPI;

View File

@@ -1,4 +1,5 @@
import {
errorHandler,
getAuthHeaderOptions,
fetchRespHandler,
addQueryParams,
@@ -15,7 +16,9 @@ const updatesAPI = {
getAuthHeaderOptions(token)
),
body: JSON.stringify(data),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
getCarUpdateLog: async (query, token) => {
const u = addQueryParams(`${API_ENDPOINT}/carupdateslog`, query);
@@ -25,7 +28,9 @@ const updatesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler);
})
.then(fetchRespHandler)
.catch(errorHandler);
},
getCarUpdateProgress: async (carupdateids, token) => {
@@ -36,7 +41,9 @@ const updatesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler);
})
.then(fetchRespHandler)
.catch(errorHandler);
},
getCarUpdates: async (search, token) => {
@@ -47,7 +54,9 @@ const updatesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler);
})
.then(fetchRespHandler)
.catch(errorHandler);
},
getVINUpdates: async (vin, token) => {
@@ -58,7 +67,9 @@ const updatesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler);
})
.then(fetchRespHandler)
.catch(errorHandler);
},
};

View File

@@ -1,4 +1,5 @@
import {
errorHandler,
getAuthHeaderOptions,
fetchRespHandler,
addQueryParams,
@@ -15,7 +16,9 @@ const vehiclesAPI = {
getAuthHeaderOptions(token)
),
body: JSON.stringify(vehicle),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
deleteVehicle: async (vin, token) =>
fetch(`${API_ENDPOINT}/vehicle/${vin}`, {
@@ -24,7 +27,9 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
getConnections: async (vins, token) => {
const u = `${API_ENDPOINT}/carsconnected?vins=${vins.join(",")}`;
@@ -34,7 +39,9 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler);
})
.then(fetchRespHandler)
.catch(errorHandler);
},
getECUs: async (search, token) => {
@@ -45,7 +52,9 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler);
})
.then(fetchRespHandler)
.catch(errorHandler);
},
getModels: async (token) =>
@@ -55,7 +64,9 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
getLocations: async (token) =>
fetch(`${API_ENDPOINT}/carslocations`, {
@@ -64,7 +75,9 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
getState: async (token, vin) =>
fetch(`${API_ENDPOINT}/carstate?vin=${vin}`, {
@@ -73,7 +86,9 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
getVehicle: async (vin, token) =>
fetch(`${API_ENDPOINT}/vehicle/${vin}`, {
@@ -82,7 +97,9 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
getVehicles: async (search, token) => {
const u = addQueryParams(`${API_ENDPOINT}/vehicles`, search);
@@ -92,7 +109,9 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler);
})
.then(fetchRespHandler)
.catch(errorHandler);
},
getYears: async (token) =>
@@ -102,7 +121,9 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
sendCommand: async (vins, command, parameters, token) =>
fetch(`${API_ENDPOINT}/vehiclecommand`, {
@@ -116,7 +137,9 @@ const vehiclesAPI = {
command,
parameters,
}),
}).then(fetchRespHandler),
})
.then(fetchRespHandler)
.catch(errorHandler),
updateVehicle: async (vin, vehicle, token) =>
fetch(`${API_ENDPOINT}/vehicle/${vin}`, {
@@ -125,8 +148,10 @@ const vehiclesAPI = {
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
body: JSON.stringify(vehicle)
}).then(fetchRespHandler),
body: JSON.stringify(vehicle),
})
.then(fetchRespHandler)
.catch(errorHandler),
};
export default vehiclesAPI;