/
monzikov
/
past-solution
Обзор
Документация
Войти
/
monzikov
/
past-solution
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/edu/mai/pastsolution/PastController.java
120 строк
4 KB
Yuri Monzikov
add past-solution code
04 июл 2026, 14:38
04 июл 2026, 14:38
1516693
Код
Авторство
О чём код?
package edu.mai.pastsolution; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.*; import java.util.stream.Collectors; @RestController @RequestMapping("/") class PastController { private final LcsSimilarity lcsSimilarity = new LcsSimilarity(); private final StopListChecker lcsChecker; PastController(@Qualifier("lcsChecker") StopListChecker lcsChecker) { this.lcsChecker = lcsChecker; } @GetMapping("/checkdb") public ResponseEntity<Map<String, Object>> checkDatabase() { Map<String, Object> response = new HashMap<>(); try { var result = lcsChecker.checkDatabase(); if (result == 1) { response.put("status", "UP"); response.put("message", "Database connection is healthy."); return ResponseEntity.ok(response); } else { response.put("status", "DOWN"); response.put("message", "Unexpected query result."); return ResponseEntity.status(500).body(response); } } catch (Exception e) { response.put("status", "DOWN"); response.put("error", e.getMessage()); return ResponseEntity.status(500).body(response); } } @PostMapping("/search-equal") public ResponseEntity<List<Figurant>> searchFigurants(@RequestBody SearchRequest request) { var results = lcsChecker.searchFigurants(request.getLastName(), request.getFirstName(), request.getPatronymic()); return ResponseEntity.ok(results); } @PostMapping("/search-firstname") public ResponseEntity<List<FirstnameDto>> searchFirstname(@RequestBody SearchRequest request) { var results = lcsChecker.searchFirstname(request.getFirstName()); var sorted_results =results.stream() .sorted(Comparator.comparingDouble(FirstnameDto::getSimilarity).reversed()) .collect(Collectors.toList()); return ResponseEntity.ok(sorted_results); } @PostMapping("/search-lastname") public ResponseEntity<List<LastnameDto>> searchLastname(@RequestBody SearchRequest request) { var results = lcsChecker.searchLastname(request.getLastName()); var sorted_results =results.stream() .sorted(Comparator.comparingDouble(LastnameDto::getSimilarity).reversed()) .collect(Collectors.toList()); return ResponseEntity.ok(sorted_results); } @PostMapping("/search-patronymic") public ResponseEntity<List<PatronymicDto>> searchPatronymic(@RequestBody SearchRequest request) { var results = lcsChecker.searchPatronymic(request.getPatronymic()); var sorted_results =results.stream() .sorted(Comparator.comparingDouble(PatronymicDto::getSimilarity).reversed()) .collect(Collectors.toList()); return ResponseEntity.ok(sorted_results); } @PostMapping("/search-lcs") public ResponseEntity<SearchResult> checkWithLcs(@RequestBody SearchRequest request) { return ResponseEntity.ok(lcsChecker.checkClient(request)); } @PostMapping("/similarity-lcs") public ResponseEntity<SimilarityResult> similarityBge(@RequestBody SimilarityRequest request) { return ResponseEntity.ok(lcsChecker.checkSimilarity(request)); } @PostMapping("/subs-all") public ResponseEntity<List<String>> getAllSubsequences(@RequestBody StringRequest request){ var qry = request.getQuery(); if (qry == null) { return ResponseEntity.notFound().build(); } List<String> results = lcsSimilarity.getAllSubstrings(qry); return ResponseEntity.ok(results); } @PostMapping("/subs-lcs") public ResponseEntity<List<String>> getLcsSubsequences(@RequestBody StringRequest request){ var qry = request.getQuery(); if (qry == null) { return ResponseEntity.notFound().build(); } List<String> results = lcsSimilarity.getLcsSubstrings(qry); return ResponseEntity.ok(results); } }