api

package
v0.0.0-...-87f5b26 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2023 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	InternalError = "Failed to process the request due to an internal error"
	BadRequest    = "Bad request - Invalid request body"
)

Functions

func BuildDownloadsObject

func BuildDownloadsObject(previousFilterOutput, filterOutput *models.Filter, downloadServiceURL string)

func CreatePublicDimension

func CreatePublicDimension(dimension models.Dimension, host, filterID string) *models.PublicDimension

CreatePublicDimension creates a PublicDimension struct from a Dimension struct

func CreatePublicDimensions

func CreatePublicDimensions(inputDimensions []models.Dimension, host, filterID string) []*models.PublicDimension

CreatePublicDimensions wraps CreatePublicDimension for converting arrays of dimensions

func RemoveDuplicateAndEmptyOptions

func RemoveDuplicateAndEmptyOptions(elements []string) []string

func WriteJSONBody

func WriteJSONBody(ctx context.Context, v interface{}, w http.ResponseWriter, data log.Data) error

WriteJSONBody marshals the provided interface into json, and writes it to the response body.

Types

type DataStore

type DataStore interface {
	AddFilter(ctx context.Context, filter *models.Filter) (*models.Filter, error)
	GetFilter(ctx context.Context, filterID, eTagSelector string) (*models.Filter, error)
	UpdateFilter(ctx context.Context, updatedFilter *models.Filter, timestamp primitive.Timestamp, eTagSelector string, currentFilter *models.Filter) (newETag string, err error)
	GetFilterDimension(ctx context.Context, filterID string, name, eTagSelector string) (dimension *models.Dimension, err error)
	AddFilterDimension(ctx context.Context, filterID, name string, options []string, dimensions []models.Dimension, timestamp primitive.Timestamp, eTagSelector string, currentFilter *models.Filter) (newETag string, err error)
	RemoveFilterDimension(ctx context.Context, filterID, name string, timestamp primitive.Timestamp, eTagSelector string, currentFilter *models.Filter) (newETag string, err error)
	AddFilterDimensionOption(ctx context.Context, filterID, name, option string, timestamp primitive.Timestamp, eTagSelector string, currentFilter *models.Filter) (newETag string, err error)
	AddFilterDimensionOptions(ctx context.Context, filterID, name string, options []string, timestamp primitive.Timestamp, eTagSelector string, currentFilter *models.Filter) (newETag string, err error)
	RemoveFilterDimensionOption(ctx context.Context, filterID string, name string, option string, timestamp primitive.Timestamp, eTagSelector string, currentFilter *models.Filter) (newETag string, err error)
	RemoveFilterDimensionOptions(ctx context.Context, filterID string, name string, options []string, timestamp primitive.Timestamp, eTagSelector string, currentFilter *models.Filter) (newETag string, err error)
	CreateFilterOutput(ctx context.Context, filter *models.Filter) error
	GetFilterOutput(ctx context.Context, filterOutputID string) (*models.Filter, error)
	UpdateFilterOutput(ctx context.Context, filter *models.Filter, timestamp primitive.Timestamp) error
	AddEventToFilterOutput(ctx context.Context, filterOutputID string, event *models.Event) error
	RunTransaction(ctx context.Context, retry bool, fn mongodriver.TransactionFunc) (interface{}, error)
}

DataStore - A interface used to store filters

type DatasetAPI

type DatasetAPI interface {
	Get(ctx context.Context, userToken, svcToken, collectionID, datasetID string) (dataset.DatasetDetails, error)
	GetVersion(ctx context.Context, userAuthToken, serviceAuthToken, downloadServiceAuthToken, collectionID, datasetID, edition, version string) (m dataset.Version, err error)
	GetVersionDimensions(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, id, edition, version string) (m dataset.VersionDimensions, err error)
	GetOptionsBatchProcess(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, id, edition, version, dimension string, optionIDs *[]string, processBatch dataset.OptionsBatchProcessor, batchSize, maxWorkers int) (err error)
}

DatasetAPI - An interface used to access the DatasetAPI

type FilterAPI

type FilterAPI struct {
	Router *mux.Router

	FilterFlexAPI FilterFlexAPI

	BatchMaxWorkers int
	// contains filtered or unexported fields
}

FilterAPI manages importing filters against a dataset

func Setup

func Setup(
	cfg *config.Config,
	router *mux.Router,
	dataStore DataStore,
	outputQueue OutputQueue,
	datasetAPI DatasetAPI,
	filterFlexAPI FilterFlexAPI) *FilterAPI

Setup manages all the routes configured to API

type FilterFlexAPI

type FilterFlexAPI interface {
	ForwardRequest(*http.Request) (*http.Response, error)
}

type OutputQueue

type OutputQueue interface {
	Queue(output *models.Filter) error
}

OutputQueue - An interface used to queue filter outputs

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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