peas/packages/web/src/routes/api/timeline/users.ts

47 lines
1.1 KiB
TypeScript

import { Hono } from "hono";
import { Auth, getHeaderToken } from "../../../lib/token.js";
import pool from "../../../lib/database.js";
import type { RowDataPacket } from "mysql2";
const Users = new Hono();
Users.post("/", async (c) => {
const body = await c.req.json();
if (!Auth(getHeaderToken(c.req.header("Authorization") ?? ""), ["read:user"])) {
return c.json({
success: false,
error: "auth_failed",
});
}
let page = 1;
if (
typeof body.page === "string" &&
!isNaN(Number(body.page)) &&
Number(body.page) >= 1
) {
page = Number(body.page);
}
const [usersData] = await pool.execute<RowDataPacket[]>(
"SELECT * FROM users"
);
let result = [];
for (let i = usersData.length - 1; i < 0; i--) {
result.push({
username: usersData[i].id,
name: usersData[i].name,
isAdmin: usersData[i].isAdmin === 1 ? true: false,
createAt: usersData[i].time,
});
}
return c.json({
success: true,
users: result,
});
});
export default Users;