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  }