기존 닉네임으로만 조회 했지만 지금은 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같이 하고 싶은 사람 게시글 작성하는 로직 할 차례 그 뒤에 서버를 가볍게 만들어 볼 생각입니다.