reporter

package
v1.8.4 Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// VaccinationTypePartial tells GetValue to return the partial vaccination count
	VaccinationTypePartial = iota
	// VaccinationTypeFull tells GetValue to return the full vaccination count. It counts 2nd vaccinations and single dose vaccinations
	VaccinationTypeFull
	// VaccinationTypeBooster tells GetValue to return the booster vaccination count
	VaccinationTypeBooster
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache struct {
	Duration time.Duration
	// contains filtered or unexported fields
}

Cache caches the different reports generated by the reporter package

func NewCache

func NewCache(duration time.Duration) *Cache

NewCache returns a new cache that caches the reports for the specified duration

func (*Cache) Clear

func (cache *Cache) Clear(name string)

Clear removes the specified report from the cache

func (*Cache) Load

func (cache *Cache) Load(name string) (entry *CacheEntry)

Load returns a cached report. If the report does not exist, or is expired, it sets up Once to generate a new report

func (*Cache) MaybeGenerate

func (cache *Cache) MaybeGenerate(name string, generate func() (*datasets.Dataset, error)) (report *datasets.Dataset, err error)

MaybeGenerate loads a report from Cache, or generates it if the report does not exist or is expired

func (*Cache) Save

func (cache *Cache) Save(name string, entry *CacheEntry)

Save stores a generated report in the cache

func (*Cache) Stats added in v1.8.1

func (cache *Cache) Stats() (stats map[string]int)

Stats returns the stats of the cache

type CacheEntry

type CacheEntry struct {
	Once sync.Once
	Data *datasets.Dataset
	// contains filtered or unexported fields
}

CacheEntry represents one report in the cache

type CasesGetter

type CasesGetter interface {
	GetCases() (results *datasets.Dataset, err error)
	GetCasesByRegion() (results *datasets.Dataset, err error)
	GetCasesByProvince() (results *datasets.Dataset, err error)
	GetCasesByAgeGroup() (results *datasets.Dataset, err error)
}

CasesGetter contains all methods providing COVID-19 cases

type Client

type Client struct {
	APICache    cache.Holder
	ReportCache *Cache
}

Client queries different Reporter APIs

func New

func New(duration time.Duration) *Client

New creates a new Client which caches results for duration interval

func (*Client) GetCases

func (client *Client) GetCases() (results *datasets.Dataset, err error)

GetCases returns all cases

func (*Client) GetCasesByAgeGroup

func (client *Client) GetCasesByAgeGroup() (results *datasets.Dataset, err error)

GetCasesByAgeGroup returns all cases, grouped by province

func (*Client) GetCasesByProvince

func (client *Client) GetCasesByProvince() (results *datasets.Dataset, err error)

GetCasesByProvince returns all cases, grouped by province

func (*Client) GetCasesByRegion

func (client *Client) GetCasesByRegion() (results *datasets.Dataset, err error)

GetCasesByRegion returns all cases, grouped by region

func (*Client) GetHospitalisations

func (client *Client) GetHospitalisations() (results *datasets.Dataset, err error)

GetHospitalisations returns all hospitalisations

func (*Client) GetHospitalisationsByProvince

func (client *Client) GetHospitalisationsByProvince() (results *datasets.Dataset, err error)

GetHospitalisationsByProvince returns all hospitalisations, grouped by province

func (*Client) GetHospitalisationsByRegion

func (client *Client) GetHospitalisationsByRegion() (results *datasets.Dataset, err error)

GetHospitalisationsByRegion returns all hospitalisations, grouped by region

func (*Client) GetMortality

func (client *Client) GetMortality() (results *datasets.Dataset, err error)

GetMortality returns all mortality figures

func (*Client) GetMortalityByAgeGroup

func (client *Client) GetMortalityByAgeGroup() (results *datasets.Dataset, err error)

GetMortalityByAgeGroup returns all Mortality, grouped by age group

func (*Client) GetMortalityByRegion

func (client *Client) GetMortalityByRegion() (results *datasets.Dataset, err error)

GetMortalityByRegion returns all mortality figures, grouped by region

func (*Client) GetTestResults

func (client *Client) GetTestResults() (results *datasets.Dataset, err error)

GetTestResults returns all COVID-19 test results up to endTime

func (*Client) GetVaccinations

func (client *Client) GetVaccinations() (results *datasets.Dataset, err error)

GetVaccinations returns all vaccinations

func (*Client) GetVaccinationsByAgeGroup

func (client *Client) GetVaccinationsByAgeGroup(vaccinationType VaccinationType) (results *datasets.Dataset, err error)

GetVaccinationsByAgeGroup returns all vaccinations, grouped by age group

func (*Client) GetVaccinationsByRegion

func (client *Client) GetVaccinationsByRegion(vaccinationType VaccinationType) (results *datasets.Dataset, err error)

GetVaccinationsByRegion returns all vaccinations, grouped by region

func (*Client) GetVaccines

func (client *Client) GetVaccines() (results *datasets.Dataset, err error)

GetVaccines returns all vaccines data

func (*Client) GetVaccinesByManufacturer

func (client *Client) GetVaccinesByManufacturer() (results *datasets.Dataset, err error)

GetVaccinesByManufacturer returns all hospitalisations, grouped by manufacturer

type GroupedMortalityEntry

type GroupedMortalityEntry struct {
	Name   string
	Values []int
}

GroupedMortalityEntry contains all the values for the (grouped) mortality figures

type HospitalisationsGetter

type HospitalisationsGetter interface {
	GetHospitalisations() (results *datasets.Dataset, err error)
	GetHospitalisationsByRegion() (results *datasets.Dataset, err error)
	GetHospitalisationsByProvince() (results *datasets.Dataset, err error)
}

HospitalisationsGetter contains all methods providing COVID-19-related hospitalisation figures

type MortalityGetter

type MortalityGetter interface {
	GetMortality() (results *datasets.Dataset, err error)
	GetMortalityByRegion() (results *datasets.Dataset, err error)
	GetMortalityByAgeGroup() (results *datasets.Dataset, err error)
}

MortalityGetter contains all methods providing COVID-19 mortality

type Reporter

Reporter exposes the supported Reporter APIs

type TestResultsGetter

type TestResultsGetter interface {
	GetTestResults() (results *datasets.Dataset, err error)
}

TestResultsGetter contains all required methods to retrieve COVID-19 test results

type VaccinationGetter

type VaccinationGetter interface {
	GetVaccinations() (results *datasets.Dataset, err error)
	GetVaccinationsByAgeGroup(vaccinationType VaccinationType) (results *datasets.Dataset, err error)
	GetVaccinationsByRegion(vaccinationType VaccinationType) (results *datasets.Dataset, err error)
}

VaccinationGetter contains all required methods to retrieve vaccination data

type VaccinationType added in v1.8.3

type VaccinationType int

type VaccinesGetter

type VaccinesGetter interface {
	GetVaccines() (results *datasets.Dataset, err error)
	GetVaccinesByManufacturer() (results *datasets.Dataset, err error)
}

VaccinesGetter contains all required methods to retrieve vaccines data

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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