AuthTokenEntity: Make validUntil not nullable

As all tokens are valid for a maximum of 2 years, the
validUntil attribute is always populated.

This updates the database schema and the DTO to reflect that.

Fixes #1256

Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
David Mehren 2021-05-09 22:05:47 +02:00
parent 6ddaa59e8c
commit 375cb4eae9
No known key found for this signature in database
GPG key ID: 185982BA4C42B7C3
4 changed files with 8 additions and 13 deletions

View file

@ -14,8 +14,7 @@ export class AuthTokenDto {
@IsDate()
createdAt: Date;
@IsDate()
@IsOptional()
validUntil: Date | null;
validUntil: Date;
@IsDate()
@IsOptional()
lastUsed: Date | null;

View file

@ -35,11 +35,8 @@ export class AuthToken {
@Column({ unique: true })
accessTokenHash: string;
@Column({
nullable: true,
type: 'date',
})
validUntil: Date | null;
@Column()
validUntil: Date;
@Column({
nullable: true,

View file

@ -309,11 +309,14 @@ describe('AuthService', () => {
authToken.keyId = 'testKeyId';
authToken.label = 'testLabel';
authToken.createdAt = new Date();
authToken.validUntil = new Date();
const tokenDto = service.toAuthTokenDto(authToken);
expect(tokenDto.keyId).toEqual(authToken.keyId);
expect(tokenDto.lastUsed).toBeNull();
expect(tokenDto.label).toEqual(authToken.label);
expect(tokenDto.validUntil).toBeNull();
expect(tokenDto.validUntil.getTime()).toEqual(
authToken.createdAt.getTime(),
);
expect(tokenDto.createdAt.getTime()).toEqual(
authToken.createdAt.getTime(),
);

View file

@ -184,14 +184,10 @@ export class AuthService {
label: authToken.label,
keyId: authToken.keyId,
createdAt: authToken.createdAt,
validUntil: null,
validUntil: authToken.validUntil,
lastUsed: null,
};
if (authToken.validUntil) {
tokenDto.validUntil = new Date(authToken.validUntil);
}
if (authToken.lastUsed) {
tokenDto.lastUsed = new Date(authToken.lastUsed);
}