Initial
This commit is contained in:
29
endpoints/auth.ts
Normal file
29
endpoints/auth.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import {BunRequest as Request} from "bun";
|
||||
import {Claims, orm} from "../utilities/orm.ts";
|
||||
import jwt from "jsonwebtoken";
|
||||
|
||||
async function login(request: Request): Promise<Response> {
|
||||
try {
|
||||
const requestBody = await request.json();
|
||||
console.log(`/api/auth/login: username=${requestBody.username}`);
|
||||
const claims: Claims | null = await orm.users.verify(requestBody.username, requestBody.password);
|
||||
console.log(claims);
|
||||
if (claims) {
|
||||
const token = jwt.sign({...claims}, process.env.JWT_SECRET_KEY as string, {expiresIn: "24h"});
|
||||
return Response.json({token: token}, {status: 200});
|
||||
}
|
||||
|
||||
return Response.json({token: null}, {status: 401});
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
return Response.json({message: e}, {status: 401});
|
||||
}
|
||||
}
|
||||
async function test(request: Request, claims: Claims) {
|
||||
return Response.json(claims, {status: 200});
|
||||
}
|
||||
|
||||
export default {
|
||||
login,
|
||||
test
|
||||
};
|
||||
28
endpoints/user.ts
Normal file
28
endpoints/user.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import {Claims, orm} from "../utilities/orm";
|
||||
import {BunRequest as Request} from 'bun';
|
||||
|
||||
async function create (request: Request, claims: Claims): Promise<Response> {
|
||||
try {
|
||||
const requestBody = await request.json();
|
||||
return Response.json({
|
||||
...(await orm.users.create(requestBody.username, requestBody.password, claims))
|
||||
}, {status: 200});
|
||||
} catch (e: any) {
|
||||
return Response.json({message: e.message}, {status: 500});
|
||||
}
|
||||
}
|
||||
|
||||
async function get(request: Request, claims:Claims): Promise<Response> {
|
||||
try {
|
||||
return Response.json({
|
||||
...(await orm.users.get(request.params.id, claims))
|
||||
}, {status: 200});
|
||||
} catch (e: any) {
|
||||
return Response.json({message: e.message}, {status: 500});
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
create,
|
||||
get,
|
||||
}
|
||||
Reference in New Issue
Block a user