chore: derive workspace status on backend #4284
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I wanted to just knock this out while I had the time so I went ahead but would like to explain my work here for learning purposes. Going through each commit should tell the story of my process.
codersdk
package, added thestatus
field to theworkspace
type, and ranmake gen
to generate the ts client as well.convertWorkspace
function that took a few different DB objects and made acodersdk.Workspace
for api responses. I also knew that the status was completely derived from the workspace build, which is already passed into this conversion function. I added the logic there and some tests for it that at least cover the states at rest.Note I changed the state
started
torunning
in this case since it matched what we display and made more sense to me. I also did the same with changingerror
tofailed
. These changes made more sense to me as a consumer.I'm going to leave the frontend changes for another PR to keep this simple and easy to read.