Add package updates, car updates, and vehicle screens (#25)

This commit is contained in:
John Wu
2021-03-31 17:42:31 -07:00
committed by GitHub
parent 2d1faa8fb7
commit 17f81822c0
33 changed files with 2409 additions and 699 deletions

View File

@@ -0,0 +1,48 @@
const updatesAPI = {
createCarUpdates: async (data, token) => {
if (!data.id) data.id = 0;
data.id++;
return data;
},
getPackages: async (search, token) => {
return {
data: [
{
id: 1,
package_name: "Test",
version: "1.0",
link: "http://cloudfront.com/download"
},
{
id: 2,
package_name: "Test",
version: "1.1",
link: "http://cloudfront.com/download"
},
{
id: 3,
package_name: "Test",
version: "1.2",
link: "http://cloudfront.com/download"
}
]
}
},
updatePackage: async (data, token) => {
return data;
},
deployPackage: async (data, token) => {
return data;
},
getCarUpdates: async (filter, token) => {
return [];
},
};
export default updatesAPI;

View File

@@ -1,6 +1,6 @@
import delay from "../../utils/delay";
let uploadFileResponse = { data: { link: "CLOUDFRONT_URL" } };
let uploadFileResponse = { link: "CLOUDFRONT_URL" };
let uploadFileDelay = false;
let issuedCancelToken = null;

42
src/services/updates.js Normal file
View File

@@ -0,0 +1,42 @@
import { getAuthHeaderOptions, fetchRespHandler, addQueryParams } from "../utils/http";
const API_ENDPOINT = process.env.REACT_APP_UPLOAD_SERVICE_URL || "https://gw-dev.fiskerdps.com/ota_update";
const updatesAPI = {
createCarUpdates: async (data, token) => fetch(`${API_ENDPOINT}/carupdate`, {
method: "POST",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
body: JSON.stringify(data),
})
.then(fetchRespHandler),
getPackages: async (search, token) => {
var u = addQueryParams(`${API_ENDPOINT}/updates`, search);
return fetch(u, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
})
.then(fetchRespHandler);
},
updatePackage: async (update, token) => fetch(`${API_ENDPOINT}/update`, {
method: "PUT",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
body: JSON.stringify(update),
})
.then(fetchRespHandler),
getCarUpdates: async (search, token) => {
var u = addQueryParams(`${API_ENDPOINT}/carupdates`, search);
return fetch(u, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
})
.then(fetchRespHandler);
},
};
export default updatesAPI;

View File

@@ -29,5 +29,15 @@ export const uploadFile = (file, data, token, onProgress, cancelToken) => {
form.append(key, data[key]);
}
form.append("file", file);
return axios.post(`${UPLOAD_ENDPOINT}/upload`, form, options);
return axios.post(`${UPLOAD_ENDPOINT}/update`, form, options)
.then((response) => response.data)
.catch((error) => {
if (typeof error.response.data === "string") {
return {
error: error.response.statusText,
message: error.response.data,
};
}
return error.response.data;
});
};

View File

@@ -1,4 +1,4 @@
import { getAuthHeaderOptions, fetchRespHandler } from "../utils/http"
import { getAuthHeaderOptions, fetchRespHandler, addQueryParams } from "../utils/http"
const API_ENDPOINT = process.env.REACT_APP_UPLOAD_SERVICE_URL || "https://gw-dev.fiskerdps.com/ota_update";
@@ -9,12 +9,16 @@ const vehiclesAPI = {
body: JSON.stringify(vehicle),
})
.then(fetchRespHandler),
getVehicles: async (search, token) => fetch(`${API_ENDPOINT}/vehicles`, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
})
.then(fetchRespHandler)
getVehicles: async (search, token) => {
const u = addQueryParams(`${API_ENDPOINT}/vehicles`, search);
return fetch(u, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
})
.then(fetchRespHandler);
},
};
export default vehiclesAPI;