cake-erp-challenge/app/routes/routes.py

40 lines
1.2 KiB
Python
Raw Normal View History

2021-10-14 15:02:23 -04:00
from flask import request, jsonify
from app import app
from app.database import db
@app.route('/trainer', methods=['GET'])
def route_get_trainers():
args = request.args
try:
2021-10-14 15:31:56 -04:00
limit = int(args.get("limit", -1))
2021-10-14 15:02:23 -04:00
offset = int(args.get("offset", 0))
except ValueError:
return {
"code": 1,
"type": "Integer parsing error",
"message": "Couldn't parse parameter as integer"
}, 500
2021-10-14 15:31:56 -04:00
if limit < -1 or offset < 0:
2021-10-14 15:02:23 -04:00
return {
"code": 2,
"type": "Integer parsing error",
"message": "Expected positive integer as parameter"
}, 500
nickname = args.get("nickname", "")
nickname_contains = args.get("nickname_contains", "")
if nickname and nickname_contains:
return {
"code": 3,
"type": "Invalid parameter",
"message": "Parameters \"nickname\" and \"nickname_contains\" are mutually exclusive"
}, 500
if nickname:
2021-10-14 15:31:56 -04:00
return jsonify(db.get_trainer_by_nickname(nickname, limit, offset))
2021-10-14 15:02:23 -04:00
else:
2021-10-14 15:31:56 -04:00
return jsonify(db.get_trainers_by_nickname_contains(nickname_contains, limit, offset))