LmStudioSettingsController.java
package fr.tiogars.chat.domains.lmstudio.controllers;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import fr.tiogars.chat.domains.lmstudio.models.LmStudioSettings;
import fr.tiogars.chat.domains.lmstudio.services.LmStudioSettingsService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
@RestController
@RequestMapping("/api/v1/lmstudio/settings")
@Tag(name = "LM Studio", description = "Global LM Studio connection settings. Requires ADMIN.")
@SecurityRequirement(name = "bearerAuth")
public class LmStudioSettingsController {
private final LmStudioSettingsService service;
public LmStudioSettingsController(LmStudioSettingsService service) {
this.service = service;
}
@GetMapping
@Operation(summary = "Read LM Studio settings, or return 404 when not configured")
public ResponseEntity<LmStudioSettings> read() {
return service.find().map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build());
}
@PutMapping
@Operation(summary = "Create or replace LM Studio settings")
public LmStudioSettings update(@Valid @RequestBody LmStudioSettings settings) {
return service.update(settings);
}
}