cache

package
v0.53.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// NavigationCacheKey is used to cache the navigation bar data
	NavigationCacheKey = "navigation-cache"
)

Variables

View Source
var CensusTopicID string

CensusTopicID is the id of the Census topic stored in mongodb which is accessible by using dp-topic-api

Functions

This section is empty.

Types

type List added in v0.33.0

type List struct {
	CensusTopic *TopicCache
	DataTopic   *TopicCache
	Navigation  *NavigationCache
}

CacheList is a list of caches for the dp-frontend-search-controller

func GetMockCacheList added in v0.33.0

func GetMockCacheList(ctx context.Context, lang string) (*List, error)

GetMockCacheList returns a mocked list of cache which contains the census topic cache and navigation cache

type NavigationCache struct {
	*dpcache.Cache
}

NavigationCache is a wrapper to dpcache.Cache which has additional fields and methods specifically for caching navigation data

func NewNavigationCache added in v0.33.0

func NewNavigationCache(ctx context.Context, updateInterval *time.Duration) (*NavigationCache, error)

NewNavigationCache create a navigation cache object to be used in the service which will update at every updateInterval If updateInterval is nil, this means that the cache will only be updated once at the start of the service

func (nc *NavigationCache) AddUpdateFunc(key string, updateFunc func() *models.Navigation)

AddUpdateFunc adds an update function to the cache

func (nc *NavigationCache) GetCachingKeyForNavigationLanguage(lang string) string
func (nc *NavigationCache) GetNavigationData(ctx context.Context, lang string) (*models.Navigation, error)

type Subtopic added in v0.34.0

type Subtopic struct {
	ID              string
	LocaliseKeyName string
	ReleaseDate     *time.Time
}

type Subtopics added in v0.34.0

type Subtopics struct {
	// contains filtered or unexported fields
}

Subtopics contains a list of subtopics in map form with addition to mutex locking The subtopicsMap is used to keep a record of subtopics to be later used to generate the subtopics id `query` for a topic and to check if the subtopic id given by a user exists

func NewSubTopicsMap

func NewSubTopicsMap() *Subtopics

GetNewSubTopicsMap creates a new subtopics id map to store subtopic ids with addition to mutex locking

func (*Subtopics) AppendSubtopicID added in v0.34.0

func (t *Subtopics) AppendSubtopicID(id string, subtopic Subtopic)

AppendSubtopicID appends the subtopic id to the map stored in SubtopicsIDs with consideration to mutex locking

func (*Subtopics) CheckTopicIDExists added in v0.34.0

func (t *Subtopics) CheckTopicIDExists(key string) bool

CheckTopicIDExists returns subtopic for given key (id)

func (*Subtopics) Get added in v0.34.0

func (t *Subtopics) Get(key string) Subtopic

Get returns subtopic for given key (id)

func (*Subtopics) GetSubtopics added in v0.34.0

func (t *Subtopics) GetSubtopics() (subtopics []Subtopic)

GetSubtopics returns an array of subtopics

func (*Subtopics) GetSubtopicsIDsQuery added in v0.34.0

func (t *Subtopics) GetSubtopicsIDsQuery() string

GetSubtopicsIDsQuery gets the subtopics ID query for a topic

type Topic

type Topic struct {
	ID              string
	LocaliseKeyName string
	// Query is a comma separated string of topic id and its subtopic ids which will be used by the controller to create the query
	Query string
	// List is a map[string]Subtopics which contains the topic id and a list of it's subtopics
	List *Subtopics
}

Topic represents the data which is cached for a topic to be used by the dp-frontend-search-controller

func GetEmptyCensusTopic

func GetEmptyCensusTopic() *Topic

GetEmptyCensusTopic returns an empty census topic cache in the event when updating the cache of the census topic fails

func GetMockCensusTopic

func GetMockCensusTopic() *Topic

GetMockCensusTopic returns a mocked Cenus topic which contains all the information for the mock census topic

type TopicCache

type TopicCache struct {
	*dpcache.Cache
}

TopicCache is a wrapper to dpcache.Cache which has additional fields and methods specifically for caching topics

func NewTopicCache

func NewTopicCache(ctx context.Context, updateInterval *time.Duration) (*TopicCache, error)

NewTopicCache create a topic cache object to be used in the service which will update at every updateInterval If updateInterval is nil, this means that the cache will only be updated once at the start of the service

func (*TopicCache) AddUpdateFunc

func (dc *TopicCache) AddUpdateFunc(title string, updateFunc func() *Topic)

AddUpdateFunc adds an update function to the topic cache for a topic with the `title` passed to the function This update function will then be triggered once or at every fixed interval as per the prior setup of the TopicCache

func (*TopicCache) GetCensusData

func (dc *TopicCache) GetCensusData(ctx context.Context) (*Topic, error)

func (*TopicCache) GetData

func (dc *TopicCache) GetData(ctx context.Context, key string) (*Topic, error)

func (*TopicCache) GetDataAggregationData added in v0.53.0

func (dc *TopicCache) GetDataAggregationData(ctx context.Context) (*Topic, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL