CEC-3595-invalid-locations (#276)
* CEC-3595-invalid-locations * fix ci * added validate function * resolve comments:
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import React from "react";
|
||||
|
||||
import { LocalDateTimeString } from "../../utils/dates";
|
||||
import { ValidateLocationByParam } from "../../utils/locations"
|
||||
import useStyles from "../useStyles";
|
||||
|
||||
const keyValueTemplate = (key, value) => (
|
||||
@@ -83,6 +84,9 @@ const DigitalTwin = (props) => {
|
||||
<div className={classes.popupSection}>
|
||||
<h3>Location</h3>
|
||||
{Object.entries(location).map((value) => {
|
||||
if (ValidateLocationByParam(value[0], value[1]) === false) {
|
||||
return keyValueTemplate(value[0], "Invalid")
|
||||
}
|
||||
if (value[0] === "altitude") {
|
||||
return keyValueTemplate(value[0], value[1]);
|
||||
} else {
|
||||
|
||||
@@ -7,6 +7,7 @@ import { Button } from "@material-ui/core";
|
||||
import { useUserContext } from "../Contexts/UserContext";
|
||||
import { useVehicleContext, VehicleProvider } from "../Contexts/VehicleContext";
|
||||
import { VehiclePopUp } from "./popup";
|
||||
import { ValidateLocationData } from "../../utils/locations"
|
||||
import GreenMarkerIcon from "../../assets/green-marker.png";
|
||||
import GrayMarkerIcon from "../../assets/gray-marker.png";
|
||||
import { logger } from "../../services/monitoring";
|
||||
@@ -44,7 +45,7 @@ const Component = () => {
|
||||
const retrieveAndStoreLocations = (accessToken) => {
|
||||
return getLocations(accessToken)
|
||||
.then((result) => {
|
||||
if (result.data != null) {
|
||||
if (result.data != null && ValidateLocationData(result.data) !== false) {
|
||||
const points = result.data.map((point) => [
|
||||
point.latitude,
|
||||
point.longitude,
|
||||
|
||||
22
src/utils/locations.js
Normal file
22
src/utils/locations.js
Normal file
@@ -0,0 +1,22 @@
|
||||
export const ValidateLocationData = (location) => {
|
||||
if (Math.abs(location.latitude) > 90 || Math.abs(location.longitude) > 180) {
|
||||
return false;
|
||||
}
|
||||
if (location.altitude === 1401) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export const ValidateLocationByParam = (parameter, value) => {
|
||||
switch (parameter) {
|
||||
case "latitude":
|
||||
return Math.abs(value) <= 90;
|
||||
case "longitude":
|
||||
return Math.abs(value) <= 180;
|
||||
case "altitude":
|
||||
return value !== 1401;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user