주요 기능 소개 (Login) - LIKELION-Android-Bootcamp-4th/lookTalk GitHub Wiki

📌 Member

✔️ 회원 가입

  • ID를 PK로 설정하여 중복 가입을 막기 위해 Ajax를 사용하여 사용자가 ID를 입력 시 이미 가입된 아이디인지 아닌지 입력하는 동시에 Text를 뿌려줌
  • 주소 API를 연동하여 사용자의 주소를 입력할 수 있게 해줌

💻 Code

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(),
      );
    }
  }

📷 View

화면 보기
  • Image

✔️ MyPage (회원 정보 수정)

  • 로그인을 했을 때 수정이 가능하고, 로그인 시 생성되는 Session 정보를 토대로 회원 정보를 가져옴
  • ID와 이름은 수정을 못하고 나머지 정보는 수정 가능
  • 주소 API 연동(회원 가입과 동일)

💻 Code

코드 보기
  • MemberController.java
  • MemberServiceImpl.java
  • memberMapper.xml

📷 View

화면 보기
  • Image
⚠️ **GitHub.com Fallback** ⚠️