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):
|
||||
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)
|
||||
Email: EmailStr
|
||||
Type: str = Field("U", min_length=1, max_length=2)
|
||||
Email: Optional[EmailStr]
|
||||
Type: str = Field("U", min_length=1, max_length=1)
|
||||
UserNo: int = Field(..., ge=1, le=999)
|
||||
Instructions: str | None = Field(None, max_length=500)
|
||||
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] = {}
|
||||
|
||||
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:
|
||||
return
|
||||
|
||||
val = data[field_name]
|
||||
|
||||
# null means clear
|
||||
if val is None:
|
||||
updates[column] = ""
|
||||
return
|
||||
sval = str(val).strip()
|
||||
if not sval:
|
||||
|
||||
sval = str(val)
|
||||
|
||||
# empty string means clear
|
||||
if sval.strip() == "":
|
||||
updates[column] = ""
|
||||
return
|
||||
|
||||
# normal update
|
||||
updates[column] = sval
|
||||
|
||||
def set_int(field_name: str, column: str):
|
||||
|
|
|
|||
Loading…
Reference in New Issue