diff --git a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/Search.java b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/Search.java index 6e48a22..98c2574 100644 --- a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/Search.java +++ b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/Search.java @@ -46,4 +46,12 @@ public class Search { priceMax = create.getPriceMax(); } + public void edit(final SearchDto edit) { + enabled = edit.isEnabled(); + query = edit.getQuery(); + radius = edit.getRadius(); + priceMin = edit.getPriceMin(); + priceMax = edit.getPriceMax(); + } + } diff --git a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/SearchController.java b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/SearchController.java new file mode 100644 index 0000000..2f9b692 --- /dev/null +++ b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/SearchController.java @@ -0,0 +1,26 @@ +package de.ph87.kleinanzeigen.kleinanzeigen.search; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("Kleinanzeigen/Search") +public class SearchController { + + private final SearchService searchService; + + @PostMapping("create") + public SearchDto create(@RequestBody SearchCreate create) { + return searchService.create(create); + } + + @PostMapping("edit") + public SearchDto edit(@RequestBody SearchDto edit) { + return searchService.edit(edit); + } + +} diff --git a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/SearchService.java b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/SearchService.java index 9dd97e7..b266b13 100644 --- a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/SearchService.java +++ b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/search/SearchService.java @@ -3,8 +3,10 @@ package de.ph87.kleinanzeigen.kleinanzeigen.search; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.server.ResponseStatusException; import java.util.List; @@ -32,4 +34,18 @@ public class SearchService { return new SearchDto(search); } + public SearchDto create(final SearchCreate create) { + final SearchDto dto = toDto(searchRepository.save(new Search(create))); + log.info("Search CREATED: {}", dto); + return dto; + } + + public SearchDto edit(final SearchDto edit) { + final Search search = searchRepository.findById(edit.getId()).orElseThrow(() -> new ResponseStatusException(HttpStatus.BAD_REQUEST)); + search.edit(edit); + final SearchDto dto = toDto(search); + log.info("Search EDITED: {}", dto); + return dto; + } + }