MCPcopy Create free account
hub / github.com/PokeAPI/pokeapi / BerryFlavorDetailSerializer

Class BerryFlavorDetailSerializer

pokemon_v2/serializers.py:2127–2178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2125
2126
2127class BerryFlavorDetailSerializer(serializers.ModelSerializer):
2128 names = BerryFlavorNameSerializer(
2129 many=True, read_only=True, source="berryflavorname"
2130 )
2131 contest_type = ContestTypeSummarySerializer()
2132 berries = serializers.SerializerMethodField("get_berries_with_flavor")
2133
2134 class Meta:
2135 model = BerryFlavor
2136 fields = ("id", "name", "berries", "contest_type", "names")
2137
2138 @extend_schema_field(
2139 field={
2140 "type": "array",
2141 "items": {
2142 "type": "object",
2143 "required": ["potency", "berry"],
2144 "properties": {
2145 "potency": {"type": "integer", "examples": [10]},
2146 "berry": {
2147 "type": "object",
2148 "require": ["name", "url"],
2149 "properties": {
2150 "name": {
2151 "type": "string",
2152 "description": "The name of the berry",
2153 "examples": ["rowap"],
2154 },
2155 "url": {
2156 "type": "string",
2157 "format": "uri",
2158 "description": "The URL to get more information about the berry",
2159 "examples": ["https://pokeapi.co/api/v2/berry/64/"],
2160 },
2161 },
2162 },
2163 },
2164 },
2165 }
2166 )
2167 def get_berries_with_flavor(self, obj):
2168 flavor_map_objects = BerryFlavorMap.objects.filter(
2169 berry_flavor=obj, potency__gt=0
2170 ).order_by("potency")
2171 flavor_maps = BerryFlavorMapSerializer(
2172 flavor_map_objects, many=True, context=self.context
2173 ).data
2174
2175 for map in flavor_maps:
2176 del map["flavor"]
2177
2178 return flavor_maps
2179
2180
2181class BerryDetailSerializer(serializers.ModelSerializer):

Callers

nothing calls this directly

Tested by

no test coverage detected