BugFixes bzgl. Observables, Logging Anpassungen, Endpunkt hardening, dotenv-flow usage

This commit is contained in:
2024-09-20 13:49:50 +02:00
parent 205793faab
commit 3e84b82c92
25 changed files with 141 additions and 181 deletions

View File

@@ -20,17 +20,13 @@ export class UserController {
@UseGuards(OptionalJwtAuthGuard)
@Get()
async findByMail(@Request() req, @Query('mail') mail: string): Promise<User> {
this.logger.info(`Searching for user with EMail: ${mail}`);
const user = await this.userService.getUserByMail(mail, req.user as JwtUser);
this.logger.info(`Found user: ${JSON.stringify(user)}`);
return user;
}
@Get(':id')
async findById(@Param('id') id: string): Promise<User> {
this.logger.info(`Searching for user with ID: ${id}`);
const user = await this.userService.getUserById(id);
this.logger.info(`Found user: ${JSON.stringify(user)}`);
return user;
}
@UseGuards(AdminAuthGuard)
@@ -40,10 +36,8 @@ export class UserController {
}
@Post()
async save(@Body() user: any): Promise<User> {
this.logger.info(`Saving user: ${JSON.stringify(user)}`);
try {
const savedUser = await this.userService.saveUser(user);
this.logger.info(`User persisted: ${JSON.stringify(savedUser)}`);
return savedUser;
} catch (error) {
if (error instanceof ZodError) {
@@ -60,27 +54,23 @@ export class UserController {
}
@Post('guaranteed')
async saveGuaranteed(@Body() user: any): Promise<User> {
this.logger.info(`Saving user guaranteed: ${JSON.stringify(user)}`);
const savedUser = await this.userService.saveUser(user, false);
this.logger.info(`User persisted guaranteed: ${JSON.stringify(savedUser)}`);
return savedUser;
}
@Post('search')
async find(@Body() criteria: UserListingCriteria): Promise<{ results: User[]; totalCount: number }> {
this.logger.info(`Searching for users with criteria: ${JSON.stringify(criteria)}`);
const foundUsers = await this.userService.searchUserListings(criteria);
this.logger.info(`Found users: ${JSON.stringify(foundUsers)}`);
return foundUsers;
}
@Post('findTotal')
findTotal(@Body() criteria: UserListingCriteria): Promise<number> {
return this.userService.getUserListingsCount(criteria);
async findTotal(@Body() criteria: UserListingCriteria): Promise<number> {
return await this.userService.getUserListingsCount(criteria);
}
@UseGuards(JwtAuthGuard)
@Get('subscriptions/:id')
async findSubscriptionsById(@Param('id') id: string): Promise<Subscription[]> {
const subscriptions = this.fileService.getSubscriptions();
const subscriptions = [];
const user = await this.userService.getUserById(id);
subscriptions.forEach(s => {
s.userId = user.id;