Add support for pushing things to OpenHAB

This commit is contained in:
2024-11-15 20:19:25 +01:00
parent c2e401eb95
commit d5031b9c1a
2 changed files with 7 additions and 6 deletions

View File

@@ -21,10 +21,6 @@ export const importThings = async (config: Config, options: ImportOptions) => {
return new constructor(source, cfg).loadThings(); return new constructor(source, cfg).loadThings();
}))).flat(); }))).flat();
if (options.force) {
await openhab.deleteThings(...things.map(t => t.UID));
}
const existingThings = await openhab.getThings(); const existingThings = await openhab.getThings();
const existingThingsUIDs = existingThings.map(t => t.UID); const existingThingsUIDs = existingThings.map(t => t.UID);
@@ -36,6 +32,11 @@ export const importThings = async (config: Config, options: ImportOptions) => {
.filter(t => !existingThingsUIDs.includes(t.UID)) .filter(t => !existingThingsUIDs.includes(t.UID))
.filter(filter); .filter(filter);
if (options.force) {
await openhab.deleteThings(...thingsToImport.map(t => t.UID));
}
await openhab.createThings(...thingsToImport);
return thingsToImport; return thingsToImport;
} }

View File

@@ -28,8 +28,8 @@ export class OpenHAB {
} }
async createThings(...things: Thing[]): Promise<Thing[]> { async createThings(...things: Thing[]): Promise<Thing[]> {
const response = await this.#api.post<Thing[]>('/things'); const responses = await Promise.all(things.map(thing => this.#api.post<Thing>('/things', thing)));
return response.data; return responses.map(r => r.data);
} }
} }