statistics

package
v0.1.0-alpha9 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2022 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package statistics provides all components required to serve statistical data via an HTTP API. It includes the transport & persistence layers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type HTTP

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

The HTTP type contains HTTP request handlers that serve statistical data.

func NewHTTP

func NewHTTP(statistics Repository) *HTTP

NewHTTP returns a new instance of the HTTP type that will serve statistical data queried from the Repository implementation.

func (*HTTP) Latest

func (h *HTTP) Latest(w http.ResponseWriter, r *http.Request)

Latest handles an inbound HTTP GET request that returns the latest statistics stored within the Repository.

func (*HTTP) Register

func (h *HTTP) Register(router *mux.Router)

Register the HTTP routes into the given router.

type PostgresRepository

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

The PostgresRepository is a Repository implementation that queries statistical data from a postgres-compatible database.

func NewPostgresRepository

func NewPostgresRepository(db *sql.DB) *PostgresRepository

NewPostgresRepository returns a new instance of the PostgresRepository type that will perform queries against the provided sql.DB instance.

func (*PostgresRepository) Latest

Latest returns a Statistics type whose fields will be populated with the most recent data available within the database.

type Repository

type Repository interface {
	Latest(ctx context.Context) (Statistics, error)
}

The Repository interface describes types that can query statistical database from persistent storage.

type Statistics

type Statistics struct {
	Speed             float64 `json:"speed"`
	Fuel              float64 `json:"fuel"`
	EngineTemperature float64 `json:"engineTemperature"`
	Revolutions       float64 `json:"revolutions"`
}

The Statistics type contains fields describing the current state of the Lada.

Jump to

Keyboard shortcuts

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