diff --git a/bizmatch-server/src/app.module.ts b/bizmatch-server/src/app.module.ts
index cd9750e..eec86d4 100644
--- a/bizmatch-server/src/app.module.ts
+++ b/bizmatch-server/src/app.module.ts
@@ -1,7 +1,7 @@
-import { MiddlewareConsumer, Module } from '@nestjs/common';
+import { createParamDecorator, ExecutionContext, MiddlewareConsumer, Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { PassportModule } from '@nestjs/passport';
-import { WinstonModule, utilities as nestWinstonModuleUtilities } from 'nest-winston';
+import { utilities as nestWinstonModuleUtilities, WinstonModule } from 'nest-winston';
import * as winston from 'winston';
import { AiModule } from './ai/ai.module';
import { AppController } from './app.controller';
@@ -18,11 +18,17 @@ import dotenvFlow from 'dotenv-flow';
import { EventModule } from './event/event.module';
import { JwtStrategy } from './jwt.strategy';
import { MailModule } from './mail/mail.module';
+import { RealIpInfo } from './models/main.model';
import { PaymentModule } from './payment/payment.module';
import { RequestDurationMiddleware } from './request-duration/request-duration.middleware';
import { SelectOptionsModule } from './select-options/select-options.module';
import { UserModule } from './user/user.module';
-
+export const RealIp = createParamDecorator((data: unknown, ctx: ExecutionContext): RealIpInfo => {
+ const request = ctx.switchToHttp().getRequest();
+ const ip = request.headers['cf-connecting-ip'] || request.headers['x-real-ip'] || request.headers['x-forwarded-for']?.split(',')[0] || request.connection.remoteAddress;
+ const countryCode = request.headers['cf-ipcountry'];
+ return { ip, countryCode };
+});
// function loadEnvFiles() {
// // Determine which additional env file to load
// let envFilePath = '';
diff --git a/bizmatch-server/src/event/event.controller.ts b/bizmatch-server/src/event/event.controller.ts
index e2b256c..487cfe6 100644
--- a/bizmatch-server/src/event/event.controller.ts
+++ b/bizmatch-server/src/event/event.controller.ts
@@ -1,5 +1,7 @@
-import { Body, Controller, Headers, Ip, Post } from '@nestjs/common';
+import { Body, Controller, Headers, Post } from '@nestjs/common';
+import { RealIp } from 'src/app.module';
import { ListingEvent } from 'src/models/db.model';
+import { RealIpInfo } from 'src/models/main.model';
import { EventService } from './event.service';
@Controller('event')
@@ -8,10 +10,10 @@ export class EventController {
@Post()
async createEvent(
@Body() event: ListingEvent, // Struktur des Body-Objekts entsprechend anpassen
- @Ip() userIp: string, // IP Adresse des Clients
+ @RealIp() ipInfo: RealIpInfo, // IP Adresse des Clients
@Headers('user-agent') userAgent: string, // User-Agent des Clients
) {
- event.userIp = userIp;
+ event.userIp = ipInfo.ip;
event.userAgent = userAgent;
await this.eventService.createEvent(event);
return { message: 'Event gespeichert' };
diff --git a/bizmatch-server/src/geo/geo.controller.ts b/bizmatch-server/src/geo/geo.controller.ts
index 1dfb2db..ad99c8e 100644
--- a/bizmatch-server/src/geo/geo.controller.ts
+++ b/bizmatch-server/src/geo/geo.controller.ts
@@ -1,17 +1,9 @@
-import { Body, Controller, createParamDecorator, ExecutionContext, Get, Param, Post } from '@nestjs/common';
+import { Body, Controller, Get, Param, Post } from '@nestjs/common';
+import { RealIp } from 'src/app.module';
+import { RealIpInfo } from 'src/models/main.model';
import { CountyRequest } from 'src/models/server.model';
import { GeoService } from './geo.service';
-export interface RealIpInfo {
- ip: string;
- countryCode?: string;
-}
-export const RealIp = createParamDecorator((data: unknown, ctx: ExecutionContext): RealIpInfo => {
- const request = ctx.switchToHttp().getRequest();
- const ip = request.headers['cf-connecting-ip'] || request.headers['x-real-ip'] || request.headers['x-forwarded-for']?.split(',')[0] || request.connection.remoteAddress;
- const countryCode = request.headers['cf-ipcountry'];
- return { ip, countryCode };
-});
@Controller('geo')
export class GeoController {
constructor(private geoService: GeoService) {}
diff --git a/bizmatch-server/src/models/main.model.ts b/bizmatch-server/src/models/main.model.ts
index 2a9aab4..1899a7c 100644
--- a/bizmatch-server/src/models/main.model.ts
+++ b/bizmatch-server/src/models/main.model.ts
@@ -408,3 +408,7 @@ export interface CombinedUser {
stripeUser?: StripeUser;
stripeSubscription?: StripeSubscription;
}
+export interface RealIpInfo {
+ ip: string;
+ countryCode?: string;
+}
diff --git a/bizmatch/src/app/app.routes.ts b/bizmatch/src/app/app.routes.ts
index 4abd1b0..dbf83a5 100644
--- a/bizmatch/src/app/app.routes.ts
+++ b/bizmatch/src/app/app.routes.ts
@@ -2,7 +2,6 @@ import { Routes } from '@angular/router';
import { LogoutComponent } from './components/logout/logout.component';
import { NotFoundComponent } from './components/not-found/not-found.component';
-import { PaymentComponent } from './components/payment/payment.component';
import { AuthGuard } from './guards/auth.guard';
import { ListingCategoryGuard } from './guards/listing-category.guard';
import { UserListComponent } from './pages/admin/user-list/user-list.component';
@@ -151,10 +150,6 @@ export const routes: Routes = [
path: 'pricing/:id',
component: PricingComponent,
},
- {
- path: 'payment',
- component: PaymentComponent,
- },
{
path: 'success',
component: SuccessComponent,
diff --git a/bizmatch/src/app/components/confirmation/confirmation.component.ts b/bizmatch/src/app/components/confirmation/confirmation.component.ts
index 84a55a0..04606f0 100644
--- a/bizmatch/src/app/components/confirmation/confirmation.component.ts
+++ b/bizmatch/src/app/components/confirmation/confirmation.component.ts
@@ -25,8 +25,8 @@ import { ConfirmationService } from './confirmation.service';
@let confirmation = (confirmationService.confirmation$ | async);
-
{{ confirmation.message }}
- @if(confirmation.buttons==='both'){
+ {{ confirmation?.message }}
+ @if(confirmation?.buttons==='both'){