Merge branch '11-add-api-for-getting-home-page-data' into 22-integrate-api-and-frontend

This commit is contained in:
Erik Foris 2024-06-25 10:23:49 +02:00
commit ac95228be8
2 changed files with 20 additions and 2 deletions

View File

@ -12,6 +12,8 @@ import org.springframework.data.web.config.EnableSpringDataWebSupport;
import org.springframework.data.domain.Sort;
import java.util.UUID;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@RestController
@RequestMapping("/api/v1/datasets")
@ -49,18 +51,28 @@ public class DatasetController {
datasetService.deleteDataset(id);
}
@PostMapping("/id/{id}/upvote")
@PutMapping("/id/{id}/upvote")
public Dataset upvote(@PathVariable("id") UUID id) {
datasetService.upvoteDataset(id);
return null;
}
@PostMapping("/id/{id}/downvote")
@PutMapping("/id/{id}/downvote")
public Dataset downvote(@PathVariable("id") UUID id) {
datasetService.downvoteDataset(id);
return null; // new ResponseEntity<>(null, HttpStatus.OK);
}
@PutMapping("/id/{id}/vote")
public String postMethodName(@PathVariable("id") UUID id,
@RequestParam("stars") int stars) {
if (stars > 0 && stars < 6) {
datasetService.voteDataset(id, stars);
return null;
}
return "Invalid vote";
}
@GetMapping
public Page<Dataset> getDatasetsByDateAfter(@RequestParam(value = "author", required = false) String author,
@RequestParam(value = "title", required = false) String title,

View File

@ -33,6 +33,12 @@ public class DatasetService {
datasetRepository.getDatasetById(id).setTitle(title);
}
public void voteDataset(UUID id, int vote) {
Dataset dataset = datasetRepository.getDatasetById(id);
dataset.vote(vote);
datasetRepository.save(dataset);
}
public void deleteDataset(UUID id) {
Dataset dataset = datasetRepository.getDatasetById(id);
datasetRepository.delete(dataset);