diff --git a/server/app/apis/misc.py b/server/app/apis/misc.py index d88c6ae31fc52eb23ddd9e8287d6ae4da8a016db..d44c26ee9cebd836bba90ea65bdae72917124c9d 100644 --- a/server/app/apis/misc.py +++ b/server/app/apis/misc.py @@ -1,7 +1,8 @@ +import app.core.controller as dbc from app.core.dto import MiscDTO from app.core.models import City, MediaType, QuestionType, Role from flask_jwt_extended import jwt_required -from flask_restx import Resource +from flask_restx import Resource, reqparse api = MiscDTO.api @@ -11,6 +12,10 @@ role_model = MiscDTO.role_model city_model = MiscDTO.city_model +name_parser = reqparse.RequestParser() +name_parser.add_argument("name", type=str, required=True, location="json") + + @api.route("/media_types") class MediaTypeList(Resource): @jwt_required @@ -36,8 +41,35 @@ class RoleList(Resource): @api.route("/cities") -class CityList(Resource): +class CitiesList(Resource): @jwt_required @api.marshal_with(city_model) def get(self): return City.query.all() + + @jwt_required + @api.marshal_with(role_model) + def post(self): + args = name_parser.parse_args(strict=True) + dbc.add.default(City(args["name"])) + return City.query.all() + + +@api.route("/cities/<ID>") +@api.param("ID") +class Cities(Resource): + @jwt_required + @api.marshal_with(city_model) + def put(self, ID): + item = City.query.filter(City.id == ID).first() + args = name_parser.parse_args(strict=True) + item.name = args["name"] + dbc.edit.default(item) + return City.query.all() + + @jwt_required + @api.marshal_with(city_model) + def delete(self, ID): + item = City.query.filter(City.id == ID).first() + dbc.delete.default(item) + return City.query.all() diff --git a/server/app/core/controller/edit.py b/server/app/core/controller/edit.py index bd6255a735b893cf16fba5798a0a8e9db08657c8..77c726a7daf1d5cd8280e2a3919e17af233f96b0 100644 --- a/server/app/core/controller/edit.py +++ b/server/app/core/controller/edit.py @@ -1,7 +1,10 @@ -import math - from app.core import db -from app.core.models import Blacklist, City, Competition, Role, Slide, User + + +def default(item): + db.session.commit() + db.session.refresh(item) + return item def switch_order(item1, item2):