59 lines
1.8 KiB
Java
59 lines
1.8 KiB
Java
package ru.soune.nocopy.controller;
|
|||
|
|
|
||
|
|
import lombok.RequiredArgsConstructor;
|
||
|
|
import lombok.extern.slf4j.Slf4j;
|
||
|
|
import org.springframework.http.ResponseEntity;
|
||
|
|
import org.springframework.web.bind.annotation.*;
|
||
|
|
import ru.soune.nocopy.configuration.search.SearchProperties;
|
||
|
|
import ru.soune.nocopy.dto.BaseResponse;
|
||
|
|
import ru.soune.nocopy.dto.search.config.SearchSettingsDto;
|
||
|
|
|
||
|
|
import java.util.Map;
|
||
|
|
|
||
|
|
|
||
|
|
@Slf4j
|
||
|
|
@RestController
|
||
|
|
@RequestMapping("/api/search/settings")
|
||
|
|
@RequiredArgsConstructor
|
||
|
|
public class SearchSettingsController {
|
||
|
|
|
||
|
|
private final SearchProperties searchProperties;
|
||
|
|
|
||
|
|
@GetMapping
|
||
|
|
public ResponseEntity<?> getSettings() {
|
||
|
|
SearchSettingsDto dto = new SearchSettingsDto();
|
||
|
|
|
||
|
|
dto.setEngines(Map.of(
|
||
|
|
"yandex", searchProperties.getEngines().get("yandex").isEnabled(),
|
||
|
|
"google", searchProperties.getEngines().get("google").isEnabled()));
|
||
|
|
|
||
|
|
dto.setProxyEnabled(searchProperties.getProxy().isEnabled());
|
||
|
|
|
||
|
|
return ResponseEntity.ok().body(BaseResponse.builder()
|
||
|
|
.messageDesc("Success")
|
||
|
|
.messageBody(dto)
|
||
|
|
.build());
|
||
|
|
}
|
||
|
|
|
||
|
|
@PutMapping
|
||
|
|
public ResponseEntity<?> updateSettings(@RequestBody SearchSettingsDto settings) {
|
||
|
|
if (settings.getEngines() != null) {
|
||
|
|
settings.getEngines().forEach((key, value) -> {
|
||
|
|
if (searchProperties.getEngines().containsKey(key)) {
|
||
|
|
searchProperties.getEngines().get(key).setEnabled(value);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
if (settings.getProxyEnabled() != null) {
|
||
|
|
searchProperties.getProxy().setEnabled(settings.getProxyEnabled());
|
||
|
|
}
|
||
|
|
|
||
|
|
log.info("Settings updated: {}", settings);
|
||
|
|
|
||
|
|
return ResponseEntity.ok().body(BaseResponse.builder()
|
||
|
|
.messageDesc("Settings updated")
|
||
|
|
.build());
|
||
|
|
}
|
||
|
|
}
|