Skip to content

Commit 9ffbf4d

Browse files
author
Alfonso Sastre
committed
fix: add default None to optional command schema fields
Per OCPI spec, fields like evse_uid, connector_id, and authorization_reference in StartSession and ReserveNow are optional (cardinality ?). Without `= None` default, Pydantic v2 requires them to be present in the request body even if null, causing 422 errors when callers correctly omit them. Made-with: Cursor
1 parent 235c502 commit 9ffbf4d

3 files changed

Lines changed: 12 additions & 12 deletions

File tree

ocpi/modules/commands/v_2_1_1/schemas.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class ReserveNow(BaseModel):
2323
expiry_date: DateTime
2424
reservation_id: int
2525
location_id: String(36) # type: ignore
26-
evse_uid: String(39) | None # type: ignore
26+
evse_uid: String(39) | None = None # type: ignore
2727

2828

2929
class StartSession(BaseModel):
@@ -34,7 +34,7 @@ class StartSession(BaseModel):
3434
response_url: URL
3535
token: Token
3636
location_id: String(39) # type: ignore
37-
evse_uid: String(39) | None # type: ignore
37+
evse_uid: String(39) | None = None # type: ignore
3838

3939

4040
class StopSession(BaseModel):

ocpi/modules/commands/v_2_2_1/schemas.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ class ReserveNow(BaseModel):
4646
expiry_date: DateTime
4747
reservation_id: CiString(36) # type: ignore
4848
location_id: CiString(36) # type: ignore
49-
evse_uid: CiString(36) | None # type: ignore
50-
authorization_reference: CiString(36) | None # type: ignore
49+
evse_uid: CiString(36) | None = None # type: ignore
50+
authorization_reference: CiString(36) | None = None # type: ignore
5151

5252

5353
class StartSession(BaseModel):
@@ -58,9 +58,9 @@ class StartSession(BaseModel):
5858
response_url: URL
5959
token: Token
6060
location_id: CiString(36) # type: ignore
61-
evse_uid: CiString(36) | None # type: ignore
62-
connector_id: CiString(36) | None # type: ignore
63-
authorization_reference: CiString(36) | None # type: ignore
61+
evse_uid: CiString(36) | None = None # type: ignore
62+
connector_id: CiString(36) | None = None # type: ignore
63+
authorization_reference: CiString(36) | None = None # type: ignore
6464

6565

6666
class StopSession(BaseModel):

ocpi/modules/commands/v_2_3_0/schemas.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ class ReserveNow(BaseModel):
4646
expiry_date: DateTime
4747
reservation_id: CiString(36) # type: ignore
4848
location_id: CiString(36) # type: ignore
49-
evse_uid: CiString(36) | None # type: ignore
50-
authorization_reference: CiString(36) | None # type: ignore
49+
evse_uid: CiString(36) | None = None # type: ignore
50+
authorization_reference: CiString(36) | None = None # type: ignore
5151

5252

5353
class StartSession(BaseModel):
@@ -58,9 +58,9 @@ class StartSession(BaseModel):
5858
response_url: URL
5959
token: Token
6060
location_id: CiString(36) # type: ignore
61-
evse_uid: CiString(36) | None # type: ignore
62-
connector_id: CiString(36) | None # type: ignore
63-
authorization_reference: CiString(36) | None # type: ignore
61+
evse_uid: CiString(36) | None = None # type: ignore
62+
connector_id: CiString(36) | None = None # type: ignore
63+
authorization_reference: CiString(36) | None = None # type: ignore
6464

6565

6666
class StopSession(BaseModel):

0 commit comments

Comments
 (0)