Skip to content

Draft: WIP: Replace string UUID with structural UUID

Status

🚨 DO NOT MERGE This is broken, even though it compiles.

  • For each API call making use of a UUID we need to examine what form of the UUID it expects, whether with or without dashes, and then encode that into the string-serialization. The forDisplay and forAPI abstraction may fail here and we might need to rework the names.
  • There are a couple places where non-UUID string values are currently conflated into the Uuid type. These need to be refactored, likely turned into parsing-into-a-Union-type, in separate preliminary PRs.

It came to my attention that much of this refactor could occur as a preliminary step by creating the Uuid module while retaining the existing String type. If refactored to perform this change first we could split a lot of incidental details, such as changing which functions and types are imported into a module, from those logical or structural changes, such as those requiring calls to stringify a UUID.

Overview

Resolves #595

Alternative to !554 (closed) (from feedback to update the UUID library)

Replaces String type for UUIDs throughout app with new opaque Uuid type.

How to Test

Smoke-test the app. Things break. This isn't finished.

Screenshots

This is neither a functional nor visual change. As a refactor it should produce no change in the app's behavior.

Edited by Dennis Snell

Merge request reports