backend + telegram: добавлено создание персонажа

This commit is contained in:
2022-11-19 01:31:35 +03:00
parent 2bc6931525
commit 194b5aaff1
11 changed files with 291 additions and 51 deletions

View File

@@ -18,17 +18,6 @@ class ItemAPI(MethodView):
item = self._get_item(id)
return item.to_dict()
def patch(self, id):
item = self._get_item(id)
errors = self.validator.validate(item, request.json)
if errors:
return jsonify(errors), 400
item.update_from_json(request.json)
db.session.commit()
return item.to_dict()
def delete(self, id):
item = self._get_item(id)
db.session.delete(item)
@@ -51,12 +40,15 @@ class ListAPI(MethodView):
def post(self):
item = self._get_item(request.json["id"])
data = request.json
if item:
return "Already exists!", 400
if data.get("id"):
item = self._get_item(data["id"])
db.session.add(self.model(**request.json))
if item:
return "Already exists!", 400
db.session.add(self.model(**data))
db.session.commit()
return "", 200

View File

@@ -11,6 +11,6 @@ main = Blueprint("main", __name__)
register_api(main, User, "users")
register_api(main, CharacterRace, "charachter-races")
register_api(main, CharacterClass, "charachter-classes")
register_api(main, Character, "character")
register_api(main, CharacterRace, "character_races")
register_api(main, CharacterClass, "character_classes")
register_api(main, Character, "characters")

View File

@@ -11,6 +11,8 @@ class User(db.Model, SerializerMixin):
__tablename__ = "users"
serialize_rules = ("-characters",)
id = db.Column(db.Integer, primary_key=True, autoincrement=False)
first_name = db.Column(db.String(255), nullable=True)
last_name = db.Column(db.String(255), nullable=True)
@@ -19,7 +21,7 @@ class User(db.Model, SerializerMixin):
db.DateTime, nullable=False, default=datetime.datetime.now()
)
is_admin = db.Column(db.Boolean, nullable=False, default=False)
character = db.relationship("Character", backref="user", lazy="dynamic")
characters = db.relationship("Character", backref="user", lazy="dynamic")
def __str__(self):
return f"{self.id}: {self.username}"
@@ -29,9 +31,11 @@ class CharacterRace(db.Model, SerializerMixin):
__tablename__ = "character_races"
serialize_rules = ("-characters",)
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255), nullable=True)
character = db.relationship("Character", backref="race", lazy="dynamic")
name = db.Column(db.String(255), nullable=True, unique=True)
characters = db.relationship("Character", backref="race", lazy="dynamic")
def __str__(self):
return self.name
@@ -41,9 +45,11 @@ class CharacterClass(db.Model, SerializerMixin):
__tablename__ = "character_classes"
serialize_rules = ("-characters",)
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255), nullable=True)
character = db.relationship("Character", backref="class", lazy="dynamic")
name = db.Column(db.String(255), nullable=True, unique=True)
characters = db.relationship("Character", backref="class", lazy="dynamic")
def __str__(self):
return self.name
@@ -59,7 +65,7 @@ class Character(db.Model, SerializerMixin):
db.ForeignKey("users.id"),
nullable=True,
)
name = db.Column(db.String(255), nullable=False)
name = db.Column(db.String(255), nullable=False, unique=True)
character_race = db.Column(
db.Integer,
db.ForeignKey("character_races.id"),