Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deploy - develop -> main #190

Merged
merged 70 commits into from
Aug 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
4d59091
modify - #175 기존 Controller 코드를 Deprecated 처리 후 v2 코드 추가
kseysh Jul 17, 2024
2c2cb0b
modify - #175 기존 Controller 코드를 Deprecated 처리 후 v2 코드 추가
kseysh Jul 17, 2024
3cb5567
modify - #175 기존 Controller 코드를 Deprecated 처리 후 v2 코드 추가
kseysh Jul 17, 2024
505c846
modify - #175 기존 컨트롤러 코드에 @Deprecated 추가
kseysh Jul 17, 2024
63e78bb
feat - #175 Challenge 도메인에 startDate 추가
kseysh Jul 17, 2024
1fee966
feat - #175 dailyChallenge 생성시 challenge의 startDate를 이용해 생성하도록 변경
kseysh Jul 17, 2024
06e0c88
feat - #175 dailyChallenge 생성시 userId를 challenge 값에서 가져오도록 수정
kseysh Jul 17, 2024
73e9eb2
modify - #175 DailyChallengeResponse의 제약조건 추가
kseysh Jul 18, 2024
76b5b4e
refactor - #175 challengeRepository 추상화
kseysh Jul 18, 2024
a0dbbc2
modify - #175 Controller에서 NewChallengeOrder dto를 만들어 서비스를 호출하도록 수정
kseysh Jul 18, 2024
8fb5e4a
modify - #175 of 메서드를 이용해 서비스 코드 가독성 향상
kseysh Jul 18, 2024
4672741
refactor - #175 user의 currentChallengeId 변경 관련 메서드 책임 분리
kseysh Jul 18, 2024
01e9ef0
refactor - #175 repository 추상화
kseysh Jul 18, 2024
387df5f
refactor - #175 currentChallengeId를 찾는 로직을 안전한 메서드로 변경
kseysh Jul 18, 2024
039e562
refactor - #175 가독성을 위한 this 추가
kseysh Jul 18, 2024
be21c0b
refactor - #175 현재 챌린지 id를 변경하는 로직 추가
kseysh Jul 18, 2024
f3f4737
feat - #175 회원가입 v2 추가
kseysh Jul 18, 2024
aaadf6a
feat - #175 홈 이용시간 통계 불러오 v2 추가
kseysh Jul 18, 2024
d48c64f
feat - #175 달성현황 정보 불러오기 v2 추가
kseysh Jul 18, 2024
c9ff73d
refactor - #175 사용되지 않는 import 제거
kseysh Jul 18, 2024
72953d2
refactor - #175 challengeAppController 분리
kseysh Jul 18, 2024
8e6365a
refactor - #175 사용되지 않는 import 삭제
kseysh Jul 18, 2024
97ddeb4
refactor - #175 DailyChallengeController 분리
kseysh Jul 18, 2024
1f98f5b
refactor - #175 CustomHeaderType을 상수로 정의
kseysh Jul 18, 2024
e039354
refactor - #175 jwt 패키지 정
kseysh Jul 18, 2024
256468f
docs - #175 DailyChallengeController swagger 문서 설명 수정
kseysh Jul 18, 2024
0f5f284
modify - #175 기존 Deprecated controller에 Deprecated 추
kseysh Jul 18, 2024
4f7a4f4
modify - #175 기존 DailyChallengeController 관련 코드에 Deprecated 추
kseysh Jul 18, 2024
f25a2e6
feat - #175 새로운 dailyChallenge request 추가
kseysh Jul 18, 2024
d25e154
chore - #175 줄바꿈 수정
kseysh Jul 18, 2024
282cfee
refactor - #175 DailyChallengeRepository 추상화
kseysh Jul 18, 2024
e64fc9e
feat - #175 dailyChalleng를 모두 찾는 레포지토리 메서드에서 challengeDate로 정렬할 수 있도록 수정
kseysh Jul 18, 2024
12dedba
feat - #175 QuerydslConfiguration 추가
kseysh Jul 18, 2024
0808e8c
modify - #175 dailyChallenge 관련 dto valid 문장 수정
kseysh Jul 18, 2024
2e7c450
modify - #175 DailyChallengeService에서 챌린지 아이디와 챌린지 기간 인덱스로 일별챌린지를 찾는 …
kseysh Jul 18, 2024
331825a
feat - #175 포인트 사용 api v2 추가 및 v1 Deprecated 처리
kseysh Jul 18, 2024
bf677a5
feat - #175 포인트 사용 api를 timeZone을 사용하여 당일의 날짜로 처리하도록 수정
kseysh Jul 18, 2024
12b7902
feat - #175 당일 잠금 여부 전송 및 확인 v2 추
kseysh Jul 18, 2024
5dc8f9b
fix - #175 빠뜨린 RequestHeader key값 추가
kseysh Jul 18, 2024
11153db
fix - #175 회원가입 v2를 인증을 거치지 않아도 되도록 수정
kseysh Jul 18, 2024
a67b097
fix - #175 userRecentLockDate가 null일 때 NPE를 방지하도록 수정
kseysh Jul 18, 2024
52bee42
Merge pull request #182 from Team-HMH/modify/#175-change-the-way-to-r…
kseysh Jul 19, 2024
f999db4
feat - #183 챌린지 상태값을 반환하는 response record 추가
jumining Jul 19, 2024
445cb02
feat - #183 controller의 BaseResponse 수정
jumining Jul 19, 2024
39006e5
feat - #183 일별 챌린지 결과 전송 후 챌린지의 상태값들을 반환하는 메소드 작성
jumining Jul 19, 2024
e872753
feat - #175 dailyChallenge를 추가하기 전 중복되는 일별 챌린지가 있는지 확인하는 로직 추가
kseysh Jul 19, 2024
b4341dd
feat - #175 Quertdsl을 이용하여 challengeDate 리스트와 맞는 dailyChallenge가 있는지 …
kseysh Jul 19, 2024
7189932
modify - #183 서비스 내의 메소드를 하나만 호출하도록 컨트롤러 변경
jumining Jul 21, 2024
a016925
modify - #183 기존 메소드의 return형태 void에서 List<Status>로 수정 및 불러온 챌린지를 재활용…
jumining Jul 21, 2024
d3fa095
feat - #183 challengeDate로 정렬하는 조건 추가
jumining Jul 21, 2024
8a34f26
Merge pull request #185 from Team-HMH/fix/#162-duplicate-daily-challenge
kseysh Jul 21, 2024
1886a83
feat - #183 challengeResponse의 of 메소드에서 challengeDate를 기준으로 정렬해서 리턴하도…
jumining Jul 22, 2024
b4f96b8
chore - #183 challengeDate로 정렬해서 historyDailyChallenge 가져오는 중복 코드 메소드…
jumining Jul 22, 2024
22ab912
chore - #183 메소드에서 사용되는 변수명 수정
jumining Jul 22, 2024
2ca0d57
modify - #183 불필요한 쿼리 사용이 없도록 dailyChallenge구해오는 코드 수정
jumining Jul 22, 2024
948da00
Merge branch 'develop' of https://github.com/Team-HMH/HMH-Server into…
jumining Jul 22, 2024
62c0b7a
feat - #183 historyDailyChallenges가 항상 challengeDate기준으로 정렬되도록 설정
jumining Jul 29, 2024
e78100d
feat - #183 sorted 삭제
jumining Jul 29, 2024
8377bea
chore - #183 index로 dailyChallenge 구하고 에러처리하는 메소드 수정
jumining Jul 29, 2024
4fbb30f
chore - #183 메소드명에서 필요없는 이름 수정
jumining Jul 29, 2024
c03f2d1
Merge pull request #184 from Team-HMH/modify/#183-change-response-pos…
jumining Jul 29, 2024
b838666
fix - #186 유저 정보 불러오기 url 수정
kseysh Aug 2, 2024
e2455a3
Merge pull request #187 from Team-HMH/fix/#186-get-user-info-url-error
kseysh Aug 2, 2024
2831fb1
fix - #188 기존 챌린지 id 값 불러오는 메소드 순서 수정
jumining Aug 17, 2024
eb1532f
feat - #188 Error 메시지 추가
jumining Aug 19, 2024
3284fde
feat - #188 인덱스 유효성 검사 메소드 추가
jumining Aug 19, 2024
926067f
feat - #188 컨트롤러에서 서비스 메소드 호출 시 timeZone 인자 추가
jumining Aug 19, 2024
507229d
feat - #188 지난날의 정보만 전송할 수 있도록 유효성 메소드 적용
jumining Aug 19, 2024
7aa4633
feat - #188 success api에도 적용
jumining Aug 19, 2024
6409927
Merge pull request #189 from Team-HMH/fix/#188-find-previous-apps
jumining Aug 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import sopt.org.hmh.domain.dailychallenge.service.DailyChallengeService;
import sopt.org.hmh.domain.user.domain.User;
import sopt.org.hmh.domain.user.service.UserService;
import sopt.org.hmh.global.auth.jwt.TokenService;
import sopt.org.hmh.global.auth.jwt.service.TokenService;

@Service
@RequiredArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package sopt.org.hmh.domain.app.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import sopt.org.hmh.domain.app.dto.request.AppRemoveRequest;
import sopt.org.hmh.domain.app.dto.request.ChallengeAppArrayRequest;
import sopt.org.hmh.global.auth.jwt.JwtConstants;
import sopt.org.hmh.global.common.response.BaseResponse;
import sopt.org.hmh.global.common.response.EmptyJsonResponse;

@Tag(name = "챌린지 관련 API")
@SecurityRequirement(name = JwtConstants.AUTHORIZATION)
public interface ChallengeAppApi {

@Operation(
summary = "스크린타임 설정할 앱을 추가하는 API",
responses = {
@ApiResponse(
responseCode = "200",
description = "챌린지 정보 조회에 성공했습니다."),
@ApiResponse(
responseCode = "400",
description = "잘못된 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<BaseResponse<EmptyJsonResponse>> orderAddApps(
@Parameter(hidden = true) Long userId,
@RequestHeader("OS") String os,
@RequestBody ChallengeAppArrayRequest requests);

@Operation(
summary = "스크린타임 설정한 앱을 삭제하는 API",
responses = {
@ApiResponse(
responseCode = "200",
description = "챌린지 정보 조회에 성공했습니다."),
@ApiResponse(
responseCode = "400",
description = "잘못된 요청입니다.",
content = @Content),
@ApiResponse(
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<BaseResponse<EmptyJsonResponse>> orderRemoveApp(
@Parameter(hidden = true) Long userId,
@RequestHeader("OS") String os,
@RequestBody AppRemoveRequest request);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package sopt.org.hmh.domain.app.controller;

import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import sopt.org.hmh.domain.app.domain.exception.AppSuccess;
import sopt.org.hmh.domain.app.dto.request.AppRemoveRequest;
import sopt.org.hmh.domain.app.dto.request.ChallengeAppArrayRequest;
import sopt.org.hmh.domain.challenge.service.ChallengeFacade;
import sopt.org.hmh.global.auth.UserId;
import sopt.org.hmh.global.common.constant.CustomHeaderType;
import sopt.org.hmh.global.common.response.BaseResponse;
import sopt.org.hmh.global.common.response.EmptyJsonResponse;

@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/challenge/app")
public class ChallengeAppController implements ChallengeAppApi {

private final ChallengeFacade challengeFacade;

@Override
@PostMapping
public ResponseEntity<BaseResponse<EmptyJsonResponse>> orderAddApps(
@UserId final Long userId,
@RequestHeader(CustomHeaderType.OS) final String os,
@RequestBody @Valid final ChallengeAppArrayRequest requests) {
challengeFacade.addAppsToCurrentChallenge(userId, requests.apps(), os);

return ResponseEntity
.status(AppSuccess.ADD_APP_SUCCESS.getHttpStatus())
.body(BaseResponse.success(AppSuccess.ADD_APP_SUCCESS, new EmptyJsonResponse()));

}

@Override
@DeleteMapping
public ResponseEntity<BaseResponse<EmptyJsonResponse>> orderRemoveApp(
@UserId final Long userId,
@RequestHeader(CustomHeaderType.OS) final String os,
@RequestBody @Valid final AppRemoveRequest request) {
challengeFacade.removeAppFromCurrentChallenge(userId, request.appCode(), os);

return ResponseEntity
.status(AppSuccess.REMOVE_APP_SUCCESS.getHttpStatus())
.body(BaseResponse.success(AppSuccess.REMOVE_APP_SUCCESS, new EmptyJsonResponse()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public void addHistoryApp(
}

private List<HistoryApp> supplementAdditionalInfo(List<ChallengeApp> currentChallengeApps,
List<HistoryAppRequest> apps, DailyChallenge dailyChallenge, String os) {
List<HistoryAppRequest> apps, DailyChallenge dailyChallenge, String os) {
return apps.stream().map(app -> HistoryApp.builder()
.goalTime(this.getGoalTime(currentChallengeApps, app.appCode()))
.appCode(app.appCode())
Expand Down
17 changes: 13 additions & 4 deletions src/main/java/sopt/org/hmh/domain/auth/controller/AuthApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
import org.springframework.web.bind.annotation.RequestHeader;
import sopt.org.hmh.domain.auth.dto.request.SocialPlatformRequest;
import sopt.org.hmh.domain.auth.dto.request.SocialSignUpRequest;
import sopt.org.hmh.global.auth.UserId;
import sopt.org.hmh.domain.auth.dto.response.LoginResponse;
import sopt.org.hmh.domain.auth.dto.response.ReissueResponse;
import sopt.org.hmh.global.auth.jwt.JwtConstants;
import sopt.org.hmh.global.common.response.BaseResponse;

Expand All @@ -18,20 +19,28 @@
public interface AuthApi {

@Operation(summary = "소셜 로그인")
ResponseEntity<BaseResponse<?>> orderLogin(
ResponseEntity<BaseResponse<LoginResponse>> orderLogin(
@Parameter(hidden = true) @RequestHeader(JwtConstants.AUTHORIZATION) final String socialAccessToken,
@RequestBody final SocialPlatformRequest request
);

@Operation(summary = "회원 가입")
ResponseEntity<BaseResponse<?>> orderSignup(
ResponseEntity<BaseResponse<LoginResponse>> orderSignupDeprecated(
@Parameter(hidden = true) @RequestHeader(JwtConstants.AUTHORIZATION) final String socialAccessToken,
@RequestHeader("OS") final String os,
@RequestBody final SocialSignUpRequest request
);

@Operation(summary = "회원 가입 V2")
ResponseEntity<BaseResponse<LoginResponse>> orderSignup(
@Parameter(hidden = true) @RequestHeader(JwtConstants.AUTHORIZATION) final String socialAccessToken,
@RequestHeader("OS") final String os,
@RequestHeader("Time-Zone") final String timeZone,
@RequestBody final SocialSignUpRequest request
);

@Operation(summary = "토큰 재발급")
ResponseEntity<BaseResponse<?>> orderReissue(
ResponseEntity<BaseResponse<ReissueResponse>> orderReissue(
@Parameter(hidden = true) @RequestHeader(JwtConstants.AUTHORIZATION) final String refreshToken
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,28 @@
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import sopt.org.hmh.domain.auth.dto.response.LoginResponse;
import sopt.org.hmh.domain.auth.dto.response.ReissueResponse;
import sopt.org.hmh.domain.auth.exception.AuthSuccess;
import sopt.org.hmh.domain.auth.dto.request.SocialPlatformRequest;
import sopt.org.hmh.domain.auth.dto.request.SocialSignUpRequest;
import sopt.org.hmh.domain.auth.service.AuthFacade;
import sopt.org.hmh.global.auth.jwt.JwtConstants;
import sopt.org.hmh.global.auth.social.SocialAccessTokenResponse;
import sopt.org.hmh.global.common.constant.CustomHeaderType;
import sopt.org.hmh.global.common.response.BaseResponse;

@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/user")
@RequestMapping("/api")
public class AuthController implements AuthApi {

private final AuthFacade authFacade;

@PostMapping("/login")
@PostMapping("/v1/user/login")
@Override
public ResponseEntity<BaseResponse<?>> orderLogin(
@RequestHeader("Authorization") final String socialAccessToken,
public ResponseEntity<BaseResponse<LoginResponse>> orderLogin(
@RequestHeader(JwtConstants.AUTHORIZATION) final String socialAccessToken,
@RequestBody final SocialPlatformRequest request
) {
return ResponseEntity
Expand All @@ -38,25 +42,42 @@ public ResponseEntity<BaseResponse<?>> orderLogin(
));
}

@PostMapping("/signup")
@Override
public ResponseEntity<BaseResponse<?>> orderSignup(
@RequestHeader("Authorization") final String socialAccessToken,
@RequestHeader("OS") final String os,
@Deprecated
@PostMapping("/v1/user/signup")
public ResponseEntity<BaseResponse<LoginResponse>> orderSignupDeprecated(
@RequestHeader(JwtConstants.AUTHORIZATION) final String socialAccessToken,
@RequestHeader(CustomHeaderType.OS) final String os,
@RequestBody @Valid final SocialSignUpRequest request
) {
return ResponseEntity
.status(AuthSuccess.SIGNUP_SUCCESS.getHttpStatus())
.body(BaseResponse.success(
AuthSuccess.SIGNUP_SUCCESS,
authFacade.signup(request, socialAccessToken, os)
authFacade.signup(request, socialAccessToken, os, "Asia/Seoul")
));
}

@PostMapping("/reissue")
@Override
public ResponseEntity<BaseResponse<?>> orderReissue(
@RequestHeader("Authorization") final String refreshToken
@PostMapping("/v2/user/signup")
public ResponseEntity<BaseResponse<LoginResponse>> orderSignup(
@RequestHeader(JwtConstants.AUTHORIZATION) final String socialAccessToken,
@RequestHeader(CustomHeaderType.OS) final String os,
@RequestHeader(CustomHeaderType.TIME_ZONE) final String timeZone,
@RequestBody @Valid final SocialSignUpRequest request
) {
return ResponseEntity
.status(AuthSuccess.SIGNUP_SUCCESS.getHttpStatus())
.body(BaseResponse.success(
AuthSuccess.SIGNUP_SUCCESS,
authFacade.signup(request, socialAccessToken, os, timeZone)
));
}

@Override
@PostMapping("/v1/user/reissue")
public ResponseEntity<BaseResponse<ReissueResponse>> orderReissue(
@RequestHeader(JwtConstants.AUTHORIZATION) final String refreshToken
) {
return ResponseEntity
.status(AuthSuccess.REISSUE_SUCCESS.getHttpStatus())
Expand All @@ -66,7 +87,7 @@ public ResponseEntity<BaseResponse<?>> orderReissue(
));
}

@GetMapping("/social/token/kakao")
@GetMapping("/v1/user/social/token/kakao")
public ResponseEntity<BaseResponse<SocialAccessTokenResponse>> orderGetKakaoAccessToken(
@RequestParam("code") final String code
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import java.util.List;
import sopt.org.hmh.domain.challenge.dto.request.ChallengeRequest;
import sopt.org.hmh.domain.challenge.dto.request.ChallengeSignUpRequest;
import sopt.org.hmh.domain.user.domain.OnboardingInfo;
import sopt.org.hmh.domain.user.domain.OnboardingProblem;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package sopt.org.hmh.domain.auth.dto.response;

import com.fasterxml.jackson.annotation.JsonProperty;
import sopt.org.hmh.global.auth.jwt.TokenResponse;
import sopt.org.hmh.global.auth.jwt.dto.TokenResponse;

public record LoginResponse(
Long userId,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package sopt.org.hmh.domain.auth.dto.response;

import com.fasterxml.jackson.annotation.JsonProperty;
import sopt.org.hmh.global.auth.jwt.TokenResponse;
import sopt.org.hmh.global.auth.jwt.dto.TokenResponse;

public record ReissueResponse(
@JsonProperty(value = "token")
Expand Down
10 changes: 7 additions & 3 deletions src/main/java/sopt/org/hmh/domain/auth/service/AuthFacade.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import sopt.org.hmh.domain.auth.dto.response.ReissueResponse;
import sopt.org.hmh.domain.challenge.dto.request.NewChallengeOrder;
import sopt.org.hmh.domain.challenge.service.ChallengeFacade;
import sopt.org.hmh.domain.user.domain.User;
import sopt.org.hmh.domain.auth.dto.request.SocialSignUpRequest;
import sopt.org.hmh.domain.auth.dto.response.LoginResponse;
import sopt.org.hmh.domain.user.service.UserService;
import sopt.org.hmh.global.auth.jwt.TokenService;
import sopt.org.hmh.global.auth.jwt.service.TokenService;
import sopt.org.hmh.global.auth.jwt.exception.JwtError;
import sopt.org.hmh.global.auth.jwt.exception.JwtException;
import sopt.org.hmh.global.auth.social.SocialPlatform;
Expand All @@ -36,7 +37,7 @@ public LoginResponse login(String socialAccessToken, SocialPlatform socialPlatfo
}

@Transactional
public LoginResponse signup(SocialSignUpRequest request, String socialAccessToken, String os) {
public LoginResponse signup(SocialSignUpRequest request, String socialAccessToken, String os, String timeZone) {
SocialPlatform socialPlatform = request.socialPlatform();
String socialId = this.getSocialIdBySocialAccessToken(socialPlatform, socialAccessToken);

Expand All @@ -45,7 +46,10 @@ public LoginResponse signup(SocialSignUpRequest request, String socialAccessToke

userService.registerOnboardingInfo(request, newUserId);

challengeFacade.startFirstChallengeWithChallengeSignUpRequest(request.challenge(), newUser , os);
challengeFacade.startNewChallenge(NewChallengeOrder.createFirstChallengeOrder(
request.challenge().toChallengeRequest(), request.challenge().apps(),
newUserId, os, timeZone
));

return performLogin(newUser, socialAccessToken, socialPlatform);
}
Expand Down
Loading
Loading