Added clearing of fields in PATCH request. Changed e-mail to optional in PATCH User data.
This commit is contained in:
parent
f254e4028c
commit
3cdbd8d385
29
main.py
29
main.py
|
|
@ -340,10 +340,10 @@ class ClientInfo(BaseModel):
|
||||||
|
|
||||||
class User(BaseModel):
|
class User(BaseModel):
|
||||||
User_Name: str = Field(..., min_length=1, max_length=120)
|
User_Name: str = Field(..., min_length=1, max_length=120)
|
||||||
MobileNo: str = Field(..., min_length=1, max_length=40)
|
MobileNo: str = Field(..., min_length=6, max_length=40)
|
||||||
MobileNoOrder: int = Field(..., ge=1, le=999)
|
MobileNoOrder: int = Field(..., ge=1, le=999)
|
||||||
Email: EmailStr
|
Email: Optional[EmailStr]
|
||||||
Type: str = Field("U", min_length=1, max_length=2)
|
Type: str = Field("U", min_length=1, max_length=1)
|
||||||
UserNo: int = Field(..., ge=1, le=999)
|
UserNo: int = Field(..., ge=1, le=999)
|
||||||
Instructions: str | None = Field(None, max_length=500)
|
Instructions: str | None = Field(None, max_length=500)
|
||||||
CallOrder: int = Field(0, ge=0, le=999)
|
CallOrder: int = Field(0, ge=0, le=999)
|
||||||
|
|
@ -601,14 +601,33 @@ def _update_client_in_db_from_data(client_id: int, keyrec: KeyRecord, data: dict
|
||||||
updates: dict[str, object] = {}
|
updates: dict[str, object] = {}
|
||||||
|
|
||||||
def set_text(field_name: str, column: str):
|
def set_text(field_name: str, column: str):
|
||||||
|
"""
|
||||||
|
PATCH logic:
|
||||||
|
* field missing → ignore
|
||||||
|
* field present and null → clear (set to "")
|
||||||
|
* field present and "" → clear (set to "")
|
||||||
|
* field present and "text" → update
|
||||||
|
"""
|
||||||
|
|
||||||
|
# If field is missing in request, ignore.
|
||||||
if field_name not in data:
|
if field_name not in data:
|
||||||
return
|
return
|
||||||
|
|
||||||
val = data[field_name]
|
val = data[field_name]
|
||||||
|
|
||||||
|
# null means clear
|
||||||
if val is None:
|
if val is None:
|
||||||
|
updates[column] = ""
|
||||||
return
|
return
|
||||||
sval = str(val).strip()
|
|
||||||
if not sval:
|
sval = str(val)
|
||||||
|
|
||||||
|
# empty string means clear
|
||||||
|
if sval.strip() == "":
|
||||||
|
updates[column] = ""
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# normal update
|
||||||
updates[column] = sval
|
updates[column] = sval
|
||||||
|
|
||||||
def set_int(field_name: str, column: str):
|
def set_int(field_name: str, column: str):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue