Skip to content

Commit 0d39410

Browse files
authored
[Feat]: 회원가입 및 로그인 시 platform 필드 추가 (#144)
iOS, ANDROID 구분용 필드 추가 Related to: #143
1 parent dc2e723 commit 0d39410

File tree

6 files changed

+46
-5
lines changed

6 files changed

+46
-5
lines changed

src/main/java/io/sobok/SobokSobok/auth/application/SocialService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public SocialSignupResponse signup(SocialSignupRequest request) {
4444
.build())
4545
.deviceToken(request.deviceToken())
4646
.roles(Role.USER.name())
47+
.platform(request.platform())
4748
.build());
4849

4950
Jwt jwt = jwtProvider.getUserJwt(signupUser.getSocialInfo().getSocialId());
@@ -69,6 +70,10 @@ public SocialLoginResponse login(SocialLoginRequest request) {
6970
loginUser.updateDeviceToken(request.deviceToken());
7071
}
7172

73+
if (!request.platform().equals(loginUser.getPlatform())) {
74+
loginUser.updatePlatform(request.platform());
75+
}
76+
7277
Jwt jwt = jwtProvider.getUserJwt(loginUser.getSocialInfo().getSocialId());
7378

7479
return SocialLoginResponse.builder()
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.sobok.SobokSobok.auth.domain;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public enum Platform {
7+
8+
iOS,
9+
ANDROID,
10+
;
11+
}

src/main/java/io/sobok/SobokSobok/auth/domain/User.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,17 @@ public class User extends BaseEntity implements UserDetails {
4949
@Column
5050
private String leaveReason;
5151

52+
@Column
53+
@Enumerated(EnumType.STRING)
54+
private Platform platform;
55+
5256
@Builder
53-
public User(String username, SocialInfo socialInfo, String deviceToken, String roles) {
57+
public User(String username, SocialInfo socialInfo, String deviceToken, String roles, Platform platform) {
5458
this.username = username;
5559
this.socialInfo = socialInfo;
5660
this.deviceToken = deviceToken;
5761
this.roles = roles;
62+
this.platform = platform;
5863
}
5964

6065
public void updateDeviceToken(String newDeviceToken) {
@@ -65,6 +70,10 @@ public void changeUsername(String username) {
6570
this.username = username;
6671
}
6772

73+
public void updatePlatform(Platform platform) {
74+
this.platform = platform;
75+
}
76+
6877
public void deleteUser(String leaveReason) {
6978
this.deviceToken = null;
7079
this.username = null;

src/main/java/io/sobok/SobokSobok/auth/ui/AuthController.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import io.sobok.SobokSobok.auth.application.AuthService;
44
import io.sobok.SobokSobok.auth.application.SocialService;
5+
import io.sobok.SobokSobok.auth.domain.Platform;
56
import io.sobok.SobokSobok.auth.domain.User;
67
import io.sobok.SobokSobok.auth.ui.dto.*;
78
import io.sobok.SobokSobok.common.dto.ApiResponse;
89
import io.sobok.SobokSobok.exception.SuccessCode;
910
import io.swagger.v3.oas.annotations.Operation;
1011
import io.swagger.v3.oas.annotations.tags.Tag;
1112
import jakarta.validation.Valid;
13+
import jakarta.validation.constraints.NotBlank;
1214
import lombok.RequiredArgsConstructor;
1315
import org.springframework.http.HttpStatus;
1416
import org.springframework.http.ResponseEntity;
@@ -48,8 +50,9 @@ public ResponseEntity<ApiResponse<SocialSignupResponse>> signup(
4850
)
4951
public ResponseEntity<ApiResponse<SocialLoginResponse>> login(
5052
@RequestParam final String socialId,
51-
@RequestParam final String deviceToken
52-
) {
53+
@RequestParam final String deviceToken,
54+
@RequestParam final Platform platform
55+
) {
5356

5457
return ResponseEntity
5558
.status(HttpStatus.OK)
@@ -58,6 +61,7 @@ public ResponseEntity<ApiResponse<SocialLoginResponse>> login(
5861
socialService.login(SocialLoginRequest.builder()
5962
.socialId(socialId)
6063
.deviceToken(deviceToken)
64+
.platform(platform)
6165
.build())
6266
));
6367
}

src/main/java/io/sobok/SobokSobok/auth/ui/dto/SocialLoginRequest.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.sobok.SobokSobok.auth.ui.dto;
22

3+
import io.sobok.SobokSobok.auth.domain.Platform;
34
import io.swagger.v3.oas.annotations.media.Schema;
5+
import jakarta.validation.constraints.NotNull;
46
import lombok.Builder;
57

68
@Builder
@@ -10,6 +12,10 @@ public record SocialLoginRequest(
1012
String socialId,
1113

1214
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
13-
String deviceToken
15+
String deviceToken,
16+
17+
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
18+
@NotNull
19+
Platform platform
1420
) {
1521
}

src/main/java/io/sobok/SobokSobok/auth/ui/dto/SocialSignupRequest.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package io.sobok.SobokSobok.auth.ui.dto;
22

3+
import io.sobok.SobokSobok.auth.domain.Platform;
34
import io.swagger.v3.oas.annotations.media.Schema;
45
import jakarta.validation.constraints.NotBlank;
6+
import jakarta.validation.constraints.NotNull;
57

68
public record SocialSignupRequest(
79

@@ -15,6 +17,10 @@ public record SocialSignupRequest(
1517

1618
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
1719
@NotBlank
18-
String deviceToken
20+
String deviceToken,
21+
22+
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
23+
@NotNull
24+
Platform platform
1925
) {
2026
}

0 commit comments

Comments
 (0)