diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts index 57d4887..20ba63c 100644 --- a/backend/src/app.module.ts +++ b/backend/src/app.module.ts @@ -1,17 +1,21 @@ import { Module } from '@nestjs/common'; import { APP_GUARD } from '@nestjs/core'; + import { PostsModule } from './posts/posts.module'; +import { FeedModule } from './feed/feed.module'; import { PrismaModule } from './prisma/prisma.module'; + import { DummyAuthGuard } from './auth/guards/dummy-auth.guard'; import { HealthController } from './health.controller'; @Module({ imports: [ - PostsModule, // 👈 aktivieren wir jetzt bewusst - PrismaModule, + PrismaModule, // Basis zuerst + PostsModule, // /posts + FeedModule, // /feed (1:1 Spiegel) ], controllers: [ - HealthController, // 👈 bleibt direkt hier + HealthController, ], providers: [ { diff --git a/backend/src/feed/feed.controller.ts b/backend/src/feed/feed.controller.ts new file mode 100644 index 0000000..4e2a472 --- /dev/null +++ b/backend/src/feed/feed.controller.ts @@ -0,0 +1,13 @@ +import { Controller, Get, Req } from '@nestjs/common'; +import { FeedService } from './feed.service'; +import { AuthRequest } from '../auth/types/auth-request'; + +@Controller('feed') +export class FeedController { + constructor(private readonly feedService: FeedService) {} + + @Get() + async getFeed(@Req() req: AuthRequest) { + return this.feedService.getFeed(req.user); + } +} diff --git a/backend/src/feed/feed.module.ts b/backend/src/feed/feed.module.ts new file mode 100644 index 0000000..d641c9a --- /dev/null +++ b/backend/src/feed/feed.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { FeedController } from './feed.controller'; +import { FeedService } from './feed.service'; +import { PrismaService } from '../prisma/prisma.service'; + +@Module({ + controllers: [FeedController], + providers: [FeedService, PrismaService], +}) +export class FeedModule {} diff --git a/backend/src/feed/feed.service.ts b/backend/src/feed/feed.service.ts new file mode 100644 index 0000000..bfd7410 --- /dev/null +++ b/backend/src/feed/feed.service.ts @@ -0,0 +1,24 @@ +import { Injectable } from '@nestjs/common'; +import { PrismaService } from '../prisma/prisma.service'; + +type AuthUser = { + id: string; + role: 'USER' | 'ADMIN' | 'MOD'; +} | null; + +@Injectable() +export class FeedService { + constructor(private readonly prisma: PrismaService) {} + + async getFeed(_user: AuthUser) { + return this.prisma.post.findMany({ + include: { + pet: true, + author: true, + }, + orderBy: { + createdAt: 'desc', + }, + }); + } +}