Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion backend/app/database/db_mysql.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
# -*- coding: utf-8 -*-
import sys

from typing import Annotated
from uuid import uuid4

from fastapi import Depends
from sqlalchemy import URL
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
from typing_extensions import Annotated

from backend.app.common.log import log
from backend.app.core.conf import settings
Expand Down
2 changes: 1 addition & 1 deletion backend/app/models/base.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from datetime import datetime
from typing import Annotated

from sqlalchemy.orm import DeclarativeBase, Mapped, MappedAsDataclass, declared_attr, mapped_column
from typing_extensions import Annotated

from backend.app.utils.timezone import timezone

Expand Down
9 changes: 1 addition & 8 deletions backend/app/schemas/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
from datetime import datetime

from pydantic import ConfigDict, Field, field_validator
from pydantic import ConfigDict, Field

from backend.app.common.enums import MethodType
from backend.app.schemas.base import SchemaBase
Expand All @@ -14,13 +14,6 @@ class ApiSchemaBase(SchemaBase):
path: str = Field(..., description='api路径')
remark: str | None = None

@field_validator('method')
@classmethod
def method_validator(cls, v):
if not v.isupper():
raise ValueError('请求方式必须大写')
return v


class CreateApiParam(ApiSchemaBase):
pass
Expand Down
9 changes: 8 additions & 1 deletion backend/app/schemas/base.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from pydantic import BaseModel, ConfigDict

from pydantic import BaseModel, ConfigDict, EmailStr, validate_email
from pydantic_extra_types.phone_numbers import PhoneNumber

# 自定义验证错误信息不包含验证预期内容(也就是输入内容),受支持的预期内容字段参考以下链接
Expand Down Expand Up @@ -142,5 +143,11 @@ class CustomPhoneNumber(PhoneNumber):
default_region_code = 'CN'


class CustomEmailStr(EmailStr):
@classmethod
def _validate(cls, __input_value: str) -> str:
return None if __input_value == '' else validate_email(__input_value)[1]


class SchemaBase(BaseModel):
model_config = ConfigDict(use_enum_values=True)
9 changes: 1 addition & 8 deletions backend/app/schemas/casbin_rule.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from pydantic import ConfigDict, Field, field_validator
from pydantic import ConfigDict, Field

from backend.app.common.enums import MethodType
from backend.app.schemas.base import SchemaBase
Expand All @@ -11,13 +11,6 @@ class CreatePolicyParam(SchemaBase):
path: str = Field(..., description='api 路径')
method: MethodType = Field(default=MethodType.GET, description='请求方法')

@field_validator('method')
@classmethod
def method_validator(cls, v):
if not v.isupper():
raise ValueError('请求方式必须大写')
return v


class UpdatePolicyParam(CreatePolicyParam):
pass
Expand Down
6 changes: 3 additions & 3 deletions backend/app/schemas/dept.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
# -*- coding: utf-8 -*-
from datetime import datetime

from pydantic import ConfigDict, EmailStr, Field
from pydantic import ConfigDict, Field

from backend.app.common.enums import StatusType
from backend.app.schemas.base import CustomPhoneNumber, SchemaBase
from backend.app.schemas.base import CustomEmailStr, CustomPhoneNumber, SchemaBase


class DeptSchemaBase(SchemaBase):
Expand All @@ -14,7 +14,7 @@ class DeptSchemaBase(SchemaBase):
sort: int = Field(default=0, ge=0, description='排序')
leader: str | None = None
phone: CustomPhoneNumber | None = None
email: EmailStr | None = None
email: CustomEmailStr | None = None
status: StatusType = Field(default=StatusType.enable)


Expand Down