Use the reviewed review contract
Driver App can expose a customer-review form for some past individual orders. Control visibility, a selected rating, local success copy, and a hidden action are different from authorization, accepted persistence, publication, moderation, reporting, or plugin completion.
This contract is source-api-only. It does not authorize submitting reviews or
testing duplicate, plugin, customer, or grouped-order effects.
Availability
| Surface | Current public boundary |
|---|---|
| Individual action | Can appear for a configured past order that meets local visibility checks, has a customer and no truthy review object; API eligibility remains separate |
| Existing rating | A truthy qualification can render; a review object may hide the action without a visible rating |
| Rating input | UI offers a one-to-five choice; initial local value is below the accepted minimum |
| Comments | Rating-specific quick comments and optional free text become one request comment |
| Duplicate | Server research rejects an existing review for the same order/relation |
| Plugins | Persistence and plugin filters/actions are separate settlement stages |
| Grouped review | Source exists, but the accepted Driver composition hides the control by default |
Prerequisites
- Require an authenticated Driver, an authorized individual order/customer relation, a supported past-order state, and no prior matching review.
- Require a rating within the accepted range before any request.
- Treat customer identity, rating, comments, order relation, and response as private and purpose-limited.
- Disable repeat submission and retain an honest pending/error/result state.
- Keep review writes, plugins, events, toasts, sockets, and publication outside documentation runtime.
Responsibility boundaries
| Owner | Responsibility |
|---|---|
| Detail UI | Decide candidate visibility from returned order/review fields |
| Review modal | Rating/comment state, privacy copy, validation, pending/error presentation |
| Client controller | Send one intent and reconcile response before local event/close |
| API review contract | Validate order existence, Driver/customer relation, minimum rating, and duplicate |
| Plugin/reporting owners | Moderate, filter, publish, report, or trigger follow-ons after persistence |
| Group owner | Define per-member or atomic review behavior; current control remains dormant |
Inputs and result
The individual modal combines the selected rating, zero or more quick comments, and optional free text. The current Send control can remain pressable at the initial invalid rating and while loading, so UI reachability is not validation or duplicate protection.
Accepted API research validates the Driver-to-customer order relation, minimum rating, and prior matching review. A successful-looking client response can then toast, emit a local event, close the modal, and merge local order state. Those follow-ons do not prove plugin settlement, moderation, publication, reporting, exactly-once behavior, or deployed persistence.
Security and privacy
- Validate reviewer, target customer, order relation, minimum rating, and duplicate server-side before persistence.
- Do not put contact data, health/safety details, payment information, addresses, credentials, or unnecessary order facts in comments.
- Do not publish private status codes, endpoints, payloads, identifiers, tokens, customer media, plugin configuration, or security-test detail.
- Make repeat requests idempotent or explicitly reconcile duplicates and partial plugin failure.
- Treat local stars, toast, modal close, and hidden action as presentation only.
Limits and failure states
| State | Required interpretation |
|---|---|
| Action visible | Client candidate only; relation/duplicate may still fail |
| Action absent | Existing object, category, customer, or local state may hide it |
| No star visible | Does not prove no review object exists |
| Initial rating | Invalid for accepted server minimum |
| Loading button pressable | Repeat request prevention is not established |
| Toast/modal close | Client follow-on, not durable/plugin/publication receipt |
| Duplicate response | Matching review already exists; do not retry blindly |
| Grouped control absent | Current composition is dormant, not grouped success |
| Plugin failure | Persistence and downstream behavior can settle separately |
Troubleshooting
Review customer is missing
Check individual-order category, customer presence, and returned review object. Do not infer whether a review exists solely from the visible star.
Send is available before choosing a rating
Do not submit. Require an explicit one-to-five rating and reviewed privacy-safe comment before an authorized future integration can construct the request.
The modal closes but the review is not visible elsewhere
Local event/merge and plugin/publication/reporting are separate. Do not repeat presses; reconcile through the approved review owner.
A grouped delivery appears reviewable in source
The accepted composition hides that control. Do not expose a grouped procedure or infer atomic member reviews from dormant code.
Related guides: Review a customer · Use the reviewed communication contract · Review order details · View grouped deliveries · Run governed evidence safely