API route inventory¶
This inventory describes the controllers present in ePT 7.6.21.
It identifies integration entry points, not a complete client contract or a security assessment.
Default Zend routes use /api/{controller}/{action}.
Request conventions¶
| Convention | Implementation |
|---|---|
| Login body | JSON with userId and key, where key is the password |
| API credential | authToken parameter used by many service methods |
| Read parameters | Controllers generally call getAllParams() |
| Write payloads | Controllers generally decode php://input as JSON |
| Application outcomes | Many JSON responses include status, message and sometimes data |
| Failure values | Include fail and auth-fail, depending on the service |
| Downloads | Report download actions render views and are not uniformly JSON-only |
HTTP status alone does not establish application success. Response envelopes and required fields vary by service. Several actions lack an explicit HTTP method check. The inputs below describe controller parsing, not enforced method restrictions.
Login and initialization¶
| Route | Input | Purpose |
|---|---|---|
/api/login |
POST JSON | Authenticate a data manager |
/api/login/change-password |
POST JSON | Change a data-manager password |
/api/login/forget-password |
POST JSON | Request password recovery |
/api/login/login-details |
Request parameters | Obtain login details |
/api/init/get |
Request parameters | Obtain reference lists |
Example login body, using illustrative credentials:
{"userId":"user@example.org","key":"EXAMPLE_PASSWORD"}
A successful login returns an authToken in data and replaces the account's stored
token. Token rotation and profile checks have separate implementation paths.
The web idle timeout is not the API token lifetime.
Shipment routes¶
| Route | Input | Purpose |
|---|---|---|
/api/shipments/get |
Request parameters | Retrieve shipment details |
/api/shipments/get-shipment-form |
Request parameters | Retrieve shipment form information |
/api/shipments/save-form |
JSON body | Save shipment form information |
/api/shipments/dts |
Request parameters | Retrieve DTS shipment data |
/api/shipments/save-dts |
JSON body | Submit DTS responses |
/api/shipments/vl |
Request parameters | Retrieve viral-load shipment data |
/api/shipments/save-vl |
JSON body | Submit viral-load responses |
/api/shipments/eid |
Request parameters | Retrieve EID shipment data |
/api/shipments/save-eid |
JSON body | Submit EID responses |
/api/shipments/custom-tests |
Request parameters | Retrieve custom-test shipment data |
/api/shipments/save-custom-tests |
JSON body | Submit custom-test responses |
The shared response-save service expects an authToken and a data collection.
Records include schemeType, shipmentId, participantId and scheme-specific fields.
The dispatch values include dts, vl, eid and custom-tests.
The last value is an API dispatch value, not the generic label used elsewhere.
The controller route alone does not set the save payload's scheme. Shipment editability and mandatory-field checks occur in the service path. Full payload schemas and negative cases require verification for each intended client.
Participant and reporting routes¶
| Route | Input | Purpose |
|---|---|---|
/api/participant/get |
Request parameters | Retrieve individual-report information |
/api/participant/summary |
Request parameters | Retrieve summary-report information |
/api/participant/get-filter |
Request parameters | Retrieve participant filters |
/api/participant/get-profile-check |
Request parameters | Retrieve profile-check information |
/api/participant/update-profile |
JSON body | Update profile information |
/api/participant/download |
Generated link parameters | Render individual-report download content |
/api/participant/download-summary |
Generated link parameters | Render summary-report download content |
/api/participant/resend |
Encoded request parameter | Resend email verification |
/api/participant/file-downloads |
Request parameters | Retrieve certificate download information |
/api/aggregated-insights |
Controller accepts request parameters | Return instance and aggregate information |
Integration boundaries¶
The aggregated-insights service does not perform an authToken check in its reviewed
method. Download actions use separate link handling. A blanket claim that every API
route requires the same authentication is unsupported.
There are no dedicated TB, DBS, recency or COVID-19 response controller actions in this inventory. Reference data for recency appears under the DTS reference payload. That does not establish a dedicated recency submission API.
No implemented route establishes a live integration with another national system. A deployment integration record needs client ownership, enabled routes, exchange frequency, sample payloads, authentication handling and executed acceptance cases.
Implementation sources¶
Controllers: application/modules/api/controllers/.
Services: ApiServices.php, Shipments.php, Participants.php and DataManagers.php.
Account and token behaviour: application/models/DbTable/DataManagers.php.