github.com/Axway/agent-sdk@v1.1.101/pkg/agent/handler/accessrequestdefinition.go (about) 1 package handler 2 3 import ( 4 "context" 5 6 agentcache "github.com/Axway/agent-sdk/pkg/agent/cache" 7 apiv1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1" 8 management "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/management/v1alpha1" 9 "github.com/Axway/agent-sdk/pkg/watchmanager/proto" 10 ) 11 12 type ardHandler struct { 13 agentCacheManager agentcache.Manager 14 } 15 16 // NewARDHandler creates a Handler for Access Requests 17 func NewARDHandler(agentCacheManager agentcache.Manager) Handler { 18 return &ardHandler{ 19 agentCacheManager: agentCacheManager, 20 } 21 } 22 23 // Handle processes grpc events triggered for AccessRequests 24 func (h *ardHandler) Handle(ctx context.Context, _ *proto.EventMeta, resource *apiv1.ResourceInstance) error { 25 action := GetActionFromContext(ctx) 26 if resource.Kind != management.AccessRequestDefinitionGVK().Kind { 27 return nil 28 } 29 30 if action != proto.Event_DELETED { 31 h.agentCacheManager.AddAccessRequestDefinition(resource) 32 return nil 33 } 34 35 return h.agentCacheManager.DeleteAccessRequestDefinition(resource.Metadata.ID) 36 }