src: apply Prettier

This commit is contained in:
He4eT 2025-05-23 00:45:36 +02:00
commit 10abb92ca2
59 changed files with 343 additions and 406 deletions

View file

@ -1,6 +1,6 @@
import type { StrapiApp } from '@strapi/strapi/admin'; import type { StrapiApp } from '@strapi/strapi/admin';
function applyCustomCSS () { function applyCustomCSS() {
const customCSS = ` const customCSS = `
* { * {
border-radius: 0 !important; border-radius: 0 !important;

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::account-balance-sensor.account-balance-sensor'); export default factories.createCoreController(
'api::account-balance-sensor.account-balance-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::account-balance-sensor.account-balance-sensor'); export default factories.createCoreRouter(
'api::account-balance-sensor.account-balance-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::account-balance-sensor.account-balance-sensor'); export default factories.createCoreService(
'api::account-balance-sensor.account-balance-sensor',
);

View file

@ -17,9 +17,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["hPa"],
"hPa"
],
"required": true "required": true
}, },
"location": { "location": {

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::barometer-sensor.barometer-sensor'); export default factories.createCoreController(
'api::barometer-sensor.barometer-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::barometer-sensor.barometer-sensor'); export default factories.createCoreRouter(
'api::barometer-sensor.barometer-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::barometer-sensor.barometer-sensor'); export default factories.createCoreService(
'api::barometer-sensor.barometer-sensor',
);

View file

@ -17,10 +17,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["btl", "crt"],
"btl",
"crt"
],
"required": true "required": true
}, },
"location": { "location": {

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::beverage-supply.beverage-supply'); export default factories.createCoreController(
'api::beverage-supply.beverage-supply',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::beverage-supply.beverage-supply'); export default factories.createCoreRouter(
'api::beverage-supply.beverage-supply',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::beverage-supply.beverage-supply'); export default factories.createCoreService(
'api::beverage-supply.beverage-supply',
);

View file

@ -17,10 +17,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["ppm", "vol%"],
"ppm",
"vol%"
],
"required": true "required": true
}, },
"location": { "location": {

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::carbondioxide-sensor.carbondioxide-sensor'); export default factories.createCoreController(
'api::carbondioxide-sensor.carbondioxide-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::carbondioxide-sensor.carbondioxide-sensor'); export default factories.createCoreRouter(
'api::carbondioxide-sensor.carbondioxide-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::carbondioxide-sensor.carbondioxide-sensor'); export default factories.createCoreService(
'api::carbondioxide-sensor.carbondioxide-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::door-locked-sensor.door-locked-sensor'); export default factories.createCoreController(
'api::door-locked-sensor.door-locked-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::door-locked-sensor.door-locked-sensor'); export default factories.createCoreRouter(
'api::door-locked-sensor.door-locked-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::door-locked-sensor.door-locked-sensor'); export default factories.createCoreService(
'api::door-locked-sensor.door-locked-sensor',
);

View file

@ -19,9 +19,7 @@
"type": "media", "type": "media",
"multiple": false, "multiple": false,
"required": true, "required": true,
"allowedTypes": [ "allowedTypes": ["images"]
"images"
]
}, },
"url": { "url": {
"type": "string", "type": "string",

View file

@ -17,9 +17,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["percents"],
"percents"
],
"required": true "required": true
}, },
"location": { "location": {

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::humidity-sensor.humidity-sensor'); export default factories.createCoreController(
'api::humidity-sensor.humidity-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::humidity-sensor.humidity-sensor'); export default factories.createCoreRouter(
'api::humidity-sensor.humidity-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::humidity-sensor.humidity-sensor'); export default factories.createCoreService(
'api::humidity-sensor.humidity-sensor',
);

View file

@ -13,11 +13,7 @@
"attributes": { "attributes": {
"type": { "type": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["wifi", "cable", "spacenet"]
"wifi",
"cable",
"spacenet"
]
}, },
"value": { "value": {
"type": "integer", "type": "integer",

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::network-connections-sensor.network-connections-sensor'); export default factories.createCoreController(
'api::network-connections-sensor.network-connections-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::network-connections-sensor.network-connections-sensor'); export default factories.createCoreRouter(
'api::network-connections-sensor.network-connections-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::network-connections-sensor.network-connections-sensor'); export default factories.createCoreService(
'api::network-connections-sensor.network-connections-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::network-traffic-sensor.network-traffic-sensor'); export default factories.createCoreController(
'api::network-traffic-sensor.network-traffic-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::network-traffic-sensor.network-traffic-sensor'); export default factories.createCoreRouter(
'api::network-traffic-sensor.network-traffic-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::network-traffic-sensor.network-traffic-sensor'); export default factories.createCoreService(
'api::network-traffic-sensor.network-traffic-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::people-now-present-sensor.people-now-present-sensor'); export default factories.createCoreController(
'api::people-now-present-sensor.people-now-present-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::people-now-present-sensor.people-now-present-sensor'); export default factories.createCoreRouter(
'api::people-now-present-sensor.people-now-present-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::people-now-present-sensor.people-now-present-sensor'); export default factories.createCoreService(
'api::people-now-present-sensor.people-now-present-sensor',
);

View file

@ -17,10 +17,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["W", "VA"],
"W",
"VA"
],
"required": true "required": true
}, },
"location": { "location": {

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::power-consumption-sensor.power-consumption-sensor'); export default factories.createCoreController(
'api::power-consumption-sensor.power-consumption-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::power-consumption-sensor.power-consumption-sensor'); export default factories.createCoreRouter(
'api::power-consumption-sensor.power-consumption-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::power-consumption-sensor.power-consumption-sensor'); export default factories.createCoreService(
'api::power-consumption-sensor.power-consumption-sensor',
);

View file

@ -17,10 +17,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["W", "VA"],
"W",
"VA"
],
"required": true "required": true
}, },
"location": { "location": {

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::power-generation-sensor.power-generation-sensor'); export default factories.createCoreController(
'api::power-generation-sensor.power-generation-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::power-generation-sensor.power-generation-sensor'); export default factories.createCoreRouter(
'api::power-generation-sensor.power-generation-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::power-generation-sensor.power-generation-sensor'); export default factories.createCoreService(
'api::power-generation-sensor.power-generation-sensor',
);

View file

@ -13,12 +13,7 @@
"attributes": { "attributes": {
"type": { "type": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["alpha", "beta", "gamma", "beta_gamma"]
"alpha",
"beta",
"gamma",
"beta_gamma"
]
}, },
"value": { "value": {
"type": "decimal", "type": "decimal",
@ -26,13 +21,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["cpm", "r/h", "µSv/h", "mSv/a", "µSv/a"],
"cpm",
"r/h",
"µSv/h",
"mSv/a",
"µSv/a"
],
"required": true "required": true
}, },
"dead_time": { "dead_time": {

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::radiation-sensor.radiation-sensor'); export default factories.createCoreController(
'api::radiation-sensor.radiation-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::radiation-sensor.radiation-sensor'); export default factories.createCoreRouter(
'api::radiation-sensor.radiation-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::radiation-sensor.radiation-sensor'); export default factories.createCoreService(
'api::radiation-sensor.radiation-sensor',
);

View file

@ -8,11 +8,14 @@ const isEmpty = <A>(x: A): boolean =>
? String(x).length === 0 ? String(x).length === 0
: false; : false;
const pickFields = (fields: Array<string>) => const pickFields =
(fields: Array<string>) =>
(obj: Record<string, unknown>): object => (obj: Record<string, unknown>): object =>
Object.fromEntries(Object.entries(obj) Object.fromEntries(
.filter(([k, _]) => fields.includes(k)) Object.entries(obj)
.filter(([_, v]) => !isEmpty(v))); .filter(([k, _]) => fields.includes(k))
.filter(([_, v]) => !isEmpty(v)),
);
const dateTimeToUnixtime = (updatedAt: string) => { const dateTimeToUnixtime = (updatedAt: string) => {
const date = new Date(updatedAt); const date = new Date(updatedAt);
@ -21,9 +24,8 @@ const dateTimeToUnixtime = (updatedAt: string) => {
export default ({ strapi }: { strapi: Core.Strapi }) => ({ export default ({ strapi }: { strapi: Core.Strapi }) => ({
async index(ctx: Context) { async index(ctx: Context) {
const absoluteURL = (url: string) => url const absoluteURL = (url: string) =>
? `${ctx.request.origin}${url}` url ? `${ctx.request.origin}${url}` : null;
: null;
const result = {} as Record<string, any>; const result = {} as Record<string, any>;
@ -68,47 +70,32 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
])(hackspace.location); ])(hackspace.location);
if (!isEmpty(hackspace.location.areas)) { if (!isEmpty(hackspace.location.areas)) {
result.location.areas = hackspace.location.areas result.location.areas = hackspace.location.areas.map(
.map(pickFields([ pickFields(['name', 'description', 'square_meters']),
'name', );
'description',
'square_meters',
]));
} }
} }
if (!isEmpty(hackspace.spacefed)) { if (!isEmpty(hackspace.spacefed)) {
result.spacefed = pickFields([ result.spacefed = pickFields(['spacenet', 'spacesaml'])(
'spacenet', hackspace.spacefed,
'spacesaml', );
])(hackspace.spacefed);
} }
if (!isEmpty(hackspace.cam)) { if (!isEmpty(hackspace.cam)) {
result.cam = hackspace.cam result.cam = hackspace.cam.map(({ url }) => url);
.map(({ url }) => url);
} }
/* */ /* */
const state = await strapi const state = await strapi.documents('api::state.state').findFirst({
.documents('api::state.state') populate: ['icon.open', 'icon.closed'],
.findFirst({ });
populate: [
'icon.open',
'icon.closed',
],
});
if (!isEmpty(state)) { if (!isEmpty(state)) {
result.state = pickFields([ result.state = pickFields(['open', 'trigger_person', 'message'])(state);
'open',
'trigger_person',
'message',
])(state);
result.state.lastchange = result.state.lastchange = dateTimeToUnixtime(String(state.updatedAt));
dateTimeToUnixtime(String(state.updatedAt));
if (!isEmpty(state.icon)) { if (!isEmpty(state.icon)) {
result.state.icon = { result.state.icon = {
@ -120,20 +107,14 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
/* */ /* */
const events = await strapi const events = await strapi.documents('api::event.event').findMany({
.documents('api::event.event') sort: { createdAt: 'desc' },
.findMany({ limit: 10,
sort: { createdAt: 'desc' }, });
limit: 10,
});
if (!isEmpty(events)) { if (!isEmpty(events)) {
result.events = events.map((event) => ({ result.events = events.map((event) => ({
...pickFields([ ...pickFields(['name', 'type', 'extra'])(event),
'name',
'type',
'extra',
])(event),
timestamp: dateTimeToUnixtime(String(event.createdAt)), timestamp: dateTimeToUnixtime(String(event.createdAt)),
})); }));
} }
@ -160,8 +141,8 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
])(hackspace.contact); ])(hackspace.contact);
if (!isEmpty(hackspace.contact.keymasters)) { if (!isEmpty(hackspace.contact.keymasters)) {
result.contact.keymasters = hackspace.contact.keymasters result.contact.keymasters = hackspace.contact.keymasters.map(
.map(pickFields([ pickFields([
'name', 'name',
'irc_nick', 'irc_nick',
'phone', 'phone',
@ -170,113 +151,96 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
'xmpp', 'xmpp',
'mastodon', 'mastodon',
'matrix', 'matrix',
])); ]),
);
} }
} }
/* */ /* */
const getSensorsRaw = (query: UID.ContentType, populate = []): Promise<Object[]> => const getSensorsRaw = (
strapi.documents(query) query: UID.ContentType,
.findMany({ populate }) populate = [],
.then((sensors) => sensors ): Promise<Object[]> =>
.map((sensor) => ({ strapi
...sensor, .documents(query)
lastchange: dateTimeToUnixtime(String(sensor.updatedAt)), .findMany({ populate })
})) .then((sensors) =>
); sensors.map((sensor) => ({
...sensor,
lastchange: dateTimeToUnixtime(String(sensor.updatedAt)),
})),
);
const getSensors = (query: UID.ContentType, fields: Array<string>, populate = []) => const getSensors = (
getSensorsRaw(query, populate) query: UID.ContentType,
.then((sensors) => sensors fields: Array<string>,
.map(pickFields(fields)) populate = [],
) =>
getSensorsRaw(query, populate).then((sensors) =>
sensors.map(pickFields(fields)),
); );
const sensors = { const sensors = {
temperature: await getSensors( temperature: await getSensors(
'api::temperature-sensor.temperature-sensor', 'api::temperature-sensor.temperature-sensor',
[ ['value', 'unit', 'location', 'name', 'description', 'lastchange'],
'value',
'unit',
'location',
'name',
'description',
'lastchange',
]
), ),
carbondioxide: await getSensors( carbondioxide: await getSensors(
'api::carbondioxide-sensor.carbondioxide-sensor', 'api::carbondioxide-sensor.carbondioxide-sensor',
[ ['value', 'unit', 'location', 'name', 'description', 'lastchange'],
'value',
'unit',
'location',
'name',
'description',
'lastchange',
]
), ),
door_locked: await getSensors( door_locked: await getSensors(
'api::door-locked-sensor.door-locked-sensor', 'api::door-locked-sensor.door-locked-sensor',
[ ['value', 'location', 'name', 'description', 'lastchange'],
'value',
'location',
'name',
'description',
'lastchange',
]
),
barometer: await getSensors(
'api::barometer-sensor.barometer-sensor',
[
'value',
'unit',
'location',
'name',
'description',
'lastchange',
]
), ),
barometer: await getSensors('api::barometer-sensor.barometer-sensor', [
'value',
'unit',
'location',
'name',
'description',
'lastchange',
]),
radiation: await (async () => { radiation: await (async () => {
const types = [ const types = ['alpha', 'beta', 'gamma', 'beta_gamma'];
'alpha',
'beta',
'gamma',
'beta_gamma',
];
const sensors = await getSensorsRaw( const sensors = await getSensorsRaw(
'api::radiation-sensor.radiation-sensor' 'api::radiation-sensor.radiation-sensor',
); );
const draft = Object.fromEntries(types.map((type) => [ const draft = Object.fromEntries(
type, types.map((type) => [
sensors type,
.filter((sensor: { type: string; }) => sensor.type === type) sensors
.map(pickFields([ .filter((sensor: { type: string }) => sensor.type === type)
'value', .map(
'unit', pickFields([
'dead_time', 'value',
'conversion_factor', 'unit',
'location', 'dead_time',
'name', 'conversion_factor',
'description', 'location',
'lastchange', 'name',
])) 'description',
])); 'lastchange',
]),
),
]),
);
return pickFields(types)(draft); return pickFields(types)(draft);
})(), })(),
humidity: (await getSensors( humidity: (
'api::humidity-sensor.humidity-sensor', await getSensors('api::humidity-sensor.humidity-sensor', [
[
'value', 'value',
'unit', 'unit',
'location', 'location',
'name', 'name',
'description', 'description',
'lastchange', 'lastchange',
] ])
)).map((sensor: { unit: string; }) => { ).map((sensor: { unit: string }) => {
const { unit, ...rest } = sensor; const { unit, ...rest } = sensor;
return { return {
...rest, ...rest,
@ -285,87 +249,58 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
}), }),
beverage_supply: await getSensors( beverage_supply: await getSensors(
'api::beverage-supply.beverage-supply', 'api::beverage-supply.beverage-supply',
[ ['value', 'unit', 'location', 'name', 'description', 'lastchange'],
'value',
'unit',
'location',
'name',
'description',
'lastchange',
]
), ),
power_consumption: await getSensors( power_consumption: await getSensors(
'api::power-consumption-sensor.power-consumption-sensor', 'api::power-consumption-sensor.power-consumption-sensor',
[ ['value', 'unit', 'location', 'name', 'description', 'lastchange'],
'value',
'unit',
'location',
'name',
'description',
'lastchange',
]
), ),
power_generation: await getSensors( power_generation: await getSensors(
'api::power-generation-sensor.power-generation-sensor', 'api::power-generation-sensor.power-generation-sensor',
[ ['value', 'unit', 'location', 'name', 'description', 'lastchange'],
'value',
'unit',
'location',
'name',
'description',
'lastchange',
]
), ),
wind: (await getSensors( wind: (
'api::wind-sensor.wind-sensor', await getSensors(
[ 'api::wind-sensor.wind-sensor',
'properties', ['properties', 'location', 'name', 'description', 'lastchange'],
'location', [
'name', 'properties.speed',
'description', 'properties.gust',
'lastchange', 'properties.direction',
], 'properties.elevation',
[ ],
'properties.speed', )
'properties.gust', ).map(
'properties.direction', (sensor: {
'properties.elevation', properties: { bits_per_second: number; packets_per_second: number };
] }) => {
)).map((sensor: { properties: { bits_per_second: number; packets_per_second: number; }; }) => { const { properties, ...rest } = sensor;
const { properties, ...rest } = sensor;
const propertiesEntries = Object.entries(pickFields([ const propertiesEntries = Object.entries(
'speed', pickFields(['speed', 'gust', 'direction', 'elevation'])(properties),
'gust', ).map(([k, { value, unit }]) => [
'direction', k,
'elevation', {
])(properties)) value,
.map(([k, { value, unit }]) => [k, { unit: unit === 'degree' ? '°' : unit,
value, },
unit: unit === 'degree' ? '°' : unit, ]);
}]);
return { return {
...rest, ...rest,
...(isEmpty(propertiesEntries) ...(isEmpty(propertiesEntries)
? {} ? {}
: { properties: Object.fromEntries(propertiesEntries) } : { properties: Object.fromEntries(propertiesEntries) }),
), };
}; },
}), ),
network_connections: (await getSensors( network_connections: (
'api::network-connections-sensor.network-connections-sensor', await getSensors(
[ 'api::network-connections-sensor.network-connections-sensor',
'location', ['location', 'name', 'description', 'lastchange', 'machines'],
'name', ['machines'],
'description', )
'lastchange', ).map((sensor: { machines: Array<{ name?: string; mac?: string }> }) => {
'machines',
],
[
'machines',
]
)).map((sensor: { machines: Array<{ name?: string; mac?: string; }>; }) => {
const { machines, ...rest } = sensor; const { machines, ...rest } = sensor;
return { return {
...rest, ...rest,
@ -376,82 +311,63 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
}), }),
account_balance: await getSensors( account_balance: await getSensors(
'api::account-balance-sensor.account-balance-sensor', 'api::account-balance-sensor.account-balance-sensor',
[ ['value', 'unit', 'location', 'name', 'description', 'lastchange'],
'value',
'unit',
'location',
'name',
'description',
'lastchange',
]
), ),
total_member_count: await getSensors( total_member_count: await getSensors(
'api::total-member-count-sensor.total-member-count-sensor', 'api::total-member-count-sensor.total-member-count-sensor',
[ ['value', 'location', 'name', 'description', 'lastchange'],
'value',
'location',
'name',
'description',
'lastchange',
]
), ),
people_now_present: (await getSensors( people_now_present: (
'api::people-now-present-sensor.people-now-present-sensor', await getSensors(
[ 'api::people-now-present-sensor.people-now-present-sensor',
'value', ['value', 'location', 'name', 'names', 'description', 'lastchange'],
'location', ['names'],
'name', )
'names', ).map((sensor: { names: Array<{ name: string }> }) => {
'description',
'lastchange',
],
[
'names',
]
)).map((sensor: { names: Array<{ name: string; }>; }) => {
const { names, ...rest } = sensor; const { names, ...rest } = sensor;
return { return {
...rest, ...rest,
...(isEmpty(names) ...(isEmpty(names) ? {} : { names: names.map((x) => x.name) }),
? {}
: { names: names.map((x) => x.name) }),
}; };
}), }),
network_traffic: (await getSensors( network_traffic: (
'api::network-traffic-sensor.network-traffic-sensor', await getSensors(
[ 'api::network-traffic-sensor.network-traffic-sensor',
'properties', [
'value', 'properties',
'location', 'value',
'name', 'location',
'names', 'name',
'description', 'names',
'lastchange', 'description',
], 'lastchange',
[ ],
'properties.bits_per_second', ['properties.bits_per_second', 'properties.packets_per_second'],
'properties.packets_per_second', )
] ).map(
)).map((sensor: { properties: { bits_per_second: number; packets_per_second: number; }; }) => { (sensor: {
const { properties, ...rest } = sensor; properties: { bits_per_second: number; packets_per_second: number };
}) => {
const { properties, ...rest } = sensor;
const propertiesEntries = Object.entries(pickFields([ const propertiesEntries = Object.entries(
'bits_per_second', pickFields(['bits_per_second', 'packets_per_second'])(properties),
'packets_per_second', ).map(([k, v]) => [
])(properties)) k,
.map(([k, v]) => [k, { {
'bits_per_second': pickFields(['value', 'maximum']), bits_per_second: pickFields(['value', 'maximum']),
'packets_per_second': pickFields(['value']), packets_per_second: pickFields(['value']),
}[k](v)]); }[k](v),
]);
return { return {
...rest, ...rest,
...(isEmpty(propertiesEntries) ...(isEmpty(propertiesEntries)
? {} ? {}
: { properties: Object.fromEntries(propertiesEntries) } : { properties: Object.fromEntries(propertiesEntries) }),
), };
}; },
}), ),
}; };
if (Object.entries(sensors).some(([_, sensor]) => !isEmpty(sensor))) { if (Object.entries(sensors).some(([_, sensor]) => !isEmpty(sensor))) {
@ -461,61 +377,52 @@ export default ({ strapi }: { strapi: Core.Strapi }) => ({
/* */ /* */
if (!isEmpty(hackspace.feeds)) { if (!isEmpty(hackspace.feeds)) {
const feeds = pickFields([ const feeds = pickFields(['blog', 'wiki', 'calendar', 'flickr'])(
'blog', hackspace.feeds,
'wiki', );
'calendar',
'flickr',
])(hackspace.feeds);
result.feeds = Object.fromEntries( result.feeds = Object.fromEntries(
Object.entries(feeds) Object.entries(feeds).map(([k, v]) => [
.map(([k, v]) => [k, pickFields([ k,
'type', pickFields(['type', 'url'])(v),
'url', ]),
])(v)])
); );
} }
/* */ /* */
if (!isEmpty(hackspace.projects)) { if (!isEmpty(hackspace.projects)) {
result.projects = hackspace.projects result.projects = hackspace.projects.map(({ url }) => url);
.map(({ url }) => url);
} }
/* */ /* */
if (!isEmpty(hackspace.links)) { if (!isEmpty(hackspace.links)) {
result.links = hackspace.links result.links = hackspace.links.map(
.map(pickFields([ pickFields(['name', 'description', 'url']),
'name', );
'description',
'url',
]));
} }
/* */ /* */
if (!isEmpty(hackspace.membership_plans)) { if (!isEmpty(hackspace.membership_plans)) {
result.membership_plans = hackspace.membership_plans result.membership_plans = hackspace.membership_plans.map(
.map(pickFields([ pickFields([
'name', 'name',
'value', 'value',
'currency', 'currency',
'billing_interval', 'billing_interval',
'description', 'description',
])); ]),
);
} }
/* */ /* */
if (!isEmpty(hackspace.linked_spaces)) { if (!isEmpty(hackspace.linked_spaces)) {
result.linked_spaces = hackspace.linked_spaces result.linked_spaces = hackspace.linked_spaces.map(
.map(pickFields([ pickFields(['endpoint', 'website']),
'endpoint', );
'website',
]));
} }
/* */ /* */

View file

@ -7,6 +7,6 @@ export default {
config: { config: {
auth: false, auth: false,
}, },
} },
] ],
} };

View file

@ -17,16 +17,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["°C", "°F", "K", "°De", "°N", "°R", "°Ré", "°Rø"],
"°C",
"°F",
"K",
"°De",
"°N",
"°R",
"°Ré",
"°Rø"
],
"required": true "required": true
}, },
"location": { "location": {

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::temperature-sensor.temperature-sensor'); export default factories.createCoreController(
'api::temperature-sensor.temperature-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::temperature-sensor.temperature-sensor'); export default factories.createCoreRouter(
'api::temperature-sensor.temperature-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::temperature-sensor.temperature-sensor'); export default factories.createCoreService(
'api::temperature-sensor.temperature-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreController('api::total-member-count-sensor.total-member-count-sensor'); export default factories.createCoreController(
'api::total-member-count-sensor.total-member-count-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::total-member-count-sensor.total-member-count-sensor'); export default factories.createCoreRouter(
'api::total-member-count-sensor.total-member-count-sensor',
);

View file

@ -4,4 +4,6 @@
import { factories } from '@strapi/strapi'; import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::total-member-count-sensor.total-member-count-sensor'); export default factories.createCoreService(
'api::total-member-count-sensor.total-member-count-sensor',
);

View file

@ -11,17 +11,13 @@
"type": "media", "type": "media",
"multiple": false, "multiple": false,
"required": true, "required": true,
"allowedTypes": [ "allowedTypes": ["images"]
"images"
]
}, },
"closed": { "closed": {
"type": "media", "type": "media",
"multiple": false, "multiple": false,
"required": true, "required": true,
"allowedTypes": [ "allowedTypes": ["images"]
"images"
]
} }
} }
} }

View file

@ -13,9 +13,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["degree"],
"degree"
],
"required": true "required": true
} }
} }

View file

@ -12,9 +12,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["m"],
"m"
],
"required": true "required": true
} }
} }

View file

@ -12,11 +12,7 @@
}, },
"unit": { "unit": {
"type": "enumeration", "type": "enumeration",
"enum": [ "enum": ["m/s", "km/h", "kn"],
"m/s",
"km/h",
"kn"
],
"required": true "required": true
} }
} }