Merge branch 'besoin_6' into 'main'

Besoin 6

See merge request pdl-l3/teams/2023/v1/v1d!28
This commit is contained in:
Thibault Perrier committed 2023-03-17 11:43:44 +01:00
commit d5d5570d6f
1 file changed
+33 -2
@@ -66,6 +66,12 @@ public class ImageController {
return new ResponseEntity<>(objectNode, httpHeaders, status);
}
/**
* Supprime une image
*
* @param id le matricule de l'image à supprimer
* @return Un code ResponseEntity
*/
@DeleteMapping(value = "/images/{id}")
public ResponseEntity<?> deleteImage(@PathVariable("id") long id) {
var img = imageDao.retrieve(id);
@@ -75,12 +81,19 @@ public class ImageController {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
/**
* Poste une image
*
* @param file l'image à ajouter
* @param redirectAttributes
* @return Une ResponseEntity
*/
@PostMapping(value = "/images", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<?> addImage(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {
String contentType = file.getContentType();
if (contentType == null
|| (!contentType.equals(MediaType.IMAGE_JPEG_VALUE) && !contentType.equals(MediaType.IMAGE_PNG_VALUE)))
return JSONError("Content type " + contentType + "isn't supported", HttpStatus.UNSUPPORTED_MEDIA_TYPE);
return JSONError("Content type " + contentType + "is not supported", HttpStatus.UNSUPPORTED_MEDIA_TYPE);
try {
Image newImg = new Image(file.getOriginalFilename(), file.getBytes());
imageDao.create(newImg);
@@ -91,11 +104,21 @@ public class ImageController {
}
}
/**
* Supprime toutes les images postées
*
* @return Une ResponseEntity
*/
@DeleteMapping(value = "/images")
public ResponseEntity<?> deleteImagesList() {
return JSONError("Method DELETE not allowed for /images", HttpStatus.METHOD_NOT_ALLOWED);
}
/**
* Récupère toutes les images
*
* @return un ArrayNode contenant toutes les images à récupérer
*/
@GetMapping(value = "/images", produces = "application/json")
@ResponseBody
public ArrayNode getImageList() {
@@ -112,6 +135,14 @@ public class ImageController {
return nodes;
}
/**
* récupère une image et la modifie si un algorithme est renseigné
*
* @param id le matricule de l'image à récupérer
* @param parameters une String qui contient le reste des paramètres :
* l'algorithme à utiliser ainsi que ses paramètres
* @return Une ResponseEntity
*/
@GetMapping(value = "/images/{id}", produces = { MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE,
"application/json" })
public ResponseEntity<?> getImage(@PathVariable("id") long id,
@@ -234,4 +265,4 @@ public class ImageController {
imageData);
return ResponseEntity.ok().contentType(image.getMediaType()).body(new InputStreamResource(inputStream));
}
}
}