fix: add pokemon-form schema_field definitions

This commit is contained in:
indyandie 2024-03-03 14:37:49 -06:00
parent ef97bc6a45
commit 3bb60381f0
No known key found for this signature in database
GPG key ID: FDB83C1AED3933E1
2 changed files with 194 additions and 11 deletions

View file

@ -6969,21 +6969,102 @@ components:
$ref: '#/components/schemas/PokemonSummary'
sprites:
type: object
additionalProperties: {}
properties:
default:
type: string
format: uri
example: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/412.png
additionalProperties:
type: string
format: uri
nullable: true
example: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/412.png
example:
back_default: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/412.png
back_female: null
back_shiny: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/412.png
back_shiny_female: null
front_default: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/412.png
front_female: null
front_shiny: https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/412.png
front_shiny_female: null
readOnly: true
version_group:
$ref: '#/components/schemas/VersionGroupSummary'
form_names:
type: object
additionalProperties: {}
type: array
items:
type: object
required:
- language
- name
properties:
language:
type: object
required:
- name
- url
properties:
name:
type: string
example: en
url:
type: string
format: uri
example: https://pokeapi.co/api/v2/language/9/
name:
type: string
example: Plant Cloak
readOnly: true
names:
type: object
additionalProperties: {}
type: array
items:
type: object
required:
- language
- name
properties:
language:
type: object
required:
- name
- url
properties:
name:
type: string
example: en
url:
type: string
format: uri
example: https://pokeapi.co/api/v2/language/9/
name:
type: string
example: Plant Cloak
readOnly: true
types:
type: object
additionalProperties: {}
type: array
items:
type: object
required:
- slot
- type
properties:
slot:
type: number
example: 1
type:
type: object
required:
- name
- url
properties:
name:
type: string
example: bug
url:
type: string
format: uri
example: https://pokeapi.co/api/v2/type/7/
readOnly: true
required:
- form_name

View file

@ -3728,7 +3728,33 @@ class PokemonFormDetailSerializer(serializers.ModelSerializer):
"types",
)
@extend_schema_field(OpenApiTypes.OBJECT)
@extend_schema_field(field={'type': 'array',
'items': {
'type': 'object',
'required': [ 'language', 'name' ],
'properties': {
'language': {
'type': 'object',
'required': [ 'name', 'url' ],
'properties': {
'name': {
'type': 'string',
'example': 'en'
},
'url': {
'type': 'string',
'format': 'uri',
'example': 'https://pokeapi.co/api/v2/language/9/'
}
}
},
'name': {
'type': 'string',
'example': 'Plant Cloak'
}
}
}
})
def get_pokemon_form_names(self, obj):
form_results = PokemonFormName.objects.filter(
pokemon_form=obj, name__regex=".+"
@ -3744,7 +3770,33 @@ class PokemonFormDetailSerializer(serializers.ModelSerializer):
return data
@extend_schema_field(OpenApiTypes.OBJECT)
@extend_schema_field(field={'type': 'array',
'items': {
'type': 'object',
'required': [ 'language', 'name' ],
'properties': {
'language': {
'type': 'object',
'required': [ 'name', 'url' ],
'properties': {
'name': {
'type': 'string',
'example': 'en'
},
'url': {
'type': 'string',
'format': 'uri',
'example': 'https://pokeapi.co/api/v2/language/9/'
}
}
},
'name': {
'type': 'string',
'example': 'Plant Cloak'
}
}
}
})
def get_pokemon_form_pokemon_names(self, obj):
form_results = PokemonFormName.objects.filter(
pokemon_form=obj, pokemon_name__regex=".+"
@ -3761,12 +3813,62 @@ class PokemonFormDetailSerializer(serializers.ModelSerializer):
return data
@extend_schema_field(OpenApiTypes.OBJECT)
@extend_schema_field(field={'type': 'object',
'properties': {
'default': {
'type': 'string',
'format': 'uri',
'example': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/412.png',
}
},
'additionalProperties': { # Stoplight Elements doesn't render this well
'type': 'string',
'format': 'uri',
'nullable': True,
'example': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/412.png'
},
'example': {
'back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/412.png',
'back_female': None,
'back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/412.png',
'back_shiny_female': None,
'front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/412.png',
'front_female': None,
'front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/412.png',
'front_shiny_female': None
}
})
def get_pokemon_form_sprites(self, obj):
sprites_object = PokemonFormSprites.objects.get(pokemon_form_id=obj)
return sprites_object.sprites
@extend_schema_field(OpenApiTypes.OBJECT)
@extend_schema_field(field={'type': 'array',
'items': {
'type': 'object',
'required': [ 'slot', 'type' ],
'properties': {
'slot': {
'type': 'number',
'example': 1
},
'type': {
'type': 'object',
'required': [ 'name', 'url' ],
'properties': {
'name': {
'type': 'string',
'example': 'bug'
},
'url': {
'type': 'string',
'format': 'uri',
'example': 'https://pokeapi.co/api/v2/type/7/'
}
}
},
}
}
})
def get_pokemon_form_types(self, obj):
form_type_objects = PokemonFormType.objects.filter(pokemon_form=obj)
form_types = PokemonFormTypeSerializer(