No project description provided
Project description
Business-Validator
ErrorSchema
Use business_validator.ErrorSchema if you don't know which format you're gonna use.
Quick Start
DTO
class CommentDto(BaseModel):
comment: str
post_id: int
owner_id: int
Add error source (error context)
class Source(BaseModel):
local: str
DTO Validator
@dataclasses.dataclass()
class CommentValidator(Validator[ErrorSchema[Source]]):
dto: CommentDto
@validate
async def test1(self):
post_ids = list(range(1, 10))
if self.dto.post_id not in post_ids:
self.context.add_error(
ErrorSchema(
code=ErrorCodeEnum.not_found.value,
message="Id doen't not exists",
detail=f"Post with id={self.dto.post_id} not found",
source=Source(
local="data/post_id",
),
)
)
@validate
async def test2(self):
owner_ids = list(range(1, 10))
if self.dto.owner_id not in owner_ids:
self.context.add_error(
ErrorSchema(
code=ErrorCodeEnum.not_found.value,
message="Id doen't not exists",
detail=f"User with id={self.dto.post_id} not found",
source=Source(
local="data/owner_id",
),
)
)
Use
async def function():
validator = CommentValidator(...)
errors = await validator.errors()
# or
await validator.validate() # raise ValidationError
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for business_validator-2.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bdbf06325ee8ee21f3e0e91de24681c4544d420a451c5f1d3d62b2f63594063 |
|
MD5 | 2214ca3e4dc35a1015a4268a87325d1a |
|
BLAKE2b-256 | 80503dedd5f270a530d956f51db628dd73cd2710bcf7c5907808523153906d7e |