CEC-3863: Link azure file download (#309)

Co-authored-by: Alexander Andrews <aandrews@fiskerinc.com>
This commit is contained in:
Alexander Andrews
2023-04-06 15:29:05 -04:00
committed by GitHub
parent ead852d46a
commit 909f1e72c2
2 changed files with 32 additions and 4 deletions

View File

@@ -140,7 +140,7 @@ const TRexLogsTable = ({ vin, token, classes }) => {
return pageSize * pageIndex + pageSize return pageSize * pageIndex + pageSize
} }
const getReadPercentage = () => { const getReadPercentage = () => {
return (currentOffset * 100 / blobSize).toFixed(2); return (currentOffset * 100 / blobSize);
} }
const getFilteredLogs = (logs) => { const getFilteredLogs = (logs) => {
return logs.filter(log => currectLogLevels[log.level] === true) return logs.filter(log => currectLogLevels[log.level] === true)
@@ -182,6 +182,19 @@ const TRexLogsTable = ({ vin, token, classes }) => {
return fetched return fetched
} }
const downloadFile = async () => {
let day = formatTwoDigit(selectedDate.getDate())
let month = formatTwoDigit(selectedDate.getMonth() + 1)// 0 Indexed
let year = selectedDate.getFullYear()
let result = await api.getLogFileLink({ vin, year, month, day }, token)
window.open(result['Link'], '_blank')
}
const formatTwoDigit = (num) => {
return num < 10 ? '0' + num : '' + num
}
useEffect(() => { useEffect(() => {
(async () => { (async () => {
try { try {
@@ -267,10 +280,11 @@ const TRexLogsTable = ({ vin, token, classes }) => {
/> />
</MuiPickersUtilsProvider> </MuiPickersUtilsProvider>
</TableCell> </TableCell>
<TableCell align="center"> <TableCell align="center">
{ {
blobSize === 0 ? `No logs for ${fromatDateForRequest(selectedDate)}` : blobSize === 0 ? `No logs for ${fromatDateForRequest(selectedDate)}` :
`Read ${getReadPercentage()}% of logs` `Read ${getReadPercentage().toFixed(2)}% of logs`
} }
{ {
<LinearProgress <LinearProgress
@@ -278,6 +292,8 @@ const TRexLogsTable = ({ vin, token, classes }) => {
align="center" align="center"
value={getReadPercentage()} /> value={getReadPercentage()} />
} }
<br></br>
<button onClick={downloadFile} disabled={blobSize === 0}>Download Log File</button>
</TableCell> </TableCell>
</TableRow> </TableRow>
</Table> </Table>

View File

@@ -197,6 +197,18 @@ const vehiclesAPI = {
.then(fetchRespHandler) .then(fetchRespHandler)
.catch(errorHandler) .catch(errorHandler)
}, },
getLogFileLink: async ({vin, year, month, day}, token) => {
const u = `${API_ENDPOINT}/vehicle/${vin}/trex-logs-link?year=${year}&month=${month}&day=${day}`
return fetch(u, {
method: "GET",
headers: Object.assign(
{ "Content-Type": "application/json" },
getAuthHeaderOptions(token)
),
}).then(fetchRespHandler)
.catch(errorHandler)
},
}; };
export default vehiclesAPI; export default vehiclesAPI;