update api_server and its tests

This commit is contained in:
debugtalk
2017-06-19 16:19:17 +08:00
parent 5ebad33759
commit b775e8c217
2 changed files with 170 additions and 65 deletions

View File

@@ -8,12 +8,10 @@ app = Flask(__name__)
data structure:
users_dict = {
'uid1': {
'uid': 'uid1',
'name': 'name1',
'password': 'pwd1'
},
'uid2': {
'uid': 'uid2',
'name': 'name2',
'password': 'pwd2'
}
@@ -21,28 +19,102 @@ data structure:
"""
users_dict = {}
@app.route('/api/user/clear')
def clear_users():
users_dict.clear()
return "ok"
@app.route('/api/user/add', methods=['POST'])
def add_user():
user = request.get_json()
users_dict[user["uid"]] = user
return "ok"
@app.route('/api/user/<int:uid>')
def get_user(uid):
user = users_dict.get(uid, {})
response = make_response(json.dumps(user))
@app.route('/api/users')
def get_users():
users_list = [user for uid, user in users_dict.items()]
users = {
'success': True,
'count': len(users_list),
'items': users_list
}
response = make_response(json.dumps(users))
response.headers["Content-Type"] = "application/json"
return response
@app.route('/api/user/<int:uid>', methods=['DELETE'])
def delete_user(uid):
user = users_dict.pop(uid, None)
if user:
return "ok"
@app.route('/api/users', methods=['DELETE'])
def clear_users():
users_dict.clear()
result = {
'success': True
}
response = make_response(json.dumps(result))
response.headers["Content-Type"] = "application/json"
return response
@app.route('/api/users/<int:uid>', methods=['POST'])
def create_user(uid):
user = request.get_json()
if uid not in users_dict:
result = {
'success': True,
'msg': "user created successfully."
}
status_code = 201
users_dict[uid] = user
else:
return "not_existed"
result = {
'success': False,
'msg': "user already existed."
}
status_code = 500
response = make_response(json.dumps(result), status_code)
response.headers["Content-Type"] = "application/json"
return response
@app.route('/api/users/<int:uid>')
def get_user(uid):
user = users_dict.get(uid, {})
if user:
result = {
'success': True,
'data': user
}
status_code = 200
else:
result = {
'success': False,
'data': user
}
status_code = 404
response = make_response(json.dumps(result), status_code)
response.headers["Content-Type"] = "application/json"
return response
@app.route('/api/users/<int:uid>', methods=['PUT'])
def update_user(uid):
user = users_dict.get(uid, {})
if user:
user = request.get_json()
success = True
status_code = 200
else:
success = False
status_code = 404
result = {
'success': success,
'data': user
}
response = make_response(json.dumps(result), status_code)
response.headers["Content-Type"] = "application/json"
return response
@app.route('/api/users/<int:uid>', methods=['DELETE'])
def delete_user(uid):
user = users_dict.pop(uid, {})
if user:
success = True
status_code = 200
else:
success = False
status_code = 404
result = {
'success': success,
'data': user
}
response = make_response(json.dumps(result), status_code)
response.headers["Content-Type"] = "application/json"
return response