Implemented toe password reset route

ref #40
This commit is contained in:
Nicolai Ort 2020-12-22 10:57:25 +01:00
parent caeb17311b
commit 5aad581c2d
1 changed files with 13 additions and 2 deletions

View File

@ -1,4 +1,4 @@
import { Body, CookieParam, JsonController, Post, Res } from 'routing-controllers';
import { Body, CookieParam, JsonController, Param, Post, Res } from 'routing-controllers';
import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
import { IllegalJWTError, InvalidCredentialsError, JwtNotProvidedError, PasswordNeededError, RefreshTokenCountInvalidError, UsernameOrEmailNeededError } from '../errors/AuthError';
import { UserNotFoundError } from '../errors/UserErrors';
@ -6,6 +6,7 @@ import { CreateAuth } from '../models/actions/CreateAuth';
import { CreateResetToken } from '../models/actions/CreateResetToken';
import { HandleLogout } from '../models/actions/HandleLogout';
import { RefreshAuth } from '../models/actions/RefreshAuth';
import { ResetPassword } from '../models/actions/ResetPassword';
import { Auth } from '../models/responses/ResponseAuth';
import { Logout } from '../models/responses/ResponseLogout';
@ -86,6 +87,16 @@ export class AuthController {
@ResponseSchema(UsernameOrEmailNeededError)
@OpenAPI({ description: "Request a password reset token" })
async getResetToken(@Body({ validate: true }) passwordReset: CreateResetToken) {
return await passwordReset.toResetToken();
return { "resetToken": await passwordReset.toResetToken() };
}
@Post("/reset/:token")
@ResponseSchema(Auth)
@ResponseSchema(UserNotFoundError)
@ResponseSchema(UsernameOrEmailNeededError)
@OpenAPI({ description: "Reset a user's password" })
async resetPassword(@Param("token") token: string, @Body({ validate: true }) passwordReset: ResetPassword) {
passwordReset.resetToken = token;
return await passwordReset.resetPassword();
}
}