Browse Source

account balances get endpoint

pull/2484/head
Pavol Kolcun 2 years ago
committed by Thomas
parent
commit
c38b545776
  1. 13
      apps/api/src/app/account/account.controller.ts
  2. 9
      apps/api/src/app/account/interfaces/account-balances.interface.ts
  3. 15
      apps/api/src/services/account-balance/account-balance.service.ts

13
apps/api/src/app/account/account.controller.ts

@ -31,11 +31,14 @@ import { AccountService } from './account.service';
import { CreateAccountDto } from './create-account.dto';
import { TransferBalanceDto } from './transfer-balance.dto';
import { UpdateAccountDto } from './update-account.dto';
import { AccountBalances } from './interfaces/account-balances.interface';
import { AccountBalanceService } from '@ghostfolio/api/services/account-balance/account-balance.service';
@Controller('account')
export class AccountController {
public constructor(
private readonly accountService: AccountService,
private readonly accountBalanceService: AccountBalanceService,
private readonly impersonationService: ImpersonationService,
private readonly portfolioService: PortfolioService,
@Inject(REQUEST) private readonly request: RequestWithUser
@ -116,6 +119,16 @@ export class AccountController {
return accountsWithAggregations.accounts[0];
}
@Get(':id/balances')
@UseGuards(AuthGuard('jwt'))
@UseInterceptors(RedactValuesInResponseInterceptor)
public async getAccountBalancesById(
@Param('id') id: string
): Promise<AccountBalances> {
return await this.accountBalanceService.getAccountBalances(id);
}
@Post()
@UseGuards(AuthGuard('jwt'))
public async createAccount(

9
apps/api/src/app/account/interfaces/account-balances.interface.ts

@ -0,0 +1,9 @@
export interface AccountBalances {
balances: AccountBalance[];
}
export interface AccountBalance {
date: Date;
id: string;
value: number;
}

15
apps/api/src/services/account-balance/account-balance.service.ts

@ -1,3 +1,4 @@
import { AccountBalances } from '@ghostfolio/api/app/account/interfaces/account-balances.interface';
import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service';
import { Injectable } from '@nestjs/common';
import { AccountBalance, Prisma } from '@prisma/client';
@ -13,4 +14,18 @@ export class AccountBalanceService {
data
});
}
public async getAccountBalances(accountId: string): Promise<AccountBalances> {
const balances = await this.prismaService.accountBalance.findMany({
where: {
accountId: accountId,
},
select: {
date: true,
id: true,
value: true
}
});
return { balances }
}
}

Loading…
Cancel
Save