dev env setup

This commit is contained in:
tw-blue
2025-12-06 21:27:29 +01:00
parent 987a380758
commit bc9f0f9f3b
38 changed files with 5953 additions and 733 deletions
@@ -17,7 +17,9 @@ export class HealthCheckController extends Controller {
@Get("ok")
@SuccessResponse("200", "OK")
public async getOk() {}
public async getOk() {
return "ok";
}
@Get("auth")
@Security(KC_SECURITY_NAME)
@@ -25,6 +27,7 @@ export class HealthCheckController extends Controller {
public async getAuth() {}
@Post("testmessage")
@SuccessResponse("200", "OK")
public async sendTestMessage() {
await this.messaging.sendTestMessage();
}
@@ -6,11 +6,13 @@ import {
Path,
Post,
Put,
Request,
Response,
Route,
Security,
SuccessResponse,
} from "@tsoa/runtime";
import express from "express";
import { inject } from "../infrastructure/di/index.js";
import { ErrorStates } from "../infrastructure/errorStates.js";
import { Claim } from "../models/claim.js";
@@ -22,19 +24,27 @@ import { MembersService } from "../services/membersService.js";
export class MembersContoller extends Controller {
private readonly membersService = inject(MembersService);
@Security(KC_SECURITY_NAME, [Claim.MemberAdmin])
@SuccessResponse("200", "OK")
@Get()
public async getMembers(): Promise<Member[]> {
return await this.membersService.getMembers();
public async getMembers(
@Request() request: express.Request,
): Promise<Member[]> {
return await this.membersService.getMembers(request);
}
@Security(KC_SECURITY_NAME, [Claim.MemberAdmin])
@SuccessResponse("200", "OK")
@Response(404, "Member not found")
@Get("{memberId}")
public async getMember(@Path() memberId: string): Promise<Member> {
public async getMember(
@Path() memberId: string,
@Request() request: express.Request,
): Promise<Member> {
try {
const foundMember =
await this.membersService.getMemberById(memberId);
const foundMember = await this.membersService.getMemberById(
memberId,
request,
);
return foundMember;
} catch (error) {
if (
@@ -53,8 +63,9 @@ export class MembersContoller extends Controller {
@Post()
public async createMember(
@Body() createArgs: MemberCreateArgs,
@Request() request: express.Request,
): Promise<Member> {
return await this.membersService.createMember(createArgs);
return await this.membersService.createMember(createArgs, request);
}
@Security(KC_SECURITY_NAME, [Claim.MemberAdmin])
@@ -62,9 +73,12 @@ export class MembersContoller extends Controller {
@Response(400, "Bad Request")
@Response(404, "Member not found")
@Put()
public async updateMember(@Body() member: Member): Promise<void> {
public async updateMember(
@Body() member: Member,
@Request() request: express.Request,
): Promise<void> {
try {
await this.membersService.updateMember(member);
await this.membersService.updateMember(member, request);
} catch (error) {
if (
error instanceof Error &&
@@ -83,8 +97,13 @@ export class MembersContoller extends Controller {
@Delete("{memberId}")
public async scheduleDeletion(
@Path() memberId: string,
@Body() cancelDate: Date
){
await this.membersService.scheduleDeletion(memberId, cancelDate);
@Body() cancelDate: Date,
@Request() request: express.Request,
) {
await this.membersService.scheduleDeletion(
memberId,
cancelDate,
request,
);
}
}
+15 -14
View File
@@ -1,5 +1,4 @@
import {
Body,
BodyProp,
Controller,
Get,
@@ -8,25 +7,27 @@ import {
Query,
Route,
Security,
SuccessResponse,
} from "@tsoa/runtime";
import { inject } from "../infrastructure/di";
import { Claim } from "../models/claim";
import { Topic } from "../models/topic";
import { User } from "../models/user";
import { inject } from "../infrastructure/di/index.js";
import { Claim } from "../models/claim.js";
import { type User } from "../models/user.js";
import { KC_SECURITY_NAME } from "../services/keycloak/user/index.js";
import { UserService } from "../services/userService";
import { UserService } from "../services/userService.js";
@Route("users")
export class UsersController extends Controller {
private readonly userService = inject(UserService);
@Security(KC_SECURITY_NAME, [Claim.UserAdmin])
@SuccessResponse("200", "OK")
@Get()
public async getUsers(): Promise<User[]> {
return await this.userService.getUsers();
}
@Security(KC_SECURITY_NAME, [Claim.UserAdmin])
@SuccessResponse("200", "OK")
@Put("/claims/{uid}")
public async setClaims(
@Path() uid: string,
@@ -36,12 +37,12 @@ export class UsersController extends Controller {
await this.userService.setClaim(uid, claim, value);
}
@Security(KC_SECURITY_NAME)
@Put("/subscriptions/{token}")
public async setSubscriptions(
@Body() topics: Topic[],
@Path() token: string,
) {
await this.userService.setSubscriptions(token, topics);
}
// @Security(KC_SECURITY_NAME)
// @Put("/subscriptions/{token}")
// public async setSubscriptions(
// @Body() topics: Topic[],
// @Path() token: string,
// ) {
// await this.userService.setSubscriptions(token, topics);
// }
}