Add new API /api/tag

This commit is contained in:
2023-08-27 22:20:21 +08:00
parent 8b31fe104e
commit 4ee6cc38c7
4 changed files with 86 additions and 20 deletions

39
routes/api/tag/[id].ts Normal file
View File

@@ -0,0 +1,39 @@
import { Handlers } from "$fresh/server.ts";
import { get_task_manager } from "../../../server.ts";
import { Tag } from "../../../db.ts";
import {
gen_data,
gen_error,
JSONResult,
return_data,
} from "../../../server/utils.ts";
export const handler: Handlers = {
GET(_req, ctx) {
const ids = ctx.params.id.split(",");
const r: Record<string, JSONResult<Tag>> = {};
for (const _id of ids) {
const id = parseInt(_id);
let key: string | undefined;
let tag: string | undefined;
if (isNaN(id)) {
tag = _id;
}
const m = get_task_manager();
let t: Tag | undefined;
if (tag) {
t = m.db.get_tag_by_tag(tag);
key = tag;
} else {
t = m.db.get_tag(id);
key = id.toString();
}
if (t) {
r[key] = gen_data(t);
} else {
r[key] = gen_error(404, "tag not found.");
}
}
return return_data(r);
},
};