From 297e2af0be510dbababc80711f2ddce709b655eb Mon Sep 17 00:00:00 2001 From: Theophyl Hoguet Date: Sat, 11 Mar 2023 17:44:09 +0100 Subject: [PATCH 1/4] getmapping postmapping remove useless improt --- .../src/main/java/pdl/backend/ImageController.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/pdl/backend/ImageController.java b/backend/src/main/java/pdl/backend/ImageController.java index 1e4962d..550f3e6 100644 --- a/backend/src/main/java/pdl/backend/ImageController.java +++ b/backend/src/main/java/pdl/backend/ImageController.java @@ -15,9 +15,10 @@ import org.springframework.core.io.InputStreamResource; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @@ -37,7 +38,7 @@ public class ImageController { this.imageDao = imageDao; } - @RequestMapping(value = "/images/{id}", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE) + @GetMapping(value = "/images/{id}", produces = MediaType.IMAGE_JPEG_VALUE) public ResponseEntity getImage(@PathVariable("id") long id) { Optional image = imageDao.retrieve(id); @@ -49,7 +50,7 @@ public class ImageController { return new ResponseEntity<>("Image id=" + id + " not found.", HttpStatus.NOT_FOUND); } - @RequestMapping(value = "/images/{id}", method = RequestMethod.DELETE) + @DeleteMapping(value = "/images/{id}") public ResponseEntity deleteImage(@PathVariable("id") long id) { Optional image = imageDao.retrieve(id); @@ -61,7 +62,7 @@ public class ImageController { return new ResponseEntity<>("Image id=" + id + " not found.", HttpStatus.NOT_FOUND); } - @RequestMapping(value = "/images", method = RequestMethod.POST) + @PostMapping(value = "/images") public ResponseEntity addImage(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) { String contentType = file.getContentType(); @@ -77,7 +78,7 @@ public class ImageController { return new ResponseEntity<>("Image uploaded", HttpStatus.OK); } - @RequestMapping(value = "/images", method = RequestMethod.GET, produces = "application/json") + @GetMapping(value = "/images", produces = "application/json") @ResponseBody public ArrayNode getImageList() { List images = imageDao.retrieveAll(); From 8dfcf764df98e568e0fd0e7d62cabdeae282329a Mon Sep 17 00:00:00 2001 From: Theophyl Hoguet Date: Sat, 11 Mar 2023 18:33:47 +0100 Subject: [PATCH 2/4] add size and type to get /images --- backend/src/main/java/pdl/backend/ImageController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/src/main/java/pdl/backend/ImageController.java b/backend/src/main/java/pdl/backend/ImageController.java index 550f3e6..e7f5d17 100644 --- a/backend/src/main/java/pdl/backend/ImageController.java +++ b/backend/src/main/java/pdl/backend/ImageController.java @@ -87,6 +87,8 @@ public class ImageController { ObjectNode objectNode = mapper.createObjectNode(); objectNode.put("id", image.getId()); objectNode.put("name", image.getName()); + objectNode.put("size", image.getSize()); + objectNode.put("type", image.getMediaType().toString()); nodes.add(objectNode); } return nodes; From 829a7871b055bdc659a5aa0dce4cc845d1b7481b Mon Sep 17 00:00:00 2001 From: Theophyl Hoguet Date: Sat, 11 Mar 2023 18:34:12 +0100 Subject: [PATCH 3/4] add mediaType, width, height, and nbcolors to Image object --- backend/src/main/java/pdl/backend/Image.java | 50 ++++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/pdl/backend/Image.java b/backend/src/main/java/pdl/backend/Image.java index b5ea8ba..870933e 100644 --- a/backend/src/main/java/pdl/backend/Image.java +++ b/backend/src/main/java/pdl/backend/Image.java @@ -1,15 +1,39 @@ package pdl.backend; +import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.net.URLConnection; + +import javax.imageio.ImageIO; + +import org.springframework.http.MediaType; +import org.springframework.util.MimeType; + public class Image { private static Long count = Long.valueOf(0); - private Long id; + private final Long id; private String name; - private byte[] data; + private final byte[] data; + private final MediaType mediaType; + private final int width; + private final int height; + private final int nbColors; - public Image(final String name, final byte[] data) { + public Image(final String name, final byte[] data) throws IOException { id = count++; this.name = name; this.data = data; + this.mediaType = MediaType.valueOf(URLConnection.guessContentTypeFromName(name)); + BufferedImage bufImg = ImageIO.read(new ByteArrayInputStream(data)); + this.width = bufImg.getWidth(); + this.height = bufImg.getHeight(); + this.nbColors = bufImg.getColorModel().getNumComponents(); + + } + + public MediaType getMediaType() { + return mediaType; } public long getId() { @@ -27,4 +51,24 @@ public class Image { public byte[] getData() { return data; } + + public static Long getCount() { + return count; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } + + public int getNbColors() { + return nbColors; + } + + public String getSize() { + return this.getWidth() + "*" + this.getHeight() + "*" + this.getNbColors(); + } } From 9081757ad581fec4fe0c0165f819a5327a7aebe1 Mon Sep 17 00:00:00 2001 From: Theophyl Hoguet Date: Sat, 11 Mar 2023 18:38:12 +0100 Subject: [PATCH 4/4] useless import --- backend/src/main/java/pdl/backend/Image.java | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/main/java/pdl/backend/Image.java b/backend/src/main/java/pdl/backend/Image.java index 870933e..b47f2f5 100644 --- a/backend/src/main/java/pdl/backend/Image.java +++ b/backend/src/main/java/pdl/backend/Image.java @@ -8,7 +8,6 @@ import java.net.URLConnection; import javax.imageio.ImageIO; import org.springframework.http.MediaType; -import org.springframework.util.MimeType; public class Image { private static Long count = Long.valueOf(0);