POST /tms/bookings/(?P\d+)/clone¶
What it does¶
#^/tms/bookings/(?P<id>\d+)/clone$# accepts POST and is declared in app/systems/TMS/booking/api_routes.php:1677 as a regex pattern.
The route handler delegates to tmsBookingWrite(). That function is the owner of
this behaviour; the route entry is only dispatch.
Call chain:
- →
tmsBookingWrite()—app/systems/TMS/booking/api_routes.php:30 - ↳
tmsBookingApiWriteResult()—app/systems/TMS/booking/api_routes.php:19 - ↳
postEndpointMergeRouteResult()—app/shared/endpoint/post_bootstrap.php:9
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 |
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¶
- No Matching Containers!
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.