Skip to content

Commit

Permalink
Merge pull request #80 from woowacourse-teams/be/feat/#72-database-ko…
Browse files Browse the repository at this point in the history
…name-setting

[BE-FEAT] 1차 배포 대비 수정사항 반영
  • Loading branch information
unifolio0 authored Jul 24, 2024
2 parents cb8fc1f + 09b47f5 commit 66ee121
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public PokemonAbility getPokemonAbility(AbilityResponse abilityResponse) {
String koName = getKoName(abilityResponse.names());

List<FlavorTextEntry> flavorTextEntries = abilityResponse.flavor_text_entries();
String description = getLatestVersionDescription(flavorTextEntries);
String description = getLatestVersionDescription(flavorTextEntries).replace("\n", " ");

return new PokemonAbility(abilityResponse.name(), koName, description, "자세한 설명입니다.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,67 +104,68 @@ private List<PokemonType> getPokemonTypes(List<TypeResponse> typeResponses) {

private void saveAllPokemonTypeMatching(DataUrls typeDataUrls) {
for (DataUrl dataUrl : typeDataUrls.results()) {
String fromTypeKoName = pokemonTypeRepository.findByName(dataUrl.name()).orElseThrow().getKoName();
PokemonType pokemonType = pokemonTypeRepository.findByName(dataUrl.name()).orElseThrow();
String fromTypeName = pokemonType.getName();
TypeMatchingResponse typeMatchingResponse = pokeClient.getTypeMatchingResponse(dataUrl.getUrlId());

savePokemonTypeMatching(typeMatchingResponse, fromTypeKoName);
savePokemonTypeMatching(typeMatchingResponse, fromTypeName);
}
}

private void savePokemonTypeMatching(TypeMatchingResponse typeMatchingResponse, String fromTypeKoName) {
private void savePokemonTypeMatching(TypeMatchingResponse typeMatchingResponse, String fromTypeName) {
List<String> allTypeNames = getAllTypeNames();

saveDoubleDamageTypeMatching(typeMatchingResponse, fromTypeKoName, allTypeNames);
saveHalfDamageTypeMatching(typeMatchingResponse, fromTypeKoName, allTypeNames);
saveNoDamageTypeMatching(typeMatchingResponse, fromTypeKoName, allTypeNames);
saveBasicDamageTypeMatching(fromTypeKoName, allTypeNames);
saveDoubleDamageTypeMatching(typeMatchingResponse, fromTypeName, allTypeNames);
saveHalfDamageTypeMatching(typeMatchingResponse, fromTypeName, allTypeNames);
saveNoDamageTypeMatching(typeMatchingResponse, fromTypeName, allTypeNames);
saveBasicDamageTypeMatching(fromTypeName, allTypeNames);
}

private List<String> getAllTypeNames() {
return pokemonTypeRepository.findAll().stream()
.map(PokemonType::getKoName)
.map(PokemonType::getName)
.collect(Collectors.toList());
}

private void saveDoubleDamageTypeMatching(TypeMatchingResponse typeMatchingResponse, String fromTypeKoName, List<String> allTypeNames) {
private void saveDoubleDamageTypeMatching(TypeMatchingResponse typeMatchingResponse, String fromTypeName, List<String> allTypeNames) {
for (DataUrl type : typeMatchingResponse.getDoubleDamageTo()) {
PokemonType pokemonType = pokemonTypeRepository.findByName(type.name())
.orElseThrow(() -> new GlobalCustomException(ErrorMessage.POKEMON_TYPE_NOT_FOUND));
String toTypeKoName = pokemonType.getKoName();
PokemonTypeMatching pokemonTypeMatching = new PokemonTypeMatching(fromTypeKoName, toTypeKoName, DOUBLE_DAMAGE);
String toTypeName = pokemonType.getName();
PokemonTypeMatching pokemonTypeMatching = new PokemonTypeMatching(fromTypeName, toTypeName, DOUBLE_DAMAGE);

pokemonTypeMatchingRepository.save(pokemonTypeMatching);
allTypeNames.remove(toTypeKoName);
allTypeNames.remove(toTypeName);
}
}

private void saveHalfDamageTypeMatching(TypeMatchingResponse typeMatchingResponse, String fromTypeKoName, List<String> allTypeNames) {
private void saveHalfDamageTypeMatching(TypeMatchingResponse typeMatchingResponse, String fromTypeName, List<String> allTypeNames) {
for (DataUrl type : typeMatchingResponse.getHalfDamageTo()) {
PokemonType pokemonType = pokemonTypeRepository.findByName(type.name())
.orElseThrow(() -> new GlobalCustomException(ErrorMessage.POKEMON_TYPE_NOT_FOUND));
String toTypeKoName = pokemonType.getKoName();
PokemonTypeMatching pokemonTypeMatching = new PokemonTypeMatching(fromTypeKoName, toTypeKoName, HALF_DAMAGE);
String toTypeName = pokemonType.getName();
PokemonTypeMatching pokemonTypeMatching = new PokemonTypeMatching(fromTypeName, toTypeName, HALF_DAMAGE);

pokemonTypeMatchingRepository.save(pokemonTypeMatching);
allTypeNames.remove(toTypeKoName);
allTypeNames.remove(toTypeName);
}
}

private void saveNoDamageTypeMatching(TypeMatchingResponse typeMatchingResponse, String fromTypeKoName, List<String> allTypeNames) {
private void saveNoDamageTypeMatching(TypeMatchingResponse typeMatchingResponse, String fromTypeName, List<String> allTypeNames) {
for (DataUrl type : typeMatchingResponse.getNoDamageTo()) {
PokemonType pokemonType = pokemonTypeRepository.findByName(type.name())
.orElseThrow(() -> new GlobalCustomException(ErrorMessage.POKEMON_TYPE_NOT_FOUND));
String toTypeKoName = pokemonType.getKoName();
PokemonTypeMatching pokemonTypeMatching = new PokemonTypeMatching(fromTypeKoName, toTypeKoName, NO_DAMAGE);
String toTypeName = pokemonType.getName();
PokemonTypeMatching pokemonTypeMatching = new PokemonTypeMatching(fromTypeName, toTypeName, NO_DAMAGE);

pokemonTypeMatchingRepository.save(pokemonTypeMatching);
allTypeNames.remove(toTypeKoName);
allTypeNames.remove(toTypeName);
}
}

private void saveBasicDamageTypeMatching(String fromTypeKoName, List<String> allTypeNames) {
for (String toTypeKoName : allTypeNames) {
PokemonTypeMatching pokemonTypeMatching = new PokemonTypeMatching(fromTypeKoName, toTypeKoName, BASIC_DAMAGE);
private void saveBasicDamageTypeMatching(String fromTypeName, List<String> allTypeNames) {
for (String toTypeName : allTypeNames) {
PokemonTypeMatching pokemonTypeMatching = new PokemonTypeMatching(fromTypeName, toTypeName, BASIC_DAMAGE);

pokemonTypeMatchingRepository.save(pokemonTypeMatching);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
public record PokemonTypeResponse(String pokemonTypeName, String pokemonTypeLogo) {

public static PokemonTypeResponse from(PokemonType pokemonType) {
return new PokemonTypeResponse(pokemonType.getKoName(), pokemonType.getImage());
return new PokemonTypeResponse(pokemonType.getName(), pokemonType.getImage());
}
}

0 comments on commit 66ee121

Please sign in to comment.