주요 기능 소개 (Login) - LIKELION-Android-Bootcamp-4th/lookTalk GitHub Wiki
- ID를 PK로 설정하여 중복 가입을 막기 위해 Ajax를 사용하여 사용자가 ID를 입력 시 이미 가입된 아이디인지 아닌지 입력하는 동시에 Text를 뿌려줌
- 주소 API를 연동하여 사용자의 주소를 입력할 수 있게 해줌
Model
Future<ApiResult<void>> submitBuyerSignup({
required BuyerSignupRequest request,
}) async {
final response = await _dio.patch(
AuthEndpoints.buyerSignUp,
data: request.toJson()
);
return ApiResult.fromVoidResponse(response);
}
Future<ApiResult<void>> submitBuyerSignup({
required BuyerSignupRequest request,
}) async {
return apiClient.submitBuyerSignup(request: request);
}
View
onPressed: isAvailable && !isLoading
? () async {
final result = await signupViewModel.submitSignup(nickname);
if (context.mounted) {
if (result.success) {
CommonSnackBar.show(context, message: 'LookTalk에 오신 것을 환영해요!');
context.go('/home');
} else {
CommonSnackBar.show(context, message: '${result.message}');
}
}
}
View Model
Future<ApiResult<void>> submitSignup(String nickname) async {
_isLoading = true;
_errorMessage = null;
notifyListeners();
final request = BuyerSignupRequest(nickName: nickname);
try {
final result = await _repository.submitBuyerSignup(request: request);
_isLoading = false;
notifyListeners();
return result;
} catch (e) {
_isLoading = false;
_errorMessage = '회원가입 중 오류가 발생했습니다.';
notifyListeners();
return ApiResult(
success: false,
message: _errorMessage!,
data: null,
timestamp: DateTime.now(),
error: e.toString(),
);
}
}
화면 보기
- Image
- 로그인을 했을 때 수정이 가능하고, 로그인 시 생성되는 Session 정보를 토대로 회원 정보를 가져옴
- ID와 이름은 수정을 못하고 나머지 정보는 수정 가능
- 주소 API 연동(회원 가입과 동일)
코드 보기
- MemberController.java
- MemberServiceImpl.java
- memberMapper.xml
화면 보기
- Image