diff --git a/backend/src/main/java/de/szut/casino/deposit/TransactionRepository.java b/backend/src/main/java/de/szut/casino/deposit/TransactionRepository.java index d3b2862..6d092f9 100644 --- a/backend/src/main/java/de/szut/casino/deposit/TransactionRepository.java +++ b/backend/src/main/java/de/szut/casino/deposit/TransactionRepository.java @@ -16,6 +16,6 @@ public interface TransactionRepository extends JpaRepository findAllByUserId(UserEntity id); - @Query("SELECT t FROM TransactionEntity t WHERE t.user = ?1 ORDER BY t.id DESC LIMIT ?2") + @Query("SELECT t FROM TransactionEntity t WHERE t.user = ?1 ORDER BY t.createdAt DESC LIMIT ?2") List findByUserIdWithLimit(UserEntity userEntity, Integer limit); } diff --git a/frontend/src/app/feature/home/home.component.html b/frontend/src/app/feature/home/home.component.html index 4a723a8..c6014cf 100644 --- a/frontend/src/app/feature/home/home.component.html +++ b/frontend/src/app/feature/home/home.component.html @@ -81,9 +81,10 @@ [isOpen]="isDepositModalOpen" (closeModalEmitter)="closeDepositModal()" > - + @@ -103,8 +104,8 @@ *ngFor="let transaction of recentTransactions|async" >
-

{{ transaction.type }}

-

{{ transaction.createdAt | date }}

+

{{ transaction.status }}

+

{{ transaction.createdAt | date : 'd.m.Y H:m'}}

{{ transaction.amount | currency: 'EUR' }} diff --git a/frontend/src/app/feature/home/home.component.ts b/frontend/src/app/feature/home/home.component.ts index 440e22d..af4c712 100644 --- a/frontend/src/app/feature/home/home.component.ts +++ b/frontend/src/app/feature/home/home.component.ts @@ -8,22 +8,26 @@ import { NavbarComponent } from '@shared/components/navbar/navbar.component'; import { Game } from 'app/model/Game'; import { Observable, of } from 'rxjs'; import { TransactionService } from '@service/transaction.service'; +import format from 'ajv/dist/vocabularies/format'; +import { TransactionHistoryComponent } from '../transaction-history/transaction-history.component'; @Component({ selector: 'app-homepage', standalone: true, - imports: [NavbarComponent, CurrencyPipe, NgFor, DepositComponent, ConfirmationComponent, AsyncPipe, DatePipe], + imports: [NavbarComponent, CurrencyPipe, NgFor, DepositComponent, ConfirmationComponent, AsyncPipe, DatePipe, TransactionHistoryComponent], templateUrl: './home.component.html', changeDetection: ChangeDetectionStrategy.OnPush, }) export default class HomeComponent implements OnInit { isDepositModalOpen = false; isDepositSuccessful = false; + isTransactionModalOpen = false; constructor( public route: ActivatedRoute, - public router: Router - ) {} + public router: Router, + ) { + } ngOnInit() { this.isDepositSuccessful = this.route.snapshot.queryParams['success'] == 'true'; @@ -81,6 +85,7 @@ export default class HomeComponent implements OnInit { openDepositModal() { this.isDepositModalOpen = true; } + closeDepositModal() { this.isDepositModalOpen = false; } @@ -88,11 +93,23 @@ export default class HomeComponent implements OnInit { openDepositConfirmationModal() { this.isDepositSuccessful = true; } + + openTransactionModal() + { + this.isTransactionModalOpen = true; + } + closeDepositConfirmationModal() { this.isDepositSuccessful = false; } + closeTransactionModal() { + this.isTransactionModalOpen = false; + } + navigateToGame(route: string) { this.router.navigate([route]); } + + protected readonly format = format; } diff --git a/frontend/src/app/feature/transaction-history/transaction-history.component.html b/frontend/src/app/feature/transaction-history/transaction-history.component.html index 441ab03..8455ed0 100644 --- a/frontend/src/app/feature/transaction-history/transaction-history.component.html +++ b/frontend/src/app/feature/transaction-history/transaction-history.component.html @@ -1 +1,10 @@ -

transaction-history works!

+ diff --git a/frontend/src/app/feature/transaction-history/transaction-history.component.ts b/frontend/src/app/feature/transaction-history/transaction-history.component.ts index 7eed581..b24ef40 100644 --- a/frontend/src/app/feature/transaction-history/transaction-history.component.ts +++ b/frontend/src/app/feature/transaction-history/transaction-history.component.ts @@ -1,17 +1,35 @@ -import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output } from '@angular/core'; import { TransactionService } from '@service/transaction.service'; import { Observable } from 'rxjs'; +import { Transaction } from '../../model/Transaction'; +import { AsyncPipe, CurrencyPipe, DatePipe, NgForOf, NgIf } from '@angular/common'; +import { AnimatedNumberComponent } from '@blackjack/components/animated-number/animated-number.component'; @Component({ standalone: true, selector: 'app-transaction-history', - imports: [], + imports: [ + NgForOf, + AsyncPipe, + CurrencyPipe, + DatePipe, + AnimatedNumberComponent, + NgIf, + ], templateUrl: './transaction-history.component.html', styleUrl: './transaction-history.component.css', changeDetection: ChangeDetectionStrategy.OnPush, }) export class TransactionHistoryComponent { + @Input() + isOpen: boolean = false; private transactionService: TransactionService = inject(TransactionService); + @Output() + closeEventEmitter = new EventEmitter(); + transactions$: Observable = this.transactionService.getUsersTransactions(); - transactions$: Observable<> = this.transactionService.getUsersTransactions(); + closeDialog() { + this.isOpen = false; + this.closeEventEmitter.emit(); + } } diff --git a/frontend/src/app/model/Transaction.ts b/frontend/src/app/model/Transaction.ts index 0b3b482..2a57559 100644 --- a/frontend/src/app/model/Transaction.ts +++ b/frontend/src/app/model/Transaction.ts @@ -1,6 +1,6 @@ export interface Transaction { id: string; - type: string; + status: string; amount: number; createdAt: string; }