POST /tms/bookings/(?P\d+)/packing-list/email¶
What it does¶
#^/tms/bookings/(?P<id>\d+)/packing-list/email$# accepts POST and is declared in app/systems/TMS/booking/api_routes.php:1722 as a regex pattern.
The route handler delegates to tmsBookingApiSendPackingListEmail(). That function is the owner of
this behaviour; the route entry is only dispatch.
Call chain:
- →
tmsBookingApiSendPackingListEmail()—app/systems/TMS/booking/api_routes.php:1000 - ↳
tmsBookingApiNormalizePackingListEmailTarget()—app/systems/TMS/booking/api_routes.php:658
Who calls it¶
No literal caller path was found in frontend/, public/ or new-system/.
The endpoint may be called through a constructed path, a helper wrapper, or only by
an external client. Treat the route table and owner function as the authority.
Input¶
| Where | Key |
|---|---|
path |
id |
body |
EMAILTO |
body |
EMAIL_TO |
body |
INREF |
body |
IN_REF |
body |
OUTREF |
body |
OUT_REF |
body |
WEIGHT |
body |
WEIGHTTYPE |
body |
WEIGHT_TYPE |
Request bodies must not use TYPE, ACTION or USERNAME as contract fields.
Output¶
The response is produced by a shared helper, so the key set is not visible at the route. Read the owner function to confirm the shape before writing a client.
Data¶
No table reference is visible in the owner function body.
Access¶
- module-gated on
tms.booking, so tenant module access applies
Validation and failure messages¶
- emailTo must be BOTH, CUSTOMER, or INSPECTOR.
These strings come from the owner function and are the messages a client can receive. They are also the cheapest way to tell a rejected request from a broken one.