Add custom query for random outfits
This commit is contained in:
parent
b74bdad322
commit
4a9ccfd25e
@ -14,29 +14,36 @@ import io.salmonllama.fashionscapeapi.repository.OutfitRepository;
|
|||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/v1")
|
@RequestMapping("/api/v1/outfit")
|
||||||
public class OutfitController {
|
public class OutfitController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private OutfitRepository outfitRepository;
|
private OutfitRepository outfitRepository;
|
||||||
|
|
||||||
@GetMapping("/outfits")
|
@GetMapping()
|
||||||
public List<Outfit> getAllOutfits() {
|
public List<Outfit> getAllOutfits() {
|
||||||
return outfitRepository.findAll();
|
return outfitRepository.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/outfits/{id}")
|
@GetMapping("/{id}")
|
||||||
public ResponseEntity<Outfit> getOutfitById(@PathVariable(value = "id") String outfitId) throws ResourceNotFoundException {
|
public ResponseEntity<Outfit> getOutfitById(@PathVariable(value = "id") String outfitId) throws ResourceNotFoundException {
|
||||||
Outfit outfit = outfitRepository.findById(outfitId).orElseThrow(() -> new ResourceNotFoundException("Outfit not found for id :: " + outfitId));
|
Outfit outfit = outfitRepository.findById(outfitId).orElseThrow(() -> new ResourceNotFoundException("Outfit not found for id :: " + outfitId));
|
||||||
|
|
||||||
return ResponseEntity.ok().body(outfit);
|
return ResponseEntity.ok().body(outfit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/outfits")
|
@GetMapping("/random")
|
||||||
|
public ResponseEntity<Outfit> getRandomOutfit() {
|
||||||
|
Outfit outfit = outfitRepository.findRandomOutfit();
|
||||||
|
|
||||||
|
return ResponseEntity.ok(outfit);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping()
|
||||||
public Outfit createOutfit(@Valid @RequestBody Outfit outfit) {
|
public Outfit createOutfit(@Valid @RequestBody Outfit outfit) {
|
||||||
return outfitRepository.save(outfit);
|
return outfitRepository.save(outfit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/outfits/{id}")
|
@PutMapping("/{id}")
|
||||||
public ResponseEntity<Outfit> updateOutfit(@PathVariable(value = "id") String outfitId, @Valid @RequestBody Outfit outfitDetails) throws ResourceNotFoundException {
|
public ResponseEntity<Outfit> updateOutfit(@PathVariable(value = "id") String outfitId, @Valid @RequestBody Outfit outfitDetails) throws ResourceNotFoundException {
|
||||||
Outfit outfit = outfitRepository.findById(outfitId).orElseThrow(() -> new ResourceNotFoundException("Outfit not found for id :: " + outfitId));
|
Outfit outfit = outfitRepository.findById(outfitId).orElseThrow(() -> new ResourceNotFoundException("Outfit not found for id :: " + outfitId));
|
||||||
|
|
||||||
@ -58,7 +65,7 @@ public class OutfitController {
|
|||||||
return ResponseEntity.ok(updatedOutfit);
|
return ResponseEntity.ok(updatedOutfit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("/outfits/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public Map<String, Boolean> deleteOutfit(@PathVariable(value = "id") String outfitId) throws ResourceNotFoundException {
|
public Map<String, Boolean> deleteOutfit(@PathVariable(value = "id") String outfitId) throws ResourceNotFoundException {
|
||||||
Outfit outfit = outfitRepository.findById(outfitId).orElseThrow(() -> new ResourceNotFoundException("Outfit not found for id :: " + outfitId));
|
Outfit outfit = outfitRepository.findById(outfitId).orElseThrow(() -> new ResourceNotFoundException("Outfit not found for id :: " + outfitId));
|
||||||
|
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
package io.salmonllama.fashionscapeapi.repository;
|
package io.salmonllama.fashionscapeapi.repository;
|
||||||
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import io.salmonllama.fashionscapeapi.model.Outfit;
|
import io.salmonllama.fashionscapeapi.model.Outfit;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface OutfitRepository extends JpaRepository<Outfit, String> {
|
public interface OutfitRepository extends JpaRepository<Outfit, String> {
|
||||||
|
@Query(value = "SELECT o FROM outfit o ORDER BY random() LIMIT 1", nativeQuery = true)
|
||||||
|
public Outfit findRandomOutfit();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user