github.com/grafana/synthetic-monitoring-agent@v0.64.2/cmd/test-api/internal/grpc/tenants.go (about) 1 package grpc 2 3 import ( 4 "context" 5 6 sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" 7 "github.com/rs/zerolog" 8 ) 9 10 type TenantsDb interface { 11 GetTenant(ctx context.Context, tenantId int64) (*sm.Tenant, error) 12 } 13 14 type TenantsServerOpts struct { 15 Logger zerolog.Logger 16 Db TenantsDb 17 } 18 19 type TenantsServer struct { 20 logger zerolog.Logger 21 db TenantsDb 22 } 23 24 func NewTenantsServer(opts TenantsServerOpts) (*TenantsServer, error) { 25 return &TenantsServer{ 26 logger: opts.Logger, 27 db: opts.Db, 28 }, nil 29 } 30 31 func (s *TenantsServer) GetTenant(ctx context.Context, info *sm.TenantInfo) (*sm.Tenant, error) { 32 tenant, err := s.db.GetTenant(ctx, info.Id) 33 if err != nil { 34 return nil, err 35 } 36 37 return tenant, nil 38 }