feat(back-end): fix order page
All checks were successful
Build, Test and Deploy / test-backend (push) Successful in 47s
Build, Test and Deploy / build-and-push (push) Successful in 25s
Build, Test and Deploy / deploy (push) Successful in 8s

This commit is contained in:
2026-02-27 20:22:18 +01:00
parent ed76b13e4c
commit 819e00e067
2 changed files with 15 additions and 4 deletions

View File

@@ -11,6 +11,7 @@ import { QuoteResultComponent } from './components/quote-result/quote-result.com
import { QuoteRequest, QuoteResult, QuoteEstimatorService } from './services/quote-estimator.service'; import { QuoteRequest, QuoteResult, QuoteEstimatorService } from './services/quote-estimator.service';
import { SuccessStateComponent } from '../../shared/components/success-state/success-state.component'; import { SuccessStateComponent } from '../../shared/components/success-state/success-state.component';
import { Router, ActivatedRoute } from '@angular/router'; import { Router, ActivatedRoute } from '@angular/router';
import { LanguageService } from '../../core/services/language.service';
@Component({ @Component({
selector: 'app-calculator-page', selector: 'app-calculator-page',
@@ -37,7 +38,8 @@ export class CalculatorPageComponent implements OnInit {
constructor( constructor(
private estimator: QuoteEstimatorService, private estimator: QuoteEstimatorService,
private router: Router, private router: Router,
private route: ActivatedRoute private route: ActivatedRoute,
private languageService: LanguageService
) {} ) {}
ngOnInit() { ngOnInit() {
@@ -207,7 +209,10 @@ export class CalculatorPageComponent implements OnInit {
onProceed() { onProceed() {
const res = this.result(); const res = this.result();
if (res && res.sessionId) { if (res && res.sessionId) {
this.router.navigate(['/checkout'], { queryParams: { session: res.sessionId } }); this.router.navigate(
['/', this.languageService.selectedLang(), 'checkout'],
{ queryParams: { session: res.sessionId } }
);
} else { } else {
console.error('No session ID found in quote result'); console.error('No session ID found in quote result');
// Fallback or error handling // Fallback or error handling
@@ -302,7 +307,7 @@ export class CalculatorPageComponent implements OnInit {
message: details message: details
}); });
this.router.navigate(['/contact']); this.router.navigate(['/', this.languageService.selectedLang(), 'contact']);
} }
private isInvalidQuote(result: QuoteResult): boolean { private isInvalidQuote(result: QuoteResult): boolean {

View File

@@ -206,7 +206,13 @@ export class CheckoutComponent implements OnInit {
this.quoteService.createOrder(this.sessionId, orderRequest).subscribe({ this.quoteService.createOrder(this.sessionId, orderRequest).subscribe({
next: (order) => { next: (order) => {
this.router.navigate(['/order', order.id]); const orderId = order?.id ?? order?.orderId;
if (!orderId) {
this.isSubmitting.set(false);
this.error = 'CHECKOUT.ERR_CREATE_ORDER';
return;
}
this.router.navigate(['/', this.languageService.selectedLang(), 'order', orderId]);
}, },
error: (err) => { error: (err) => {
console.error('Order creation failed', err); console.error('Order creation failed', err);