SpaceAPI: network traffic sensor

This commit is contained in:
He4eT 2025-04-04 22:40:23 +02:00
commit 81eee3f638

View file

@ -12,6 +12,14 @@ const pickFields = (fields: Array<string>) => (obj: Record<string, unknown>): ob
.filter(([k, _]) => fields.includes(k)) .filter(([k, _]) => fields.includes(k))
.filter(([_, v]) => !isEmpty(v))); .filter(([_, v]) => !isEmpty(v)));
const processComponentField = (component: Record<string, any>, field: string, fields: string[]) => {
if (!isEmpty(component[field])) {
component[field] = pickFields(fields)(component[field]);
} else {
delete component[field];
}
};
const dateTimeToUnixtime = (updatedAt: string) => { const dateTimeToUnixtime = (updatedAt: string) => {
const date = new Date(updatedAt); const date = new Date(updatedAt);
return Math.floor(date.getTime() / 1000); return Math.floor(date.getTime() / 1000);
@ -347,7 +355,6 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
const peopleNowPresentSensors = await getSensors( const peopleNowPresentSensors = await getSensors(
'api::people-now-present-sensor.people-now-present-sensor', 'api::people-now-present-sensor.people-now-present-sensor',
[ [
'TODO',
'value', 'value',
'location', 'location',
'name', 'name',
@ -355,6 +362,9 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
'description', 'description',
'lastchange', 'lastchange',
], ],
[
'names',
],
); );
const networkTrafficSensors = (await getSensors( const networkTrafficSensors = (await getSensors(
@ -374,23 +384,10 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
], ],
)).map((sensor: {properties: {bits_per_second: any, packets_per_second: any}}) => { )).map((sensor: {properties: {bits_per_second: any, packets_per_second: any}}) => {
if (!isEmpty(sensor.properties)) { if (!isEmpty(sensor.properties)) {
delete sensor.properties['id']; const { properties } = sensor;
if (!isEmpty(sensor.properties.bits_per_second)) { delete properties['id'];
sensor.properties.bits_per_second = pickFields([ processComponentField(properties, 'bits_per_second', ['value', 'maximum']);
'value', processComponentField(properties, 'packets_per_second', ['value']);
'maximum',
])(sensor.properties.bits_per_second);
} else {
delete sensor.properties.bits_per_second;
}
if (!isEmpty(sensor.properties.packets_per_second)) {
sensor.properties.packets_per_second = pickFields([
'value',
])(sensor.properties.packets_per_second);
} else {
delete sensor.properties.packets_per_second;
}
} else { } else {
delete sensor.properties; delete sensor.properties;
} }