add possibility to disable delete and upload of books

This commit is contained in:
Adrien
2026-04-06 14:09:17 +02:00
parent 5c641f4bcc
commit e5d53b4e80
7 changed files with 41 additions and 2 deletions
@@ -3,6 +3,7 @@ package com.aiteacher.book;
import com.aiteacher.document.FigureEntity;
import com.aiteacher.document.FigureRepository;
import com.aiteacher.document.MarkdownStorageService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
@@ -22,6 +23,12 @@ public class BookController {
private final FigureRepository figureRepository;
private final MarkdownStorageService markdownStorageService;
@Value("${app.features.upload-enabled:true}")
private boolean uploadEnabled;
@Value("${app.features.delete-enabled:true}")
private boolean deleteEnabled;
public BookController(BookService bookService, FigureRepository figureRepository,
MarkdownStorageService markdownStorageService) {
this.bookService = bookService;
@@ -31,6 +38,7 @@ public class BookController {
@PostMapping(consumes = "multipart/form-data")
public ResponseEntity<?> upload(@RequestParam("file") MultipartFile file) throws IOException {
if (!uploadEnabled) return ResponseEntity.status(HttpStatus.METHOD_NOT_ALLOWED).build();
Book book = bookService.upload(file);
return ResponseEntity.status(HttpStatus.ACCEPTED).body(toSummaryResponse(book));
}
@@ -51,6 +59,7 @@ public class BookController {
@DeleteMapping("/{id}")
public ResponseEntity<Void> delete(@PathVariable UUID id) {
if (!deleteEnabled) return ResponseEntity.status(HttpStatus.METHOD_NOT_ALLOWED).build();
bookService.delete(id);
return ResponseEntity.noContent().build();
}