Balance Model

This commit is contained in:
Ulf Gebhardt 2021-10-01 20:14:13 +02:00
parent 165f86bdb1
commit 9ff3632021
No known key found for this signature in database
GPG Key ID: 81308EFE29ABFEBD
3 changed files with 19 additions and 8 deletions

View File

@ -2,9 +2,10 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { Resolver, Query, Ctx, Authorized } from 'type-graphql'
import { getCustomRepository } from 'typeorm'
import { Balance } from '../models/Balance'
import { User as dbUser } from '../../typeorm/entity/User'
import { Balance as dbBalance } from '../../typeorm/entity/Balance'
import { BalanceRepository } from '../../typeorm/repository/Balance'
import { UserRepository } from '../../typeorm/repository/User'
import { calculateDecay } from '../../util/decay'
import { roundFloorFrom4 } from '../../util/round'
@ -14,8 +15,11 @@ export class BalanceResolver {
@Query(() => Balance)
async balance(@Ctx() context: any): Promise<Balance> {
// load user and balance
const userEntity = await dbUser.findByPubkeyHex(context.pubKey)
const balanceEntity = await dbBalance.findByUser(userEntity.id)
const balanceRepository = getCustomRepository(BalanceRepository)
const userRepository = getCustomRepository(UserRepository)
const userEntity = await userRepository.findByPubkeyHex(context.pubKey)
const balanceEntity = await balanceRepository.findByUser(userEntity.id)
let balance: Balance
const now = new Date()
if (balanceEntity) {

View File

@ -16,8 +16,4 @@ export class Balance extends BaseEntity {
@Column({ type: 'bigint' })
amount: number
static findByUser(userId: number): Promise<Balance | undefined> {
return this.createQueryBuilder('balance').where('balance.userId = :userId', { userId }).getOne()
}
}

View File

@ -0,0 +1,11 @@
import { EntityRepository, Repository } from 'typeorm'
import { Balance } from '../entity/Balance'
@EntityRepository(Balance)
export class BalanceRepository extends Repository<Balance> {
findByUser(userId: number): Promise<Balance | undefined> {
return this.createQueryBuilder('balance')
.where('balance.userId = :userId', { userId })
.getOneOrFail()
}
}