mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-14 15:14:56 -04:00
private: adds tokens controller
adds private api adds AuthTokenDto and AuthTokenWithSecretDto adds necessary methods in the users service adds RandomnessError Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
parent
1c7452d066
commit
80c7ae2fa9
10 changed files with 248 additions and 12 deletions
54
src/api/private/tokens/tokens.controller.ts
Normal file
54
src/api/private/tokens/tokens.controller.ts
Normal file
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Delete,
|
||||
Get,
|
||||
HttpCode,
|
||||
Param,
|
||||
Post,
|
||||
} from '@nestjs/common';
|
||||
import { ConsoleLoggerService } from '../../../logger/console-logger.service';
|
||||
import { UsersService } from '../../../users/users.service';
|
||||
import { AuthTokenDto } from '../../../users/auth-token.dto';
|
||||
import { AuthTokenWithSecretDto } from '../../../users/auth-token-with-secret.dto';
|
||||
|
||||
@Controller('tokens')
|
||||
export class TokensController {
|
||||
constructor(
|
||||
private readonly logger: ConsoleLoggerService,
|
||||
private usersService: UsersService,
|
||||
) {
|
||||
this.logger.setContext(TokensController.name);
|
||||
}
|
||||
|
||||
@Get()
|
||||
async getUserTokens(): Promise<AuthTokenDto[]> {
|
||||
// ToDo: Get real userName
|
||||
return (await this.usersService.getTokensByUsername('molly')).map((token) =>
|
||||
this.usersService.toAuthTokenDto(token),
|
||||
);
|
||||
}
|
||||
|
||||
@Post()
|
||||
async postToken(@Body() label: string): Promise<AuthTokenWithSecretDto> {
|
||||
// ToDo: Get real userName
|
||||
const authToken = await this.usersService.createTokenForUser(
|
||||
'hardcoded',
|
||||
label,
|
||||
);
|
||||
return this.usersService.toAuthTokenWithSecretDto(authToken);
|
||||
}
|
||||
|
||||
@Delete('/:timestamp')
|
||||
@HttpCode(204)
|
||||
async deleteToken(@Param('timestamp') timestamp: number) {
|
||||
// ToDo: Get real userName
|
||||
return this.usersService.removeToken('hardcoded', timestamp);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue