github.com/Axway/agent-sdk@v1.1.101/pkg/agent/cache/credentialrequestdefinitions.go (about)

     1  package cache
     2  
     3  import v1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1"
     4  
     5  // Credential request definition cache management
     6  
     7  // AddCredentialRequestDefinition -  add/update CredentialRequestDefinition resource in cache
     8  func (c *cacheManager) AddCredentialRequestDefinition(resource *v1.ResourceInstance) {
     9  	defer c.setCacheUpdated(true)
    10  
    11  	c.crdMap.SetWithSecondaryKey(resource.Metadata.ID, resource.Name, resource)
    12  }
    13  
    14  // GetCredentialRequestDefinitionKeys - returns keys for CredentialRequestDefinition cache
    15  func (c *cacheManager) GetCredentialRequestDefinitionKeys() []string {
    16  	c.ApplyResourceReadLock()
    17  	defer c.ReleaseResourceReadLock()
    18  
    19  	return c.crdMap.GetKeys()
    20  }
    21  
    22  func (c *cacheManager) ListCredentialRequestDefinitions() []*v1.ResourceInstance {
    23  	keys := c.GetCredentialRequestDefinitionKeys()
    24  	c.ApplyResourceReadLock()
    25  	defer c.ReleaseResourceReadLock()
    26  
    27  	var instances []*v1.ResourceInstance
    28  
    29  	for _, key := range keys {
    30  		item, _ := c.crdMap.Get(key)
    31  		if item != nil {
    32  			instance, ok := item.(*v1.ResourceInstance)
    33  			if ok {
    34  				instances = append(instances, instance)
    35  			}
    36  		}
    37  	}
    38  
    39  	return instances
    40  }
    41  
    42  // GetCredentialRequestDefinitionByName - returns resource from CredentialRequestDefinition cache based on resource name
    43  func (c *cacheManager) GetCredentialRequestDefinitionByName(name string) (*v1.ResourceInstance, error) {
    44  	c.ApplyResourceReadLock()
    45  	defer c.ReleaseResourceReadLock()
    46  
    47  	item, err := c.crdMap.GetBySecondaryKey(name)
    48  	if item != nil {
    49  		if ard, ok := item.(*v1.ResourceInstance); ok {
    50  			return ard, nil
    51  		}
    52  	}
    53  	return nil, err
    54  }
    55  
    56  // GetCredentialRequestDefinitionByID - returns resource from CredentialRequestDefinition cache based on resource id
    57  func (c *cacheManager) GetCredentialRequestDefinitionByID(id string) (*v1.ResourceInstance, error) {
    58  	c.ApplyResourceReadLock()
    59  	defer c.ReleaseResourceReadLock()
    60  
    61  	item, err := c.crdMap.Get(id)
    62  	if item != nil {
    63  		if ard, ok := item.(*v1.ResourceInstance); ok {
    64  			return ard, nil
    65  		}
    66  	}
    67  	return nil, err
    68  }
    69  
    70  // DeleteCredentialRequestDefinition - deletes the CredentialRequestDefinition cache based on resource id
    71  func (c *cacheManager) DeleteCredentialRequestDefinition(id string) error {
    72  	defer c.setCacheUpdated(true)
    73  
    74  	return c.crdMap.Delete(id)
    75  }