...
1 package channels
2
3 import (
4 "database/sql"
5 "fmt"
6
7 "github.com/go-errors/errors"
8
9 "edge-infra.dev/pkg/edge/api/graph/model"
10 )
11
12 func scanChannelServiceAccount(scanner interface{ Scan(...any) error }) (model.ChannelIAMPolicy, error) {
13 var channelIAMPolicy model.ChannelIAMPolicy
14
15 err := scanner.Scan(
16 &channelIAMPolicy.ChannelSaID,
17 &channelIAMPolicy.ChannelID,
18 &channelIAMPolicy.SaEmail,
19 &channelIAMPolicy.CreatedAt)
20
21 if err != nil && errors.Is(err, sql.ErrNoRows) {
22 return channelIAMPolicy, errors.Join(ErrChannelDoesNotExist, err)
23 } else if err != nil {
24 return channelIAMPolicy, fmt.Errorf("failed to scan channel: %w", err)
25 }
26
27 return channelIAMPolicy, nil
28 }
29
30
31
32
33
34
35 func scanChannel(scanner interface{ Scan(...any) error }) (Channel, error) {
36 var x Channel
37 err := scanner.Scan(
38 &x.ID,
39 &x.Name,
40 &x.Description,
41 &x.Team,
42 &x.ExpireBufferDuration,
43 &x.RotationIntervalDuration,
44 &x.CreatedAt,
45 )
46 if err != nil && errors.Is(err, sql.ErrNoRows) {
47 return x, errors.Join(ErrChannelDoesNotExist, err)
48 } else if err != nil {
49 return x, fmt.Errorf("failed to scan channel: %w", err)
50 }
51 return x, x.validateScan()
52 }
53
54
55
56
57
58
59 func scanChannelKeyVersion(scanner interface{ Scan(...any) error }) (ChannelKeyVersion, error) {
60 var ckv ChannelKeyVersion
61 var rotateAt sql.NullTime
62 err := scanner.Scan(
63 &ckv.ID,
64 &ckv.ChannelID,
65 &ckv.BannerEdgeID,
66 &ckv.Version,
67 &ckv.SecretManagerLink,
68 &ckv.ExpireAt,
69 &rotateAt,
70 &ckv.CreatedAt,
71 )
72
73 if err != nil {
74 return ckv, fmt.Errorf("failed to scan channel key version: %w", err)
75 }
76
77
78 ckv.RotateAt = rotateAt.Time
79
80 return ckv, ckv.validateScan()
81 }
82
View as plain text