Ability to register bonob service with sonos via button

This commit is contained in:
simojenki
2021-01-31 19:02:03 +11:00
parent 6f161abd95
commit 2ed2fce280
10 changed files with 742 additions and 316 deletions

View File

@@ -1,8 +1,8 @@
import express, { Express } from "express";
import * as Eta from "eta";
import { Sonos, servicesFrom, registrationStatus, Service } from "./sonos";
import { Sonos, Service } from "./sonos";
function server(sonos: Sonos, bonob: Service): Express {
function server(sonos: Sonos, bonobService: Service): Express {
const app = express();
app.use(express.static("./web/public"));
@@ -12,15 +12,25 @@ function server(sonos: Sonos, bonob: Service): Express {
app.set("views", "./web/views");
app.get("/", (_, res) => {
sonos.devices().then((devices) => {
const services = servicesFrom(devices);
Promise.all([
sonos.devices(),
sonos.services()
]).then(([devices, services]) => {
const registeredBonobService = services.find(it => it.sid == bonobService.sid);
res.render("index", {
devices,
services,
bonob,
registration: registrationStatus(services, bonob),
bonobService,
registeredBonobService
});
});
})
});
app.post("/register", (_, res) => {
sonos.register(bonobService).then(success => {
if(success) res.send("Yay")
else res.send("boo hoo")
})
});
return app;