Mercurial > code > home > repos > light-bridge
comparison light_bridge.py @ 10:140633abfa2a
route colors from PUT to Light.setColor
author | drewp@bigasterisk.com |
---|---|
date | Sun, 28 Jan 2024 16:53:35 -0800 |
parents | 05fb0319eb64 |
children | 028ed39aa78f |
comparison
equal
deleted
inserted
replaced
9:9f427d8073c3 | 10:140633abfa2a |
---|---|
3 """ | 3 """ |
4 import json | 4 import json |
5 import logging | 5 import logging |
6 import time | 6 import time |
7 from functools import partial | 7 from functools import partial |
8 from color import Color | |
8 | 9 |
9 from patchablegraph import PatchableGraph | 10 from patchablegraph import PatchableGraph |
10 from patchablegraph.handler import GraphEvents, StaticGraph | 11 from patchablegraph.handler import GraphEvents, StaticGraph |
11 from sse_starlette.sse import EventSourceResponse | 12 from sse_starlette.sse import EventSourceResponse |
12 from starlette.applications import Starlette | 13 from starlette.applications import Starlette |
21 log = logging.getLogger() | 22 log = logging.getLogger() |
22 | 23 |
23 | 24 |
24 async def output(lights: Lights, request: Request) -> JSONResponse: | 25 async def output(lights: Lights, request: Request) -> JSONResponse: |
25 light = lights.byName(request.query_params['light']) | 26 light = lights.byName(request.query_params['light']) |
27 body = (await request.body()).decode('utf8') | |
28 await light.setColor(Color.fromHex(body)) | |
26 return JSONResponse(light.to_dict()) | 29 return JSONResponse(light.to_dict()) |
27 | 30 |
28 | 31 |
29 async def table(lights: Lights, req: Request) -> EventSourceResponse: | 32 async def table(lights: Lights, req: Request) -> EventSourceResponse: |
30 | 33 |