This commit is contained in:
2021-01-14 17:29:17 +01:00
parent 6aec708c84
commit 521e916bbd
2 changed files with 42 additions and 7 deletions

View File

@ -12,12 +12,11 @@ HEROES = [
def get_hero(id=None): def get_hero(id=None):
if id: try:
try: hero = next(x for x in HEROES if x["id"] == id)
hero = next(x for x in HEROES if x["id"] == id) return { "id": hero["id"], "name": hero["name"] }
return { "id": hero["id"], "name": hero["name"] } except StopIteration:
except StopIteration: return 'Hero not found', 404
return 'Hero not found', 404
def get_heroes(): def get_heroes():
@ -25,5 +24,19 @@ def get_heroes():
return HEROES return HEROES
else: else:
return 'No heroes available', 404 return 'No heroes available', 404
def put_hero(id=None, hero=None):
if id:
# update
try:
heroToUpdate = next(x for x in HEROES if x["id"] == id)
heroToUpdate["name"] = hero["name"]
return 'Hero updated', 200
except StopIteration:
return 'Hero not found', 404
else:
# insert
newHeroId = len(HEROES)
hero["id"] = newHeroId
HEROES.append(hero)
return 'Hero inserted', 201

View File

@ -37,6 +37,28 @@ paths:
$ref: '#/definitions/Hero' $ref: '#/definitions/Hero'
404: 404:
description: Hero not found description: Hero not found
put:
operationId: heroes.put_hero
summary: Insert or update a hero
parameters:
- name: id
in: query
type: integer
required: false
- name: hero
in: body
required: true
schema:
$ref: '#/definitions/Hero'
responses:
200:
description: Hero updated
201:
description: New hero created
403:
description: Some error
404:
description: Hero not found
/heroes: /heroes:
get: get:
operationId: heroes.get_heroes operationId: heroes.get_heroes