fix type of User.member
This commit is contained in:
parent
a09f40fa35
commit
da87b4e273
2 changed files with 18 additions and 5 deletions
|
@ -5,7 +5,7 @@ from quart_schema import QuartSchema, RequestSchemaValidationError
|
||||||
from .blueprints import members_blueprint, users_blueprint
|
from .blueprints import members_blueprint, users_blueprint
|
||||||
from .db.aio import async_session
|
from .db.aio import async_session
|
||||||
from .db.util import validate_token
|
from .db.util import validate_token
|
||||||
from .exceptions import ExpectedError
|
from .exceptions import ExpectedError, ErrorCode
|
||||||
|
|
||||||
app = Quart(__name__)
|
app = Quart(__name__)
|
||||||
app = cors(
|
app = cors(
|
||||||
|
@ -23,8 +23,8 @@ for bp in (users_blueprint, members_blueprint):
|
||||||
|
|
||||||
@app.errorhandler(RequestSchemaValidationError)
|
@app.errorhandler(RequestSchemaValidationError)
|
||||||
async def handle_request_validation_error(error: RequestSchemaValidationError):
|
async def handle_request_validation_error(error: RequestSchemaValidationError):
|
||||||
print(error.validation_error)
|
# TODO: parse the error and return a format closer to the draft APIv2
|
||||||
return {"error": "VALIDATION"}, 400
|
return {"code": ErrorCode.BadRequest, "message": "Bad request"}, 400
|
||||||
|
|
||||||
|
|
||||||
@app.errorhandler(ExpectedError)
|
@app.errorhandler(ExpectedError)
|
||||||
|
@ -32,6 +32,16 @@ async def handle_expected_error(error: ExpectedError):
|
||||||
return {"code": error.type, "message": error.msg}, error.status_code
|
return {"code": error.type, "message": error.msg}, error.status_code
|
||||||
|
|
||||||
|
|
||||||
|
@app.errorhandler(404)
|
||||||
|
async def handle_404(_):
|
||||||
|
return {"code": 404, "message": "Not found"}, 404
|
||||||
|
|
||||||
|
|
||||||
|
@app.errorhandler(500)
|
||||||
|
async def handle_500(_):
|
||||||
|
return {"code": 500, "message": "Internal server error"}, 500
|
||||||
|
|
||||||
|
|
||||||
@app.before_request
|
@app.before_request
|
||||||
async def get_user_from_token():
|
async def get_user_from_token():
|
||||||
"""Get the current user from a token given in the `Authorization` header or the `pronounscc-token` cookie.
|
"""Get the current user from a token given in the `Authorization` header or the `pronounscc-token` cookie.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import enum
|
import enum
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any
|
from typing import Any, TYPE_CHECKING
|
||||||
|
|
||||||
from sqlalchemy import BigInteger, DateTime, ForeignKey, Integer, Text
|
from sqlalchemy import BigInteger, DateTime, ForeignKey, Integer, Text
|
||||||
from sqlalchemy.dialects.postgresql import ARRAY, JSONB
|
from sqlalchemy.dialects.postgresql import ARRAY, JSONB
|
||||||
|
@ -9,6 +9,9 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
from .base import Base
|
from .base import Base
|
||||||
from .snowflake import Snowflake
|
from .snowflake import Snowflake
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from .member import Member
|
||||||
|
|
||||||
|
|
||||||
class User(Base):
|
class User(Base):
|
||||||
__tablename__ = "users"
|
__tablename__ = "users"
|
||||||
|
@ -30,7 +33,7 @@ class User(Base):
|
||||||
auth_methods: Mapped[list["AuthMethod"]] = relationship(
|
auth_methods: Mapped[list["AuthMethod"]] = relationship(
|
||||||
back_populates="user", cascade="all, delete-orphan"
|
back_populates="user", cascade="all, delete-orphan"
|
||||||
)
|
)
|
||||||
members: Mapped[list["Member"]] = relationship( # noqa: F821
|
members: Mapped[list["Member"]] = relationship(
|
||||||
back_populates="user", cascade="all, delete-orphan"
|
back_populates="user", cascade="all, delete-orphan"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue