From 35eec68a4347a536d2b711d47a105ccaef158b62 Mon Sep 17 00:00:00 2001 From: George MacRorie Date: Thu, 27 Oct 2022 17:04:08 +0100 Subject: [PATCH] chore(storage/sql): use keyed field in struct literals --- internal/storage/sql/auth/store.go | 20 ++++++-------------- internal/storage/sql/common/flag.go | 24 ++++++++++++++++++++---- internal/storage/sql/common/rule.go | 22 +++++++++++++++++----- internal/storage/sql/common/segment.go | 22 ++++++++++++++++++---- 4 files changed, 61 insertions(+), 27 deletions(-) diff --git a/internal/storage/sql/auth/store.go b/internal/storage/sql/auth/store.go index 3a51ba0b1b..acf44c585c 100644 --- a/internal/storage/sql/auth/store.go +++ b/internal/storage/sql/auth/store.go @@ -117,10 +117,10 @@ func (s *Store) CreateAuthentication(ctx context.Context, r *storage.CreateAuthe &authentication.Id, &hashedToken, &authentication.Method, - &fliptsql.JSONField[map[string]string]{authentication.Metadata}, - &fliptsql.Timestamp{authentication.ExpiresAt}, - &fliptsql.Timestamp{authentication.CreatedAt}, - &fliptsql.Timestamp{authentication.UpdatedAt}, + &fliptsql.JSONField[map[string]string]{T: authentication.Metadata}, + &fliptsql.Timestamp{Timestamp: authentication.ExpiresAt}, + &fliptsql.Timestamp{Timestamp: authentication.CreatedAt}, + &fliptsql.Timestamp{Timestamp: authentication.UpdatedAt}, ). ExecContext(ctx); err != nil { return "", nil, fmt.Errorf( @@ -145,7 +145,6 @@ func (s *Store) GetAuthenticationByClientToken(ctx context.Context, clientToken var ( authentication auth.Authentication - method auth.Method expiresAt fliptsql.Timestamp createdAt fliptsql.Timestamp updatedAt fliptsql.Timestamp @@ -164,8 +163,8 @@ func (s *Store) GetAuthenticationByClientToken(ctx context.Context, clientToken QueryRowContext(ctx). Scan( &authentication.Id, - &method, - &fliptsql.JSONField[*map[string]string]{&authentication.Metadata}, + &authentication.Method, + &fliptsql.JSONField[*map[string]string]{T: &authentication.Metadata}, &expiresAt, &createdAt, &updatedAt, @@ -176,7 +175,6 @@ func (s *Store) GetAuthenticationByClientToken(ctx context.Context, clientToken ) } - authentication.Method = auth.Method(method) authentication.ExpiresAt = expiresAt.Timestamp authentication.CreatedAt = createdAt.Timestamp authentication.UpdatedAt = updatedAt.Timestamp @@ -184,12 +182,6 @@ func (s *Store) GetAuthenticationByClientToken(ctx context.Context, clientToken return &authentication, nil } -// ptr allows for one-lining the creation of a pointer -// to any type T. -func ptr[T any](t T) *T { - return &t -} - const decodedTokenLen = 32 // generateRandomToken produces a URL safe base64 encoded string of random characters diff --git a/internal/storage/sql/common/flag.go b/internal/storage/sql/common/flag.go index e0cf3d9723..c2f97259ff 100644 --- a/internal/storage/sql/common/flag.go +++ b/internal/storage/sql/common/flag.go @@ -196,7 +196,14 @@ func (s *Store) CreateFlag(ctx context.Context, r *flipt.CreateFlagRequest) (*fl if _, err := s.builder.Insert("flags"). Columns("\"key\"", "name", "description", "enabled", "created_at", "updated_at"). - Values(flag.Key, flag.Name, flag.Description, flag.Enabled, &fliptsql.Timestamp{flag.CreatedAt}, &fliptsql.Timestamp{flag.UpdatedAt}). + Values( + flag.Key, + flag.Name, + flag.Description, + flag.Enabled, + &fliptsql.Timestamp{Timestamp: flag.CreatedAt}, + &fliptsql.Timestamp{Timestamp: flag.UpdatedAt}, + ). ExecContext(ctx); err != nil { return nil, err } @@ -210,7 +217,7 @@ func (s *Store) UpdateFlag(ctx context.Context, r *flipt.UpdateFlagRequest) (*fl Set("name", r.Name). Set("description", r.Description). Set("enabled", r.Enabled). - Set("updated_at", &fliptsql.Timestamp{timestamppb.Now()}). + Set("updated_at", &fliptsql.Timestamp{Timestamp: timestamppb.Now()}). Where(sq.Eq{"\"key\"": r.Key}) res, err := query.ExecContext(ctx) @@ -258,7 +265,16 @@ func (s *Store) CreateVariant(ctx context.Context, r *flipt.CreateVariantRequest attachment := emptyAsNil(r.Attachment) if _, err := s.builder.Insert("variants"). Columns("id", "flag_key", "\"key\"", "name", "description", "attachment", "created_at", "updated_at"). - Values(v.Id, v.FlagKey, v.Key, v.Name, v.Description, attachment, &fliptsql.Timestamp{v.CreatedAt}, &fliptsql.Timestamp{v.UpdatedAt}). + Values( + v.Id, + v.FlagKey, + v.Key, + v.Name, + v.Description, + attachment, + &fliptsql.Timestamp{Timestamp: v.CreatedAt}, + &fliptsql.Timestamp{Timestamp: v.UpdatedAt}, + ). ExecContext(ctx); err != nil { return nil, err } @@ -281,7 +297,7 @@ func (s *Store) UpdateVariant(ctx context.Context, r *flipt.UpdateVariantRequest Set("name", r.Name). Set("description", r.Description). Set("attachment", emptyAsNil(r.Attachment)). - Set("updated_at", &fliptsql.Timestamp{timestamppb.Now()}). + Set("updated_at", &fliptsql.Timestamp{Timestamp: timestamppb.Now()}). Where(sq.And{sq.Eq{"id": r.Id}, sq.Eq{"flag_key": r.FlagKey}}) res, err := query.ExecContext(ctx) diff --git a/internal/storage/sql/common/rule.go b/internal/storage/sql/common/rule.go index 6a145dcd82..25c1ec84e5 100644 --- a/internal/storage/sql/common/rule.go +++ b/internal/storage/sql/common/rule.go @@ -176,7 +176,13 @@ func (s *Store) CreateRule(ctx context.Context, r *flipt.CreateRuleRequest) (*fl if _, err := s.builder. Insert("rules"). Columns("id", "flag_key", "segment_key", "\"rank\"", "created_at", "updated_at"). - Values(rule.Id, rule.FlagKey, rule.SegmentKey, rule.Rank, &fliptsql.Timestamp{rule.CreatedAt}, &fliptsql.Timestamp{rule.UpdatedAt}). + Values( + rule.Id, + rule.FlagKey, + rule.SegmentKey, + rule.Rank, + &fliptsql.Timestamp{Timestamp: rule.CreatedAt}, + &fliptsql.Timestamp{Timestamp: rule.UpdatedAt}). ExecContext(ctx); err != nil { return nil, err } @@ -188,7 +194,7 @@ func (s *Store) CreateRule(ctx context.Context, r *flipt.CreateRuleRequest) (*fl func (s *Store) UpdateRule(ctx context.Context, r *flipt.UpdateRuleRequest) (*flipt.Rule, error) { query := s.builder.Update("rules"). Set("segment_key", r.SegmentKey). - Set("updated_at", &fliptsql.Timestamp{timestamppb.Now()}). + Set("updated_at", &fliptsql.Timestamp{Timestamp: timestamppb.Now()}). Where(sq.And{sq.Eq{"id": r.Id}, sq.Eq{"flag_key": r.FlagKey}}) res, err := query.ExecContext(ctx) @@ -289,7 +295,7 @@ func (s *Store) orderRules(ctx context.Context, runner sq.BaseRunner, flagKey st _, err := s.builder.Update("rules"). RunWith(runner). Set("\"rank\"", i+1). - Set("updated_at", &fliptsql.Timestamp{updatedAt}). + Set("updated_at", &fliptsql.Timestamp{Timestamp: updatedAt}). Where(sq.And{sq.Eq{"id": id}, sq.Eq{"flag_key": flagKey}}). ExecContext(ctx) if err != nil { @@ -317,7 +323,13 @@ func (s *Store) CreateDistribution(ctx context.Context, r *flipt.CreateDistribut if _, err := s.builder. Insert("distributions"). Columns("id", "rule_id", "variant_id", "rollout", "created_at", "updated_at"). - Values(d.Id, d.RuleId, d.VariantId, d.Rollout, &fliptsql.Timestamp{d.CreatedAt}, &fliptsql.Timestamp{d.UpdatedAt}). + Values( + d.Id, + d.RuleId, + d.VariantId, + d.Rollout, + &fliptsql.Timestamp{Timestamp: d.CreatedAt}, + &fliptsql.Timestamp{Timestamp: d.UpdatedAt}). ExecContext(ctx); err != nil { return nil, err } @@ -329,7 +341,7 @@ func (s *Store) CreateDistribution(ctx context.Context, r *flipt.CreateDistribut func (s *Store) UpdateDistribution(ctx context.Context, r *flipt.UpdateDistributionRequest) (*flipt.Distribution, error) { query := s.builder.Update("distributions"). Set("rollout", r.Rollout). - Set("updated_at", &fliptsql.Timestamp{timestamppb.Now()}). + Set("updated_at", &fliptsql.Timestamp{Timestamp: timestamppb.Now()}). Where(sq.And{sq.Eq{"id": r.Id}, sq.Eq{"rule_id": r.RuleId}, sq.Eq{"variant_id": r.VariantId}}) res, err := query.ExecContext(ctx) diff --git a/internal/storage/sql/common/segment.go b/internal/storage/sql/common/segment.go index 2ef45be8b3..a63483534b 100644 --- a/internal/storage/sql/common/segment.go +++ b/internal/storage/sql/common/segment.go @@ -181,7 +181,13 @@ func (s *Store) CreateSegment(ctx context.Context, r *flipt.CreateSegmentRequest if _, err := s.builder.Insert("segments"). Columns("\"key\"", "name", "description", "match_type", "created_at", "updated_at"). - Values(segment.Key, segment.Name, segment.Description, segment.MatchType, &fliptsql.Timestamp{segment.CreatedAt}, &fliptsql.Timestamp{segment.UpdatedAt}). + Values( + segment.Key, + segment.Name, + segment.Description, + segment.MatchType, + &fliptsql.Timestamp{Timestamp: segment.CreatedAt}, + &fliptsql.Timestamp{Timestamp: segment.UpdatedAt}). ExecContext(ctx); err != nil { return nil, err } @@ -195,7 +201,7 @@ func (s *Store) UpdateSegment(ctx context.Context, r *flipt.UpdateSegmentRequest Set("name", r.Name). Set("description", r.Description). Set("match_type", r.MatchType). - Set("updated_at", &fliptsql.Timestamp{timestamppb.Now()}). + Set("updated_at", &fliptsql.Timestamp{Timestamp: timestamppb.Now()}). Where(sq.Eq{"\"key\"": r.Key}) res, err := query.ExecContext(ctx) @@ -248,7 +254,15 @@ func (s *Store) CreateConstraint(ctx context.Context, r *flipt.CreateConstraintR if _, err := s.builder.Insert("constraints"). Columns("id", "segment_key", "type", "property", "operator", "value", "created_at", "updated_at"). - Values(c.Id, c.SegmentKey, c.Type, c.Property, c.Operator, c.Value, &fliptsql.Timestamp{c.CreatedAt}, &fliptsql.Timestamp{c.UpdatedAt}). + Values( + c.Id, + c.SegmentKey, + c.Type, + c.Property, + c.Operator, + c.Value, + &fliptsql.Timestamp{Timestamp: c.CreatedAt}, + &fliptsql.Timestamp{Timestamp: c.UpdatedAt}). ExecContext(ctx); err != nil { return nil, err } @@ -270,7 +284,7 @@ func (s *Store) UpdateConstraint(ctx context.Context, r *flipt.UpdateConstraintR Set("property", r.Property). Set("operator", operator). Set("value", r.Value). - Set("updated_at", &fliptsql.Timestamp{timestamppb.Now()}). + Set("updated_at", &fliptsql.Timestamp{Timestamp: timestamppb.Now()}). Where(sq.And{sq.Eq{"id": r.Id}, sq.Eq{"segment_key": r.SegmentKey}}). ExecContext(ctx) if err != nil {