`apply_edit_to_contact/2` is the path for both owner direct-edits and admin reviewed-edits. The public contact-map + total-count + gzipped controller payload caches are built from `private == false` rows, but only the insert path was clearing them — every other update left /api/contacts/map and /contacts/map serving the previous snapshot for up to 10 minutes. A `private: false -> true` flip on a contact already present in the cached payload was a temporary privacy leak; grid corrections, callsign changes, and flagged_invalid flips silently diverged from the live row. Extracts the three `Cache.invalidate` calls into `invalidate_contact_map_caches/0` and runs it from both `apply_edit_to_contact/2` and the existing insert path so the public view stays in sync. |
||
|---|---|---|
| .. | ||
| fixtures | ||
| microwaveprop | ||
| microwaveprop_web | ||
| mix/tasks | ||
| support | ||
| test_helper.exs | ||