Skip to content

Commit 334d174

Browse files
authored
fetch provider types (#161)
* feat: upgrade go mod dependencies * feat: upgrade proton version to the latest * feat: Add provider_type api * feat: update provider repository mock * test: add test cases
1 parent ea81389 commit 334d174

File tree

15 files changed

+1594
-1162
lines changed

15 files changed

+1594
-1162
lines changed

Diff for: Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ NAME="github.com/odpf/guardian"
22
LAST_COMMIT := $(shell git rev-parse --short HEAD)
33
LAST_TAG := "$(shell git rev-list --tags --max-count=1)"
44
APP_VERSION := "$(shell git describe --tags ${LAST_TAG})-next"
5-
PROTON_COMMIT := "bb41ca0a800f039208f21730ab9e78b49bf08aa7"
5+
PROTON_COMMIT := "3c386084a80432de6de1ed121eed2fd4967a8df4"
66

77
.PHONY: all build test clean dist vet proto install
88

Diff for: api/handler/v1beta1/adapter.go

+7
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,13 @@ func (a *adapter) ToProviderConfigProto(pc *domain.ProviderConfig) (*guardianv1b
144144
}, nil
145145
}
146146

147+
func (a *adapter) ToProviderTypeProto(pt domain.ProviderType) (*guardianv1beta1.ProviderType, error) {
148+
return &guardianv1beta1.ProviderType{
149+
Name: pt.Name,
150+
ResourceTypes: pt.ResourceTypes,
151+
}, nil
152+
}
153+
147154
func (a *adapter) ToRole(role *domain.Role) (*guardianv1beta1.Role, error) {
148155
permissions := []*structpb.Value{}
149156
for _, p := range role.Permissions {

Diff for: api/handler/v1beta1/grpc.go

+21
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type ProtoAdapter interface {
2424
FromProviderConfigProto(*guardianv1beta1.ProviderConfig) (*domain.ProviderConfig, error)
2525
ToProviderProto(*domain.Provider) (*guardianv1beta1.Provider, error)
2626
ToProviderConfigProto(*domain.ProviderConfig) (*guardianv1beta1.ProviderConfig, error)
27+
ToProviderTypeProto(domain.ProviderType) (*guardianv1beta1.ProviderType, error)
2728
ToRole(*domain.Role) (*guardianv1beta1.Role, error)
2829

2930
FromPolicyProto(*guardianv1beta1.Policy) (*domain.Policy, error)
@@ -113,6 +114,26 @@ func (s *GRPCServer) GetProvider(ctx context.Context, req *guardianv1beta1.GetPr
113114
}, nil
114115
}
115116

117+
func (s *GRPCServer) GetProviderTypes(ctx context.Context, req *guardianv1beta1.GetProviderTypesRequest) (*guardianv1beta1.GetProviderTypesResponse, error) {
118+
providerTypes, err := s.providerService.GetTypes()
119+
if err != nil {
120+
return nil, status.Errorf(codes.Internal, "failed to retrieve provider types: %v", err)
121+
}
122+
123+
var providerTypeProtos []*guardianv1beta1.ProviderType
124+
for _, pt := range providerTypes {
125+
providerTypeProto, err := s.adapter.ToProviderTypeProto(pt)
126+
if err != nil {
127+
return nil, status.Errorf(codes.Internal, "failed to parse provider type %s: %v", pt.Name, err)
128+
}
129+
providerTypeProtos = append(providerTypeProtos, providerTypeProto)
130+
}
131+
132+
return &guardianv1beta1.GetProviderTypesResponse{
133+
ProviderTypes: providerTypeProtos,
134+
}, nil
135+
}
136+
116137
func (s *GRPCServer) CreateProvider(ctx context.Context, req *guardianv1beta1.CreateProviderRequest) (*guardianv1beta1.CreateProviderResponse, error) {
117138
providerConfig, err := s.adapter.FromProviderConfigProto(req.GetConfig())
118139
if err != nil {

0 commit comments

Comments
 (0)