CEC-371 Update car ECUs display (#78)

* Clean up className styles
Update car status page to show update and ECUs

* Add update ecu version button
Show all ECUs on car status page
Only show car ecus for search
This commit is contained in:
John Wu
2021-08-18 09:14:13 -07:00
committed by GitHub
parent 3e66959521
commit d1815e2ff9
20 changed files with 1169 additions and 299 deletions

View File

@@ -9,27 +9,37 @@ const data = [
{ vin: "1G11C5SL9FF153507", year: 2021, model: "Ocean", trim: "Basic" },
];
const ecusData = [{
"boot_loader_version": "BLVERSION",
"config": "CONFIG",
"created": "2021-07-14T20:09:40.98187Z",
"ecu": "ECUA",
"fingerprint": "FINGERPRINT",
"hw_version": "HWVERSION",
"serial_number": "SERIAL",
"sw_version": "SWVERSION",
"updated": "2021-07-14T20:09:40.98187Z",
"vendor": "VENDOR",
},
{
"boot_loader_version": "BLVERSION",
"config": "CONFIG",
"created": "2021-07-14T20:09:40.98187Z",
"ecu": "ECUB",
"fingerprint": "FINGERPRINT",
"hw_version": "HWVERSION",
"serial_number": "SERIAL",
"sw_version": "SWVERSION",
"updated": "2021-07-14T20:09:40.98187Z",
"vendor": "VENDOR",
}
];
const vehiclesAPI = {
getVehicles: async (search, token) => { return { data }; },
addVehicle: async (vehicle, token) => {
data.push(vehicle);
return vehicle;
},
getModels: async (token) => {
return {
data: ["Ocean", "Pear"],
};
},
getYears: async (token) => {
return {
data: [2021, 2022],
};
},
sendCommand: async (vin, command, parameters, token) => {
return {
vin, command, parameters
}
},
getConnections: async (vins, token) => {
const result = {};
@@ -39,9 +49,28 @@ const vehiclesAPI = {
return result;
},
getECUs: async (vin, token) => {
return { data: ecusData, total: ecusData.length};
},
getModels: async (token) => {
return {
data: ["Ocean", "Pear"],
};
},
getLocations: jest.fn().mockResolvedValue([
{ "altitude": 5, "longitude": 10, "latitude": 15, "vin": "TESTVIN123" },
]),
getVehicles: async (search, token) => { return { data }; },
getYears: async (token) => {
return {
data: [2021, 2022],
};
},
sendCommand: async (vin, command, parameters, token) => {
return {
vin, command, parameters
}
},
};
export default vehiclesAPI;

View File

@@ -51,7 +51,12 @@ const Commands = [{
value: "close",
label: "Close window",
parameters: Windows,
},{
},
{
value: "ecu",
label: "ECU Versions",
},
{
value: "log",
label: "Log level",
parameters: [

View File

@@ -10,8 +10,17 @@ const vehiclesAPI = {
})
.then(fetchRespHandler),
getVehicles: async (search, token) => {
const u = addQueryParams(`${API_ENDPOINT}/vehicles`, search);
getConnections: async (vins, token) => {
const u = `${API_ENDPOINT}/carsconnected?vins=${vins.join(",")}`;
return fetch(u, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
})
.then(fetchRespHandler)
},
getECUs: async (search, token) => {
const u = addQueryParams(`${API_ENDPOINT}/vehicleecus`, search);
return fetch(u, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
@@ -25,6 +34,27 @@ const vehiclesAPI = {
})
.then(fetchRespHandler),
getLocations: async (token) => fetch(`${API_ENDPOINT}/carslocations`, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
})
.then(fetchRespHandler),
getState: async (token, vin) => fetch(`${API_ENDPOINT}/carstate?vin=${vin}`, {
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)
},
getYears: async (token) => fetch(`${API_ENDPOINT}/vehicleyears`, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
@@ -39,27 +69,6 @@ const vehiclesAPI = {
}),
})
.then(fetchRespHandler),
getConnections: async (vins, token) => {
const u = `${API_ENDPOINT}/carsconnected?vins=${vins.join(",")}`
return fetch(u, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
})
.then(fetchRespHandler)
},
getLocations: async (token) => fetch(`${API_ENDPOINT}/carslocations`, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
})
.then(fetchRespHandler),
getState: async (token, vin) => fetch(`${API_ENDPOINT}/carstate?vin=${vin}`, {
method: "GET",
headers: Object.assign({ "Content-Type": "application/json" }, getAuthHeaderOptions(token)),
})
.then(fetchRespHandler),
};
export default vehiclesAPI;