WITH TFT

기존 닉네임으로만 조회 했지만 지금은 linetag 추가로 인해
기존 로직 수정 ㅠㅠ

 String encodedSummonerName = Uri.encodeComponent(event.nickName);
      String encodedLineTag = Uri.encodeComponent(event.lineTag);
      dynamic response = await _authenticationRepository.passGet(MyEnv.ipRiot,
          '/riot/account/v1/accounts/by-riot-id/$encodedSummonerName/$encodedLineTag?api_key=${MyEnv.riotKey}');

      if (response['puuid'] == null) {
        emit(state.copyWith(status: AuthenticationStatus.unauthenticated));
      } else {
        String puuid = response['puuid'];
        dynamic puuidResponse = await _authenticationRepository.passGet(
            MyEnv.ipTft,
            '/tft/summoner/v1/summoners/by-puuid/$puuid?api_key=${MyEnv.riotKey}');
        String id = puuidResponse['id'];
        dynamic tierResponse = await _authenticationRepository.passGet(
            MyEnv.ipTft,
            '/tft/league/v1/entries/by-summoner/$id?api_key=${MyEnv.riotKey}');
        print('tierResponse:$tierResponse');
        if (tierResponse.isNotEmpty) {
          Tier tier = Tier.fromMap(tierResponse[0]);
          emit(state.copyWith(tier: tier));
        }
        User user = User.fromMap(puuidResponse);
        emit(state.copyWith(user: user));
        emit(state.copyWith(status: AuthenticationStatus.authenticated));
      }

linetag로 인해 유저 정보를 조회후 id값을 받아서 진행 합니다

String encodedSummonerName = Uri.encodeComponent(event.nickName);
      String encodedLineTag = Uri.encodeComponent(event.lineTag);
      dynamic response = await _authenticationRepository.passGet(MyEnv.ipRiot,
          '/riot/account/v1/accounts/by-riot-id/$encodedSummonerName/$encodedLineTag?api_key=${MyEnv.riotKey}');

id 값으로 유저 기본 정보를 받아 저장한다음

티어 정보를 받아 오기위해 tier 모델을 만든후 데이터 저장합니다 랭크를 한번도 안돌린사람은 빈 배열로 들어와서 처리해주었습니다 tier 기본 값은 unranked로 작성

if (tierResponse.isNotEmpty) {
          Tier tier = Tier.fromMap(tierResponse[0]);
          emit(state.copyWith(tier: tier));
        }

tierResponse 배열 형식으로 와서 tierResponse[0]로 map형식으로 받아 처리해주고 tier 정보를 받아 저장 하는 로직 수정 했습니다.

이제 TFT같이 하고 싶은 사람 게시글 작성하는 로직 할 차례 그 뒤에 서버를 가볍게 만들어 볼 생각입니다.

profile
크로스플랫폼 클라이언트 개발자(Flutter) 1년차

0개의 댓글