Skip to content

Commit

Permalink
Merge pull request #93 from Draw-Draw/feat/#92-url-base64
Browse files Browse the repository at this point in the history
[FEAT] 이미지 base64 암호화 api
  • Loading branch information
Chan531 authored May 15, 2024
2 parents 204ef56 + 0f25b21 commit b513eb0
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 46 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,22 @@
import com.samtilee.drawdraw.diary.dto.request.PromptCreationRequest;
import com.samtilee.drawdraw.diary.dto.response.DiaryCreationResponse;
import com.samtilee.drawdraw.diary.dto.response.DiaryViewResponse;
import com.samtilee.drawdraw.diary.dto.response.ImageBase64EncodeResponse;
import com.samtilee.drawdraw.diary.dto.response.PromptCreationResponse;
import com.samtilee.drawdraw.diary.exception.DiaryException;
import com.samtilee.drawdraw.diary.service.DiaryService;
import lombok.RequiredArgsConstructor;
import lombok.val;
import org.apache.commons.io.IOUtils;
import org.apache.tomcat.util.codec.binary.Base64;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;

import java.net.URI;
import java.net.URL;
import java.security.Principal;

import static com.samtilee.drawdraw.common.dto.SuccessResponse.*;
Expand Down Expand Up @@ -49,6 +54,19 @@ public ResponseEntity<SuccessResponse<DiaryCreationResponse>> createDiary(Princi
.body(of(SUCCESS_CREATE_DIARY.getMessage(), response));
}

@GetMapping("/base64")
@CrossOrigin("*")
public ResponseEntity<SuccessResponse<ImageBase64EncodeResponse>> encodeImage(@RequestParam String imageUrl) {
try {
val url = new URL(imageUrl);
val is = url.openStream();
val bytes = IOUtils.toByteArray(is);
val response = ImageBase64EncodeResponse.of(Base64.encodeBase64String(bytes));
return ResponseEntity.ok(of("이미지 암호화 성공", response));
} catch (Exception e) {
}
return null;
}

@PatchMapping("/diary-book/{diaryBookId}/diary/{diaryId}")
public ResponseEntity<BaseResponse> modifyDiary(Principal principal, @PathVariable Long diaryBookId,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.samtilee.drawdraw.diary.dto.response;

import lombok.AccessLevel;
import lombok.Builder;
import lombok.NonNull;

import static lombok.AccessLevel.PRIVATE;

@Builder(access = PRIVATE)
public record ImageBase64EncodeResponse(
@NonNull String base64Str
) {

public static ImageBase64EncodeResponse of(String base64Str) {
return ImageBase64EncodeResponse.builder()
.base64Str(base64Str)
.build();
}
}

0 comments on commit b513eb0

Please sign in to comment.