Fixes on the tokens magement
parent
a95601bc34
commit
797a8bbfda
|
|
@ -12,6 +12,7 @@ import { SessionController } from './controller/session.controller';
|
|||
import { Session } from './dto/session';
|
||||
import { TokensController } from './controller/tokens.controller';
|
||||
import { TokenService } from './service/token.service';
|
||||
import { Token } from './dto/token';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
|
@ -23,10 +24,10 @@ import { TokenService } from './service/token.service';
|
|||
username: process.env.DB_USER || 'postgres',
|
||||
password: process.env.DB_PASSWORD || 'postgres',
|
||||
database: process.env.DB_NAME || 'appdb',
|
||||
entities: [User, Purchase, Session],
|
||||
entities: [User, Purchase, Session, Token],
|
||||
synchronize: true,
|
||||
}),
|
||||
TypeOrmModule.forFeature([User, Purchase, Session]),
|
||||
TypeOrmModule.forFeature([User, Purchase, Session, Token]),
|
||||
],
|
||||
controllers: [
|
||||
AccessController,
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ export class SessionController {
|
|||
userCount: session.users.length,
|
||||
includesRequester: session.users.find((u) => u.id === userId),
|
||||
date: session.date,
|
||||
status: session.status,
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
import { Controller, Get, Query } from '@nestjs/common';
|
||||
import { Controller, Get, Logger, Query } from '@nestjs/common';
|
||||
import { TokenService } from 'src/service/token.service';
|
||||
import { UserService } from 'src/service/user.service';
|
||||
|
||||
@Controller('/tokens')
|
||||
export class TokensController {
|
||||
private readonly logger = new Logger(TokensController.name);
|
||||
|
||||
constructor(
|
||||
private readonly userService: UserService,
|
||||
private readonly tokenService: TokenService,
|
||||
|
|
@ -11,7 +13,14 @@ export class TokensController {
|
|||
|
||||
@Get()
|
||||
public async getTokenCount(@Query('userId') userId: string) {
|
||||
this.logger.debug(`Finding tokens for user: ${userId}`);
|
||||
const user = await this.userService.getUserById(userId);
|
||||
return await this.tokenService.getAvailableTokens(user);
|
||||
const token = await this.tokenService.getTokens(user);
|
||||
return {
|
||||
available: token.availableTokens,
|
||||
purchased: token.purchasedTokens,
|
||||
consumed: token.consumedTokens,
|
||||
used: token.lockedTokens,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,6 @@ export class User {
|
|||
@JoinTable()
|
||||
joinedSessions: Session[];
|
||||
|
||||
@OneToOne(() => Token, (token) => token.user)
|
||||
@OneToOne(() => Token, (token) => token.user, { cascade: true })
|
||||
token: Token;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,9 +22,8 @@ export class TokenService {
|
|||
await this.tokenRepo.save(token);
|
||||
}
|
||||
|
||||
public async getAvailableTokens(user: User) {
|
||||
const token = await this.tokenRepo.findOneOrFail({ where: { user: user } });
|
||||
return token.availableTokens;
|
||||
public getTokens(user: User) {
|
||||
return this.tokenRepo.findOneOrFail({ where: { user: user } });
|
||||
}
|
||||
|
||||
public async consumeToken(user: User) {
|
||||
|
|
|
|||
|
|
@ -41,6 +41,11 @@ export class UserService {
|
|||
password,
|
||||
purchases: [],
|
||||
joinedSessions: [],
|
||||
token: {
|
||||
purchasedTokens: 0,
|
||||
lockedTokens: 0,
|
||||
consumedTokens: 0,
|
||||
},
|
||||
});
|
||||
return this.userRepo.save(user);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue