Skip to content

Add _created and _updated metalables #89

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 4, 2025
Merged

Add _created and _updated metalables #89

merged 1 commit into from
Jun 4, 2025

Conversation

jemiahw
Copy link
Collaborator

@jemiahw jemiahw commented Jun 3, 2025

The code change itself is relatively small and straightforward:

  • Add the new metalable in etre.go
  • Add the validations in validate.go
  • Maintain the label in store.go
  • Update the CLI to pretty-print in a human readable form (instead of the raw Unix nano time)

The test changes were more involved, particularly because the timestamps are not deterministic. Most of the tests that validate actual data now follow a pattern where they put the actual values into the expected entity for the assert.Equal(t, expected, actual), and then do a separate check that the actual time is a realistic value (in the last few seconds).

Also fixed a bug with Entity.Rev(). It expected an int type, but json.Unmarshal sets it to a float64 which caused a panic. Now that is fixed to allow the various int flavors and float.

@jemiahw jemiahw requested a review from Copilot June 3, 2025 23:48
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds new metadata fields (_created and _updated) to entities and updates related validations, storage, CLI presentation, and tests.

  • Adds getter functions for _created and _updated in the entity model
  • Updates validation logic and tests to account for the new metalabels
  • Adjusts the CLI output and store operations to handle human-readable timestamps

Reviewed Changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
etre.go Adds _created/_updated constants and getter methods to expose timestamps
es/es.go Converts metalabel timestamps to RFC3339Nano for CLI output
entity/validate*.go Updates validations and tests to reject metalabels on creation
entity/v09_test.go Adjusts tests to include the new metalabels
entity/store*.go Integrates _created/_updated handling in creation and update operations
client_test.go & api/* Updates tests to correctly convert and verify new timestamp metalabels

Copy link
Collaborator

@qian-squareup qian-squareup left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

The code change itself is relatively small and straightforward:
* Add the new metalable in etre.go
* Add the validations in validate.go
* Maintain the label in store.go
* Update the CLI to pretty-print in a human readable form (instead of the raw Unix nano time)

The test changes were more involved, particularly because the timestamps are not deterministic. Most of the tests that validate actual data now follow a pattern where they put the actual values into the expected entity for the assert.Equal(t, expected, actual), and then do a separate check that the actual time is a realistic value (in the last few seconds).

Also fixed a bug with Entity.Rev(). It expected an int type, but json.Unmarshal sets it to a float64 which caused a panic. Now that is fixed to allow the various int flavors _and_ float.
@jemiahw jemiahw merged commit e65cc58 into master Jun 4, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants