Skip to content

Commit 0b801fe

Browse files
Merge pull request #65 from marshmallowing/feat/profile
#62 Feat: 프로필 이미지 조회, 업로드 API
2 parents 9c68c54 + 6b5b8fb commit 0b801fe

File tree

4 files changed

+41
-2
lines changed

4 files changed

+41
-2
lines changed

src/main/java/com/memesphere/domain/image/controller/ImageController.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,20 @@
33
import com.memesphere.domain.image.dto.response.PresignedUrlResponse;
44
import com.memesphere.domain.image.dto.request.ImageExtensionRequest;
55
import com.memesphere.domain.image.service.ImageService;
6+
import com.memesphere.domain.image.service.ProfileService;
67
import com.memesphere.global.apipayload.ApiResponse;
78
import io.swagger.v3.oas.annotations.Operation;
89
import lombok.RequiredArgsConstructor;
910
import org.springframework.http.MediaType;
1011
import org.springframework.web.bind.annotation.*;
1112

12-
@RequestMapping("/s3")
13+
@RequestMapping("/image")
1314
@RestController
1415
@RequiredArgsConstructor
1516
public class ImageController {
1617

1718
private final ImageService imageService;
19+
private final ProfileService profileService;
1820

1921
@PostMapping(value = "/upload", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
2022
@Operation(
@@ -30,4 +32,16 @@ public ApiResponse<PresignedUrlResponse> uploadFile(@RequestBody ImageExtensionR
3032

3133
return ApiResponse.onSuccess(url);
3234
}
35+
36+
//프로필 이미지 조회 Api
37+
@GetMapping("/profile/{user_id}")
38+
@Operation(summary = "프로필 이미지 조회 API",
39+
description = "회원가입한 유저의 프로필 이미지를 반환합니다.")
40+
public ApiResponse<String> getProfile(@PathVariable("user_id") Long user_id) {
41+
String profileImage = profileService.getProfileImage(user_id);
42+
43+
// null이거나 ""이면 result를 null로 반환
44+
return ApiResponse.onSuccess((profileImage == null || profileImage.isEmpty()) ? "null" : profileImage);
45+
}
46+
3347
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.memesphere.domain.image.service;
2+
3+
import com.memesphere.domain.user.entity.User;
4+
import com.memesphere.domain.user.repository.UserRepository;
5+
import com.memesphere.global.apipayload.code.status.ErrorStatus;
6+
import com.memesphere.global.apipayload.exception.GeneralException;
7+
import lombok.RequiredArgsConstructor;
8+
import org.springframework.stereotype.Service;
9+
10+
@Service
11+
@RequiredArgsConstructor
12+
public class ProfileService {
13+
private final UserRepository userRepository;
14+
15+
// 프로필 이미지 반환
16+
public String getProfileImage(Long userId) {
17+
User user = userRepository.findById(userId)
18+
.orElseThrow(() -> new GeneralException(ErrorStatus.USER_NOT_FOUND));
19+
return user.getProfileImage();
20+
}
21+
}

src/main/java/com/memesphere/domain/user/converter/UserConverter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public static User toAuthUser(SignUpRequest signUpRequest, PasswordEncoder passw
6666
.password(passwordEncoder.encode(signUpRequest.getPassword()))
6767
.socialType(SocialType.GENERAL)
6868
.userRole(UserRole.USER)
69+
.profileImage(signUpRequest.getProfileImage())
6970
.build();
7071
}
7172

src/main/java/com/memesphere/domain/user/dto/request/SignUpRequest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,7 @@ public class SignUpRequest {
2929
@NotEmpty
3030
@Schema(description = "사용자 생년월일", example = "20001010")
3131
String birth;
32-
}
32+
33+
@Schema(description = "프로필 이미지", example = "http://umc..jpg")
34+
String profileImage;
35+
}

0 commit comments

Comments
 (0)