Skip to content

Commit 5da912f

Browse files
committed
[Fix] User API conflict ν•΄κ²°
1 parent ba664f6 commit 5da912f

File tree

17 files changed

+1120
-78
lines changed

17 files changed

+1120
-78
lines changed

β€Ž.gitignoreβ€Ž

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,7 @@ Signing/
7777
master.key
7878

7979
# PList
80-
GoogleService-Info.plist
80+
GoogleService-Info.plist
81+
82+
# CLAUDE
83+
CLAUDE.md

β€ŽTnT/Projects/Data/Sources/Network/Service/User/UserRepositoryImpl.swiftβ€Ž

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ public struct UserRepositoryImpl: UserRepository {
5555
public func getMyPageInfo() async throws -> GetMyPageInfoResDTO {
5656
return try await networkService.request(UserTargetType.getMyPageInfo, decodingType: GetMyPageInfoResDTO.self)
5757
}
58-
59-
/// λ‚΄ 정보 μˆ˜μ • μš”μ²­μ„ μˆ˜ν–‰
60-
public func putMyInfo(_ reqDTO: PutMyInfoReqDTO, profileImage: Data?) async throws -> EmptyResponse {
58+
59+
/// νšŒμ› 정보 μˆ˜μ • μš”μ²­μ„ μˆ˜ν–‰
60+
public func putUpdateUserInfo(_ reqDTO: UpdateUserInfoRequestDTO, profileImage: Data?) async throws -> EmptyResponse {
6161
return try await networkService.request(
62-
UserTargetType.putMyInfo(
62+
UserTargetType.putUpdateUserInfo(
6363
reqDTO: reqDTO,
6464
imgData: profileImage
6565
),

β€ŽTnT/Projects/Data/Sources/Network/Service/User/UserTargetType.swiftβ€Ž

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public enum UserTargetType {
2626
/// λ§ˆμ΄νŽ˜μ΄μ§€ 정보 μš”μ²­
2727
case getMyPageInfo
2828
/// νšŒμ› 정보 μˆ˜μ • μš”μ²­
29-
case putMyInfo(reqDTO: PutMyInfoReqDTO, imgData: Data?)
29+
case putUpdateUserInfo(reqDTO: UpdateUserInfoRequestDTO, imgData: Data?)
3030
}
3131

3232
extension UserTargetType: TargetType {
@@ -38,20 +38,20 @@ extension UserTargetType: TargetType {
3838
switch self {
3939
case .getSessionCheck:
4040
return "/check-session"
41-
41+
4242
case .postSocialLogin:
4343
return "/login"
44-
44+
4545
case .postSignUp:
4646
return "/members/sign-up"
47-
47+
4848
case .postLogout:
4949
return "/logout"
50-
50+
5151
case .postWithdrawal:
5252
return "/members/withdraw"
53-
54-
case .getMyPageInfo, .putMyInfo:
53+
54+
case .getMyPageInfo, .putUpdateUserInfo:
5555
return "/members"
5656
}
5757
}
@@ -60,11 +60,11 @@ extension UserTargetType: TargetType {
6060
switch self {
6161
case .getSessionCheck, .getMyPageInfo:
6262
return .get
63-
63+
6464
case .postSocialLogin, .postSignUp, .postLogout, .postWithdrawal:
6565
return .post
66-
67-
case .putMyInfo:
66+
67+
case .putUpdateUserInfo:
6868
return .put
6969
}
7070
}
@@ -73,14 +73,14 @@ extension UserTargetType: TargetType {
7373
switch self {
7474
case .getSessionCheck, .postLogout, .postWithdrawal, .getMyPageInfo:
7575
return .requestPlain
76-
76+
7777
case .postSocialLogin(let reqDto):
7878
return .requestJSONEncodable(encodable: reqDto)
79-
79+
8080
case let .postSignUp(reqDto, imgData):
8181
return makeProfileMultipartUpload(dto: reqDto, imageData: imgData)
82-
83-
case let .putMyInfo(reqDto, imgData):
82+
83+
case let .putUpdateUserInfo(reqDto, imgData):
8484
return makeProfileMultipartUpload(dto: reqDto, imageData: imgData)
8585
}
8686
}
@@ -89,24 +89,18 @@ extension UserTargetType: TargetType {
8989
switch self {
9090
case .getSessionCheck, .postLogout, .postWithdrawal, .getMyPageInfo:
9191
return nil
92-
92+
9393
case .postSocialLogin:
9494
return ["Content-Type": "application/json"]
95-
96-
case .postSignUp:
97-
return [
98-
"Content-Type": "multipart/form-data",
99-
"Authorization": "SESSION-ID 1111"
100-
]
101-
102-
case .putMyInfo:
95+
96+
case .postSignUp, .putUpdateUserInfo:
10397
return ["Content-Type": "multipart/form-data"]
10498
}
10599
}
106100

107101
var interceptors: [any Interceptor] {
108102
switch self {
109-
case .getSessionCheck, .postLogout, .postWithdrawal, .getMyPageInfo, .putMyInfo:
103+
case .getSessionCheck, .postLogout, .postWithdrawal, .getMyPageInfo, .putUpdateUserInfo:
110104
return [
111105
LoggingInterceptor(),
112106
AuthTokenInterceptor(),

β€ŽTnT/Projects/Domain/Sources/DTO/User/UserRequestDTO.swiftβ€Ž

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -96,18 +96,34 @@ public struct PostSignUpReqDTO: Encodable {
9696
}
9797
}
9898

99-
/// λ‚΄ 정보 μˆ˜μ • μš”μ²­ DTO
100-
public struct PutMyInfoReqDTO: Encodable {
101-
99+
/// νšŒμ› 정보 μˆ˜μ • μš”μ²­ DTO
100+
public struct UpdateUserInfoRequestDTO: Encodable, Equatable {
101+
/// 이미지 μ‚­μ œ μ—¬λΆ€
102+
public let removeImage: Bool
103+
/// νšŒμ› νƒ€μž… (TRAINER, TRAINEE)
104+
public let memberType: String
105+
/// νšŒμ› 이름
106+
public let name: String
107+
/// 생년월일 (yyyy-MM-dd)
108+
public let birthday: String?
109+
/// ν‚€ (cm)
110+
public let height: Double?
111+
/// λͺΈλ¬΄κ²Œ (kg)
112+
public let weight: Double?
113+
/// μ£Όμ˜μ‚¬ν•­
114+
public let cautionNote: String?
115+
/// PT λͺ©μ  (ν•œκΈ€ λ¬Έμžμ—΄ λ°°μ—΄)
116+
public let ptGoals: [String]?
117+
102118
public init(
103119
removeImage: Bool,
104120
memberType: String,
105121
name: String,
106-
birthday: String? = nil,
107-
height: Double? = nil,
108-
weight: Double? = nil,
109-
cautionNote: String? = nil,
110-
goalContents: [String]? = nil
122+
birthday: String?,
123+
height: Double?,
124+
weight: Double?,
125+
cautionNote: String?,
126+
ptGoals: [String]?
111127
) {
112128
self.removeImage = removeImage
113129
self.memberType = memberType
@@ -116,16 +132,6 @@ public struct PutMyInfoReqDTO: Encodable {
116132
self.height = height
117133
self.weight = weight
118134
self.cautionNote = cautionNote
119-
self.goalContents = goalContents ?? []
135+
self.ptGoals = ptGoals
120136
}
121-
122-
public var removeImage: Bool
123-
public var memberType: String
124-
public var name: String
125-
public var birthday: String?
126-
public var height: Double?
127-
public var weight: Double?
128-
public var cautionNote: String?
129-
public var goalContents: [String]
130137
}
131-

β€ŽTnT/Projects/Domain/Sources/Entity/MyPageEntity.swiftβ€Ž

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,56 @@ public struct TraineeMyPageEntity: Equatable, Sendable {
1717
public let profileImageUrl: String
1818
/// μ†Œμ…œ νƒ€μž…
1919
public let socialType: String
20+
21+
/// 생년월일
22+
public let birthday: String?
23+
/// λ‚˜μ΄
24+
public let age: Int?
25+
/// ν‚€ (cm)
26+
public let height: Double?
27+
/// λͺΈλ¬΄κ²Œ (kg)
28+
public let weight: Double?
29+
/// μ£Όμ˜μ‚¬ν•­
30+
public let cautionNote: String?
31+
/// PT λͺ©ν‘œ
32+
public let ptGoals: [String]
33+
34+
public init(
35+
isConnected: Bool,
36+
name: String,
37+
profileImageUrl: String,
38+
socialType: String,
39+
birthday: String?,
40+
age: Int?,
41+
height: Double?,
42+
weight: Double?,
43+
cautionNote: String?,
44+
ptGoals: [String]
45+
) {
46+
self.isConnected = isConnected
47+
self.name = name
48+
self.profileImageUrl = profileImageUrl
49+
self.socialType = socialType
50+
self.birthday = birthday
51+
self.age = age
52+
self.height = height
53+
self.weight = weight
54+
self.cautionNote = cautionNote
55+
self.ptGoals = ptGoals
56+
}
57+
58+
public init() {
59+
self.isConnected = false
60+
self.name = ""
61+
self.profileImageUrl = ""
62+
self.socialType = ""
63+
self.birthday = ""
64+
self.age = 0
65+
self.height = 0
66+
self.weight = 0
67+
self.cautionNote = ""
68+
self.ptGoals = []
69+
}
2070
}
2171

2272
public struct TrainerMyPageEntity: Equatable, Sendable {

β€ŽTnT/Projects/Domain/Sources/Entity/TrainingPurpose.swiftβ€Ž

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,24 @@ public extension TrainingPurpose {
4242
return "μžμ„Έ ꡐ정"
4343
}
4444
}
45+
46+
/// ν•œκΈ€ μ΄λ¦„μœΌλ‘œλΆ€ν„° TrainingPurposeλ₯Ό 생성
47+
init?(koreanName: String) {
48+
switch koreanName {
49+
case "체쀑 κ°λŸ‰":
50+
self = .loseWeight
51+
case "κ·Όλ ₯ ν–₯상":
52+
self = .gainMuscle
53+
case "건강 관리":
54+
self = .healthWellness
55+
case "μœ μ—°μ„± ν–₯상":
56+
self = .flexibilityImprovement
57+
case "λ°”λ””ν”„λ‘œν•„":
58+
self = .bodyProfile
59+
case "μžμ„Έ ꡐ정":
60+
self = .postureCorrection
61+
default:
62+
return nil
63+
}
64+
}
4565
}

β€ŽTnT/Projects/Domain/Sources/Mapper/UserMapper.swiftβ€Ž

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ public extension GetMyPageInfoResDTO {
1414
isConnected: self.trainee?.isConnected ?? false,
1515
name: self.name,
1616
profileImageUrl: self.profileImageUrl,
17-
socialType: self.socialType
17+
socialType: self.socialType,
18+
birthday: self.trainee?.birthday,
19+
age: self.trainee?.age,
20+
height: self.trainee?.height,
21+
weight: self.trainee?.weight,
22+
cautionNote: self.trainee?.cautionNote,
23+
ptGoals: self.trainee?.ptGoals ?? []
1824
)
1925
}
2026

@@ -30,7 +36,7 @@ public extension GetMyPageInfoResDTO {
3036
}
3137

3238
public extension EditUserInfoEntity {
33-
func toDTO() -> PutMyInfoReqDTO {
39+
func toDTO() -> UpdateUserInfoRequestDTO {
3440
return .init(
3541
removeImage: self.removeImage,
3642
memberType: self.memberType.englishName,
@@ -39,7 +45,7 @@ public extension EditUserInfoEntity {
3945
height: self.height,
4046
weight: self.weight,
4147
cautionNote: self.cautionNote,
42-
goalContents: self.goalContents
48+
ptGoals: self.goalContents
4349
)
4450
}
4551
}

β€ŽTnT/Projects/Domain/Sources/Policy/AppStorage.swiftβ€Ž

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
// Copyright Β© 2025 yapp25thTeamTnT. All rights reserved.
77
//
88

9-
import Foundation
10-
119
public enum AppStorage {
1210
public static let hideHomePopupUntil: String = "hideHomePopupUntil"
1311
public static let isConnected: String = "isConnected"

β€ŽTnT/Projects/Domain/Sources/Repository/UserRepository.swiftβ€Ž

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,12 @@ public protocol UserRepository {
4444
/// - Returns: λ§ˆμ΄νŽ˜μ΄μ§€ ν‘œμ‹œμ— ν•„μš”ν•œ 응닡 DTO (`GetMyPageInfoResDTO`)
4545
/// - Throws: λ„€νŠΈμ›Œν¬ 였λ₯˜ λ˜λŠ” μ„œλ²„μ—μ„œ λ°˜ν™˜ν•œ 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚¬ 수 있음
4646
func getMyPageInfo() async throws -> GetMyPageInfoResDTO
47-
48-
/// λ§ˆμ΄νŽ˜μ΄μ§€ 정보 μˆ˜μ • μš”μ²­
49-
/// - Returns: λ§ˆμ΄νŽ˜μ΄μ§€ 정보 μˆ˜μ • 응닡 DTO
47+
48+
/// νšŒμ› 정보 μˆ˜μ • μš”μ²­
49+
/// - Parameters:
50+
/// - reqDTO: νšŒμ› 정보 μˆ˜μ • μš”μ²­μ— ν•„μš”ν•œ 데이터
51+
/// - profileImage: μ‚¬μš©μžκ°€ μ—…λ‘œλ“œν•œ ν”„λ‘œν•„ 이미지 (μ˜΅μ…˜)
52+
/// - Returns: νšŒμ› 정보 μˆ˜μ • 성곡 μ‹œ 빈 응닡
5053
/// - Throws: λ„€νŠΈμ›Œν¬ 였λ₯˜ λ˜λŠ” μ„œλ²„μ—μ„œ λ°˜ν™˜ν•œ 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚¬ 수 있음
51-
func putMyInfo(_ reqDTO: PutMyInfoReqDTO, profileImage: Data?) async throws -> EmptyResponse
54+
func putUpdateUserInfo(_ reqDTO: UpdateUserInfoRequestDTO, profileImage: Data?) async throws -> EmptyResponse
5255
}

β€ŽTnT/Projects/Domain/Sources/UseCase/UserUseCase.swiftβ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ extension DefaultUserUseCase: UserRepository {
9191
public func getMyPageInfo() async throws -> GetMyPageInfoResDTO {
9292
return try await userRepostiory.getMyPageInfo()
9393
}
94-
95-
public func putMyInfo(_ reqDTO: PutMyInfoReqDTO, profileImage: Data?) async throws -> EmptyResponse {
96-
return try await userRepostiory.putMyInfo(reqDTO, profileImage: profileImage)
94+
95+
public func putUpdateUserInfo(_ reqDTO: UpdateUserInfoRequestDTO, profileImage: Data?) async throws -> EmptyResponse {
96+
return try await userRepostiory.putUpdateUserInfo(reqDTO, profileImage: profileImage)
9797
}
9898
}

0 commit comments

Comments
Β (0)