From c0ed70e3b666ef3df0e1a500260d1bb718b1a3e3 Mon Sep 17 00:00:00 2001 From: Martin Dimitrov Date: Sun, 25 Feb 2024 10:13:25 -0800 Subject: [PATCH] initial stuff --- Dockerfile | 1 - bun.lockb | Bin 91209 -> 195578 bytes docker-compose.yml | 8 ++--- package.json | 2 +- packages/client/package.json | 2 +- packages/server/package.json | 2 +- .../server/src/clients/db/RedisDbClient.ts | 4 +++ packages/server/src/routers/DoorRouter.ts | 30 ++++++++++++++++++ packages/server/src/server.ts | 2 ++ packages/server/src/types/IDoor.ts | 4 +++ packages/server/src/types/RedisKeys.ts | 5 +++ 11 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 packages/server/src/routers/DoorRouter.ts create mode 100644 packages/server/src/types/IDoor.ts diff --git a/Dockerfile b/Dockerfile index 2fd4124..31e17af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,6 @@ ADD bun.lockb bun.lockb ADD package.json package.json ADD tsconfig.json tsconfig.json - # install all deps RUN bun install diff --git a/bun.lockb b/bun.lockb index 4a20bbf4ec2a774ac7b5ef3123d54fc64e780f2c..25f0a21d06bb7e965e06567a86b0427091703253 100755 GIT binary patch literal 195578 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 z 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 delta 19924 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 { return this.client.getDel(key); } + + public getClient() { + return this.client; + } } \ No newline at end of file diff --git a/packages/server/src/routers/DoorRouter.ts b/packages/server/src/routers/DoorRouter.ts new file mode 100644 index 0000000..5c3d9d0 --- /dev/null +++ b/packages/server/src/routers/DoorRouter.ts @@ -0,0 +1,30 @@ +import express from "express"; +import { getRedisClient } from "../clients/db/RedisDbProvider"; +import { IDoor } from "../types/IDoor"; +import { RedisKeys, concatKeys } from "../types/RedisKeys"; + +const router = express.Router(); +const client = await getRedisClient(); + +router.post('/:id', async(req, res) => { + const door: IDoor = req.body; + + await client.getClient().hSet(concatKeys(RedisKeys.DOORS, req.params.id), { + ...door + }); + + res.status(200).json(door); +}); + +router.get('/:id/status', async(req, res) => { + const isOpen = await client.getClient().exists(concatKeys(RedisKeys.DOORS, req.params.id, 'open')); + + if (isOpen) { + res.status(200).json({ status: 'open' }); + return; + } + + res.status(401).json({ status: 'closed' }); +}); + +export default router; \ No newline at end of file diff --git a/packages/server/src/server.ts b/packages/server/src/server.ts index ceacfb9..50a8802 100644 --- a/packages/server/src/server.ts +++ b/packages/server/src/server.ts @@ -3,6 +3,7 @@ import fileUpload from "express-fileupload"; import { challengeLimiter, uploadDownloadLimiter } from "./util/RateLimits"; import LnurlRouter from "./routers/LnurlRouter"; import ActionRouter from "./routers/ActionRouter"; +import DoorRouter from "./routers/DoorRouter"; const app = express(); @@ -21,6 +22,7 @@ app.use(express.static("dist")); // use routers app.use('/api/lnurl', LnurlRouter); app.use('/api/actions', ActionRouter); +app.use('/api/door', DoorRouter); app.listen(5000, async () => { console.log("listening on port 5000"); diff --git a/packages/server/src/types/IDoor.ts b/packages/server/src/types/IDoor.ts new file mode 100644 index 0000000..824e1aa --- /dev/null +++ b/packages/server/src/types/IDoor.ts @@ -0,0 +1,4 @@ +export interface IDoor { + id: string; + open?: string; +} \ No newline at end of file diff --git a/packages/server/src/types/RedisKeys.ts b/packages/server/src/types/RedisKeys.ts index 9606849..eb6b1a9 100644 --- a/packages/server/src/types/RedisKeys.ts +++ b/packages/server/src/types/RedisKeys.ts @@ -1,3 +1,8 @@ export enum RedisKeys { CHALLENGES = "challenges", + DOORS = "doors" +} + +export function concatKeys(...keys: String[]) { + return keys.join(':'); } \ No newline at end of file