47 lines
1.1 KiB
TypeScript
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;
|