toga-ai 1.0.1176 → 1.0.1177
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -6,7 +6,7 @@ project: TOGa Desk
|
|
|
6
6
|
client: elite
|
|
7
7
|
type: client-feature
|
|
8
8
|
status: active
|
|
9
|
-
updated: 2026-
|
|
9
|
+
updated: 2026-10-28
|
|
10
10
|
owners: ["snaredla"]
|
|
11
11
|
files:
|
|
12
12
|
- library/app/api/servicerequest.php
|
|
@@ -16,6 +16,7 @@ files:
|
|
|
16
16
|
- togadesk/desk/includes/controllers/modals/tickets/serviceRequest.php
|
|
17
17
|
- togadesk/desk/includes/controllers/actions/tickets/serviceRequest.php
|
|
18
18
|
- dbchanges2/Client_Elite/2026-08-11a - EliteServiceRequestTicketUnique.sql
|
|
19
|
+
- dbchanges2/Client_Elite/2026-10-28a - ContactCustomerIdApiWrite.sql
|
|
19
20
|
- test/@srija/Elite Testing/Service Requests/test_elite_desk_service_request.php
|
|
20
21
|
related:
|
|
21
22
|
- ../profile.md
|
|
@@ -117,6 +118,11 @@ Elite confirmed (via Bala): **no address validation — Elite ships internationa
|
|
|
117
118
|
- **⚠ Do not re-implement this in `class.ticket.php`.** After `e2b03fa7` that file holds the desk gate and history reporting only. New validation or payload work belongs in `library/app/api/servicerequest.php`.
|
|
118
119
|
- **A state code is not a country-safe key.** Codes repeat across countries (`WA` = Washington and Western Australia; `NT` = a Canadian and an Australian territory), which is why the check resolves the **state uuid** and reads its country, rather than matching codes.
|
|
119
120
|
- **Naming `fields` on the contact lookup drops the nested contact.** `findContactUuidByEmailAddress()` queries `ContactEmailAddresses` and deliberately omits `fields` for that reason.
|
|
121
|
+
- **⚠ New-contact path (requester email not yet a 2.0 contact, e.g. new hires) never worked in prod before 2026-10-28.** Symptom: EV-12; `Logs_Elite.Api` shows MySQL 1048 `Column 'customerId' cannot be null` on `INSERT INTO Contacts`. Not the shipping method — agents blamed Ground because every saved SR used an existing contact. Two fixes, both required:
|
|
122
|
+
1. `createServiceRequestInToga2()` nests `customer: {uuid}` inside `requestedForContact` and throws if the customer is missing (library `7c12c3d0`).
|
|
123
|
+
2. Client_Elite API role 3 needs AclFieldPermissions write on `Contacts.customerId` (RecordField 1651) — `2026-10-28a - ContactCustomerIdApiWrite.sql`. A new nested field on a created record needs its own role-3 write grant.
|
|
124
|
+
Still untested end-to-end: one SR with a brand-new email, to confirm api2 accepts the nested `customer:{uuid}`.
|
|
125
|
+
- **Requester differs by system.** Freshservice requester stays the Elite manager (the new hire is CC only — Freshservice cannot take an external email as requester); the 2.0 SR `requestedFor` should be the new hire. Repair precedent: SR 37 / SalesOrder 455 repointed from contact 318 to new contact 1260 (2026-10-28).
|
|
120
126
|
- The intake credentials are the `App_Api_Toga2::*_ELITE` constants — **values live in the source / config only.**
|
|
121
127
|
|
|
122
128
|
## Related
|
package/package.json
CHANGED