From a3b6429c4818f2688a04e78a55954abf1993feb8 Mon Sep 17 00:00:00 2001 From: Li Zhineng Date: Wed, 2 Jul 2025 20:25:02 +0800 Subject: update data structure --- server.mjs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'server.mjs') diff --git a/server.mjs b/server.mjs index ff9d7ba..844430e 100644 --- a/server.mjs +++ b/server.mjs @@ -30,10 +30,9 @@ const getTimeControlller = (req, res) => { const eagleController = (req, res) => { const [, query] = req.url.split('?') const params = new URLSearchParams(query) - const mac = params.get('mac') - const key = params.get('key') + const { mac, key } = JSON.parse(params.get('params') || '{}') - if (mac === null || key === null) { + if (mac === undefined || key === undefined) { res.writeHead(400, { 'Content-Type': 'application/json' }) res.end('{}\n') return -- cgit v1.2.3 From 4abaac6c5df21a68d1ace7bcaee1e016a9edd90f Mon Sep 17 00:00:00 2001 From: Li Zhineng Date: Wed, 2 Jul 2025 20:35:37 +0800 Subject: subprocedure by path name --- server.mjs | 14 ++++++++++++++ server.test.mjs | 6 ++++++ 2 files changed, 20 insertions(+) (limited to 'server.mjs') diff --git a/server.mjs b/server.mjs index 844430e..18c6ee6 100644 --- a/server.mjs +++ b/server.mjs @@ -30,6 +30,20 @@ const getTimeControlller = (req, res) => { const eagleController = (req, res) => { const [, query] = req.url.split('?') const params = new URLSearchParams(query) + + switch (params.get('path')) { + case 'eagle/GET/genId': + eagleGenIdController(req, res) + break + default: + notFoundController(req, res) + break + } +} + +const eagleGenIdController = (req, res) => { + const [, query] = req.url.split('?') + const params = new URLSearchParams(query) const { mac, key } = JSON.parse(params.get('params') || '{}') if (mac === undefined || key === undefined) { diff --git a/server.test.mjs b/server.test.mjs index 259b913..1e44083 100644 --- a/server.test.mjs +++ b/server.test.mjs @@ -136,6 +136,12 @@ test('device registration endpoint returns bad request if missing encryption key assert.strictEqual(res.headers.get('content-type'), 'application/json') }) +test('device registration endpoint returns not found if path is not supported', async () => { + const params = new URLSearchParams({ path: 'eagle/GET/foo' }) + const res = await fetch(`${baseUrl}/eagle?${params.toString()}`) + assert.strictEqual(res.status, 404) +}) + test('exchange endpoint', async () => { const stubMacAddress = '0000000000' const stubKey = '00000000000000000000000000000000' -- cgit v1.2.3 From 40085a4679d88d2c0a141b95ee6818ac7420dae3 Mon Sep 17 00:00:00 2001 From: Li Zhineng Date: Wed, 2 Jul 2025 20:42:18 +0800 Subject: improve mac and key checking --- server.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'server.mjs') diff --git a/server.mjs b/server.mjs index 18c6ee6..2475442 100644 --- a/server.mjs +++ b/server.mjs @@ -46,7 +46,8 @@ const eagleGenIdController = (req, res) => { const params = new URLSearchParams(query) const { mac, key } = JSON.parse(params.get('params') || '{}') - if (mac === undefined || key === undefined) { + if (mac === undefined || mac === null + || key === undefined || key === null) { res.writeHead(400, { 'Content-Type': 'application/json' }) res.end('{}\n') return -- cgit v1.2.3