PrabhuKiranKonda's picture
added project files and dockerfile
cb7f5fc
from typing import Optional
from pydantic import BaseModel, Field, EmailStr
class StudentSchema(BaseModel):
name: str = Field(..., example="John Doe",
description="Name of the student")
email: EmailStr = Field(..., example="johndoe@gmail.com",
description="Email of the student")
password: str = Field(..., example="JohnDoe123",
description="Password of the student")
year: int = Field(..., gt=0, lt=5, example=1, description="Year of study")
branch: str = Field(..., min_length=3,
example="CSE or Computer Science and Engineering", description="Branch of study")
division: str = Field(..., min_length=1, max_length=1,
example="A", description="Division of study")
pin: str = Field(..., min_length=10, max_length=10,
example="20KJ1A0501", description="PIN of the student")
gpa: Optional[float] = Field(
None, gt=0, lt=10, example=9.0, description="GPA of the student")
phone: int = Field(..., gt=1000000000, lt=9999999999,
example=1234567890, description="Phone number of the student")
address: str = Field(..., min_length=3, max_length=100,
example="123, 1st cross, 1st main, City, State, Country - 123456", description="Address of the student")
class Config:
schema_extra = {
"Example": {
"name": "John Doe",
"email": "Johndoe@example.com",
"password": "JohnDoe123",
"year": 1,
"branch": "CSE",
"division": "A",
"pin": "20KJ1A0501",
"gpa": 9.0,
"phone": 1234567890,
"address": """
123, 1st cross, 1st main,
City, State, Country - 123456""",
}
}
class StudentUpdateSchema(BaseModel):
name: Optional[str] = Field(
None, example="John Doe", description="Name of the student")
email: Optional[EmailStr] = Field(
None, example="johndoe@example.com", description="Email")
password: Optional[str] = Field(
None, example="JohnDoe123", description="Password")
year: Optional[int] = Field(
None, gt=0, lt=5, example=1, description="Year of study")
branch: Optional[str] = Field(
None, min_length=3, example="CSE or Computer Science and Engineering", description="Branch of study")
division: Optional[str] = Field(
None, min_length=1, max_length=1, example="A", description="Division of study")
pin: Optional[str] = Field(None, min_length=10, max_length=10,
example="20KJ1A0501", description="PIN of the student")
gpa: Optional[float] = Field(
None, gt=0, lt=10, example=9.0, description="GPA of the student")
phone: Optional[int] = Field(None, gt=1000000000, lt=9999999999,
example=1234567890, description="Phone number of the student")
address: Optional[str] = Field(None, min_length=3, max_length=100,
example="123, 1st cross, 1st main, City, State, Country - 123456",
description="Address of the student")
class Config:
schema_extra = {
"Example": {
"name": "John Doe",
"email": "Johndoe@example.com",
"password": "JohnDoe123",
"year": 1,
"branch": "CSE",
"division": "A",
"pin": "20KJ1A0501",
"gpa": 9.0,
"phone": 1234567890,
"address": """
123, 1st cross, 1st main,
City, State, Country - 123456""",
}
}
def ResponseModel(data, message):
return {
"data": [data],
"code": 200,
"message": message,
}
def ErrorResponseModel(error, code, message):
return {"error": error, "code": code, "message": message}