Skip to content

Commit fa475ba

Browse files
authored
add tag to resources & models, upd schemas
1 parent 1152dc3 commit fa475ba

File tree

7 files changed

+26
-7
lines changed

7 files changed

+26
-7
lines changed

app.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import os
2-
import models
32
from db import db
43
from flask import Flask
54
from flask_smorest import Api
65
from resources.item import blp as ItemBlueprint
76
from resources.store import blp as StoreBlueprint
7+
from resources.tag import blp as TagBlueprint
88

99

1010
def create_app(db_url=None):
@@ -28,7 +28,6 @@ def create_app(db_url=None):
2828
app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db")
2929
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
3030
db.init_app(app)
31-
3231
api = Api(app)
3332

3433
@app.before_request
@@ -43,5 +42,6 @@ def create_tables():
4342

4443
api.register_blueprint(ItemBlueprint)
4544
api.register_blueprint(StoreBlueprint)
45+
api.register_blueprint(TagBlueprint)
4646

47-
return app
47+
return app

models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
from models.store import StoreModel
22
from models.item import ItemModel
3+
from models.tag import TagModel

models/store.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ class StoreModel(db.Model):
1111
id = db.Column(db.Integer, primary_key=True)
1212
name = db.Column(db.String(80), unique=True, nullable=False)
1313
items = db.relationship("ItemModel", back_populates="store", lazy="dynamic", cascade="all, delete")
14+
tags = db.relationship("TagModel", back_populates="store", lazy="dynamic")

models/tag.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from db import db
2+
3+
4+
class TagModel(db.Model):
5+
6+
__tablename__ = "tags"
7+
8+
id = db.Column(db.Integer, primary_key=True)
9+
name = db.Column(db.String(80), unique=True, nullable=False)
10+
store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False)
11+
12+
13+
items = db.relationship("StoreModel", back_populates="tags")

resources/store.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ class Store(MethodView):
1717
@blp.response(200, StoreSchema)
1818
def get(self, store_id):
1919
"""Метод для получения информации о магазине по его ID"""
20-
store = StoreModel.get_or_404(self, store_id)
20+
store = StoreModel.query.get_or_404(self, store_id)
2121
return store
2222

2323
def delete(self, store_id):
2424
"""Метод для удаления магазина по его ID"""
2525
store = StoreModel.query.get_or_404(store_id)
2626
db.session.delete(store)
2727
db.session.commit()
28-
return {"message": "Store deleted"}
28+
return {"message": "Store deleted"}, 200
2929

3030

3131
# Создаем endpoint для получения списка магазинов и добавления нового магазина

resources/tag.py

Whitespace-only changes.

schemas.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,20 @@
1313

1414
class PlainItemSchema(Schema):
1515
"""Схема для создания элемента"""
16-
id = fields.Str(dump_only=True)
16+
id = fields.Int(dump_only=True)
1717
name = fields.Str(required=True)
1818
price = fields.Float(required=True)
1919

2020

2121
class PlainStoreSchema(Schema):
2222
"""Схема для магазина"""
23-
id = fields.Str(dump_only=True)
23+
id = fields.Int(dump_only=True)
2424
name = fields.Str(required=True)
2525

26+
class PlainTagSchema(Schema):
27+
id = fields.Int(dump_only=True)
28+
name = fields.Str()
29+
2630

2731
class ItemUpdateSchema(Schema):
2832
"""Схема для обновления элемента"""

0 commit comments

Comments
 (0)