mirror of
https://github.com/Llloooggg/TextSouls.git
synced 2026-03-06 04:26:23 +03:00
backend + telegram: добавлено создание персонажа
This commit is contained in:
44
backend/migrations/versions/02142c549a8c_.py
Normal file
44
backend/migrations/versions/02142c549a8c_.py
Normal file
@@ -0,0 +1,44 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 02142c549a8c
|
||||
Revises: 07950b032eb7
|
||||
Create Date: 2022-11-19 00:29:12.011840
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '02142c549a8c'
|
||||
down_revision = '07950b032eb7'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('character_classes', schema=None) as batch_op:
|
||||
batch_op.create_unique_constraint(None, ['name'])
|
||||
|
||||
with op.batch_alter_table('character_races', schema=None) as batch_op:
|
||||
batch_op.create_unique_constraint(None, ['name'])
|
||||
|
||||
with op.batch_alter_table('characters', schema=None) as batch_op:
|
||||
batch_op.create_unique_constraint(None, ['name'])
|
||||
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('characters', schema=None) as batch_op:
|
||||
batch_op.drop_constraint(None, type_='unique')
|
||||
|
||||
with op.batch_alter_table('character_races', schema=None) as batch_op:
|
||||
batch_op.drop_constraint(None, type_='unique')
|
||||
|
||||
with op.batch_alter_table('character_classes', schema=None) as batch_op:
|
||||
batch_op.drop_constraint(None, type_='unique')
|
||||
|
||||
# ### end Alembic commands ###
|
||||
36
backend/migrations/versions/07950b032eb7_.py
Normal file
36
backend/migrations/versions/07950b032eb7_.py
Normal file
@@ -0,0 +1,36 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 07950b032eb7
|
||||
Revises: 5aef83a8a42f
|
||||
Create Date: 2022-11-18 23:40:33.130706
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import mysql
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '07950b032eb7'
|
||||
down_revision = '5aef83a8a42f'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('characters', schema=None) as batch_op:
|
||||
batch_op.alter_column('owner',
|
||||
existing_type=mysql.INTEGER(),
|
||||
nullable=True)
|
||||
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('characters', schema=None) as batch_op:
|
||||
batch_op.alter_column('owner',
|
||||
existing_type=mysql.INTEGER(),
|
||||
nullable=False)
|
||||
|
||||
# ### end Alembic commands ###
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user