MCPcopy
hub / github.com/PokeAPI/pokeapi / get_method_rates

Method get_method_rates

pokemon_v2/serializers.py:1037–1076  ·  view source on GitHub ↗
(self, obj)

Source from the content-addressed store, hash-verified

1035 }
1036 )
1037 def get_method_rates(self, obj):
1038 # Get encounters related to this area and pull out unique encounter methods
1039 encounter_rates = LocationAreaEncounterRate.objects.filter(
1040 location_area=obj
1041 ).order_by("encounter_method_id")
1042 method_ids = encounter_rates.values("encounter_method_id").distinct()
1043 encounter_rate_list = []
1044
1045 for id in method_ids:
1046 encounter_rate_details = OrderedDict()
1047
1048 # Get each Unique Item by ID
1049 encounter_method_object = EncounterMethod.objects.get(
1050 pk=id["encounter_method_id"]
1051 )
1052 encounter_method_data = EncounterMethodSummarySerializer(
1053 encounter_method_object, context=self.context
1054 ).data
1055 encounter_rate_details["encounter_method"] = encounter_method_data
1056
1057 # Get Versions associated with each unique item
1058 area_encounter_objects = encounter_rates.filter(
1059 encounter_method_id=id["encounter_method_id"]
1060 )
1061 serializer = LocationAreaEncounterRateSerializer(
1062 area_encounter_objects, many=True, context=self.context
1063 )
1064 encounter_rate_details["version_details"] = []
1065
1066 for area_encounter in serializer.data:
1067 version_detail = OrderedDict()
1068
1069 version_detail["rate"] = area_encounter["rate"]
1070 version_detail["version"] = area_encounter["version"]
1071
1072 encounter_rate_details["version_details"].append(version_detail)
1073
1074 encounter_rate_list.append(encounter_rate_details)
1075
1076 return encounter_rate_list
1077
1078 @extend_schema_field(
1079 field={

Callers

nothing calls this directly

Calls 3

getMethod · 0.80

Tested by

no test coverage detected