aimedb: Hoist handlers

This commit is contained in:
Tau
2019-04-28 17:39:20 -04:00
parent 38449c3117
commit 8323e3ee7c
2 changed files with 62 additions and 49 deletions

56
src/aimedb/handler.ts Normal file
View File

@@ -0,0 +1,56 @@
import { AimeRequest } from "./request";
import { AimeResponse } from "./response";
export function dispatch(req: AimeRequest): AimeResponse | undefined {
switch (req.type) {
case "hello":
console.log("Aimedb: Hello");
return { type: req.type, status: 1 };
case "campaign":
console.log("Aimedb: Campaign stuff");
return { type: req.type, status: 1 };
case "lookup":
console.log("Aimedb: Mifare lookup v1", req.luid);
return {
type: req.type,
status: 1,
aimeId: 0x55667788,
registerLevel: "none",
};
case "lookup2":
console.log("Aimedb: Mifare lookup v2", req.luid);
return {
type: req.type,
status: 1,
aimeId: 0x55667788,
registerLevel: "none",
};
case "register":
// We get sent here if lookup does not return an aimeId
console.log("Aimedb: Mifare register", req.luid);
return { type: req.type, status: 1, aimeId: 0x55667788 };
case "log":
console.log("Aimedb: Log message");
return { type: req.type, status: 1 };
case "goodbye":
console.log("Aimedb: Goodbye");
return undefined;
default:
throw new Error("Aimedb: Handler not implemented!");
}
}

View File

@@ -1,3 +1,4 @@
import { dispatch } from "./handler";
import { AimeRequest } from "./request";
import { setup } from "./pipeline";
@@ -8,57 +9,13 @@ export default async function aimedb(socket) {
try {
for await (const obj of input) {
console.log("Aimedb: Decode", obj);
const req = obj as AimeRequest;
const res = dispatch(req);
console.log("Aimedb: Decode", req);
switch (req.type) {
case "hello":
console.log("Aimedb: Hello");
output.write({ type: req.type, status: 1 });
break;
case "campaign":
console.log("Aimedb: Campaign stuff");
output.write({ type: req.type, status: 1 });
break;
case "lookup":
case "lookup2":
console.log("Aimedb: Mifare lookup", req.luid);
output.write({
type: req.type,
status: 1,
aimeId: 0x55667788,
});
break;
case "register":
// We get sent here if lookup does not return an aimeId
console.log("Aimedb: Mifare register", req.luid);
output.write({ type: req.type, status: 1, aimeId: 0x55667788 });
break;
case "log":
console.log("Aimedb: Log message");
output.write({ type: req.type, status: 1 });
break;
case "goodbye":
console.log("Aimedb: Goodbye");
break;
default:
console.log("Aimedb: Handler not implemented!");
break;
if (res !== undefined) {
output.write(res);
}
}
} catch (e) {