Skip to content

Commit 4c3d1ab

Browse files
committed
demo
1 parent a18eacf commit 4c3d1ab

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

app.py

+24-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,30 @@ def mirror(name):
5252
return create_response(data)
5353

5454

55-
# TODO: Implement the rest of the API here!
55+
# part 1 and 3
56+
@app.route("/users", methods=["GET"])
57+
def users():
58+
team = request.args.get("team")
59+
if not team:
60+
data = {"users": db.get("users")}
61+
return create_response(data)
62+
users = db.get("users")
63+
team_users = [u for u in users if u["team"] == team]
64+
data = {"users": team_users}
65+
return create_response(data)
66+
67+
68+
# part 4
69+
@app.route("/users", methods=["POST"])
70+
def post_user():
71+
data = request.get_json()
72+
if not data or "name" not in data or "age" not in data or "team" not in data:
73+
return create_response({}, 422, "specify name, age, team of new user")
74+
75+
user_data = {"name": data["name"], "age": data["age"], "team": data["team"]}
76+
data = db.create("users", user_data)
77+
return create_response({"user": data}, 201)
78+
5679

5780
"""
5881
~~~~~~~~~~~~ END API ~~~~~~~~~~~~

test_app.py

+16
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,19 @@ def test_get_user_id(client):
3939
res_user = res.json["result"]["user"]
4040
assert res_user["name"] == "Aria"
4141
assert res_user["age"] == 19
42+
43+
44+
def test_create_user(client):
45+
46+
# Test successful request
47+
body = {"name": "David", "age": 100, "team": "Kiva"}
48+
res = client.post("/users", json=body)
49+
assert res.status_code == 201
50+
res_user = res.json["result"]["user"]
51+
assert res_user["name"] == "David"
52+
53+
# Test bad request
54+
body = {"name": "Lato", "age": 28}
55+
res = client.post("/users", json=body)
56+
assert res.status_code == 422
57+
assert len(res.json["message"]) > 0

0 commit comments

Comments
 (0)