Newer
Older
from app.apis import check_jwt, item_response, list_response
from app.database.models import City, Competition, ComponentType, MediaType, QuestionType, Role, User, ViewType
from flask_jwt_extended import jwt_required
question_type_schema = MiscDTO.question_type_schema
media_type_schema = MiscDTO.media_type_schema
component_type_schema = MiscDTO.component_type_schema
view_type_schema = MiscDTO.view_type_schema
role_schema = MiscDTO.role_schema
city_schema = MiscDTO.city_schema
name_parser = reqparse.RequestParser()
name_parser.add_argument("name", type=str, required=True, location="json")
@api.route("/types")
class TypesList(Resource):
result = {}
result["media_types"] = media_type_schema.dump(dbc.get.all(MediaType))
result["component_types"] = component_type_schema.dump(dbc.get.all(ComponentType))
result["question_types"] = question_type_schema.dump(dbc.get.all(QuestionType))
result["view_types"] = view_type_schema.dump(dbc.get.all(ViewType))
return result
@api.route("/roles")
class RoleList(Resource):
return list_response(role_schema.dump(items))
return list_response(city_schema.dump(items))
def post(self):
args = name_parser.parse_args(strict=True)
return list_response(city_schema.dump(items))
@api.route("/cities/<ID>")
@api.param("ID")
class Cities(Resource):
args = name_parser.parse_args(strict=True)
item.name = args["name"]
dbc.utils.commit_and_refresh(item)
items = dbc.get.all(City)
return list_response(city_schema.dump(items))
return list_response(city_schema.dump(items))
@api.route("/statistics")
class Statistics(Resource):
@check_jwt(editor=True)
def get(self):
user_count = User.query.count()
competition_count = Competition.query.count()
region_count = City.query.count()
return {"users": user_count, "competitions": competition_count, "regions": region_count}, http_codes.OK