1+ import re
12from enum import Enum
23from inspect import Parameter
34from typing import Any , List , Optional
45
56from flask import g
67from lin import BaseModel
78from lin .exception import ParameterError
8- from pydantic import Field
9+ from pydantic import Field , validator
910
1011datetime_regex = "^((([1-9][0-9][0-9][0-9]-(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|(20[0-3][0-9]-(0[2469]|11)-(0[1-9]|[12][0-9]|30))) (20|21|22|23|[0-1][0-9]):[0-5][0-9]:[0-5][0-9])$"
1112
@@ -25,15 +26,17 @@ class NameListSchema(BaseModel):
2526class LogQuerySearchSchema (BaseModel ):
2627 keyword : Optional [str ] = None
2728 name : Optional [str ] = None
28- start : Optional [str ] = Field (
29- None , regex = datetime_regex , description = "YY-MM-DD HH:MM:SS"
30- )
31- end : Optional [str ] = Field (
32- None , regex = datetime_regex , description = "YY-MM-DD HH:MM:SS"
33- )
29+ start : Optional [str ] = Field (None , description = "YY-MM-DD HH:MM:SS" )
30+ end : Optional [str ] = Field (None , description = "YY-MM-DD HH:MM:SS" )
3431 count : int = Field (5 , gt = 0 , lt = 16 , description = "0 < count < 16" )
3532 page : int = 0
3633
34+ @validator ("start" , "end" )
35+ def datetime_match (cls , v , values , ** kwargs ):
36+ if re .match (datetime_regex , v ):
37+ return v
38+ raise ValueError ("时间格式有误" )
39+
3740 @staticmethod
3841 def offset_handler (req , resp , req_validation_error , instance ):
3942 g .offset = req .context .query .count * req .context .query .page
0 commit comments