From f3e3df3724a85a869f3f15e90c15dfce80712d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20P=C3=B6ttker?= Date: Sat, 23 May 2026 14:58:31 +0200 Subject: [PATCH] feat: add polling endpoints to AgrarmonitorController GET /api/agrarmonitor/polling-config PUT /api/agrarmonitor/polling-config POST /api/agrarmonitor/run-polling Co-Authored-By: Claude Sonnet 4.6 --- .../agrarmonitor/agrarmonitor.controller.ts | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/paperless-backend/src/agrarmonitor/agrarmonitor.controller.ts b/paperless-backend/src/agrarmonitor/agrarmonitor.controller.ts index 085f4df..76b9aed 100644 --- a/paperless-backend/src/agrarmonitor/agrarmonitor.controller.ts +++ b/paperless-backend/src/agrarmonitor/agrarmonitor.controller.ts @@ -1,11 +1,15 @@ -import { Body, Controller, Get, HttpCode, Post } from '@nestjs/common'; +import { Body, Controller, Get, HttpCode, Post, Put } from '@nestjs/common'; import { AgrarmonitorService } from './agrarmonitor.service'; +import { AgrarmonitorPollingService } from './agrarmonitor-polling.service'; import { RequirePermissions } from '../auth/permissions.decorator'; import { Permission } from '../auth/permissions.enum'; @Controller('api/agrarmonitor') export class AgrarmonitorController { - constructor(private readonly service: AgrarmonitorService) {} + constructor( + private readonly service: AgrarmonitorService, + private readonly pollingService: AgrarmonitorPollingService, + ) {} @Get('status') @RequirePermissions(Permission.MANAGE_SETTINGS) @@ -19,4 +23,23 @@ export class AgrarmonitorController { async registerDevice(@Body() body: { pcName: string; agrarmonitorId: string }) { return this.service.registerDevice(body.pcName, body.agrarmonitorId); } + + @Get('polling-config') + @RequirePermissions(Permission.MANAGE_SETTINGS) + async getPollingConfig() { + return this.pollingService.getPollingConfig(); + } + + @Put('polling-config') + @RequirePermissions(Permission.MANAGE_SETTINGS) + async updatePollingConfig(@Body() body: { tagFertig: string; tagVerbucht: string }) { + return this.pollingService.updatePollingConfig(body.tagFertig, body.tagVerbucht); + } + + @Post('run-polling') + @HttpCode(200) + @RequirePermissions(Permission.MANAGE_SETTINGS) + async runPolling() { + return this.pollingService.runPolling(); + } }