data

package
v1.24.0-basal-automated.1 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2018 License: BSD-3-Clause Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SchemaVersionCurrent = 3 // DEPRECATED

	ComputerTimeFormat = "2006-01-02T15:04:05"
	TimeFormat         = time.RFC3339

	DataSetTypeContinuous = "continuous"
	DataSetTypeNormal     = "normal" // TODO: Normal?

	DataSetStateClosed = "closed"
	DataSetStateOpen   = "open"

	DeviceTagBGM         = "bgm"
	DeviceTagCGM         = "cgm"
	DeviceTagInsulinPump = "insulin-pump"

	TimeProcessingAcrossTheBoardTimezone = "across-the-board-timezone"
	TimeProcessingNone                   = "none"
	TimeProcessingUTCBootstrapping       = "utc-bootstrapping"
)
View Source
const (
	DataSourceStateConnected    = "connected"
	DataSourceStateDisconnected = "disconnected"
	DataSourceStateError        = "error"
)

Variables

This section is empty.

Functions

func DataSetStates added in v1.20.0

func DataSetStates() []string

func DataSetTypes added in v1.20.0

func DataSetTypes() []string

func DataSourceStates added in v1.20.0

func DataSourceStates() []string

func DeviceTags added in v1.20.0

func DeviceTags() []string

func ErrorValueStringAsDataSetIDNotValid

func ErrorValueStringAsDataSetIDNotValid(value string) error

func ErrorValueStringAsReverseDomainNotValid

func ErrorValueStringAsReverseDomainNotValid(value string) error

func ErrorValueStringAsSemanticVersionNotValid

func ErrorValueStringAsSemanticVersionNotValid(value string) error

func ErrorValueStringAsUserIDNotValid

func ErrorValueStringAsUserIDNotValid(value string) error

func TimeProcessings added in v1.20.0

func TimeProcessings() []string

func ValidateDataSetID

func ValidateDataSetID(value string, errorReporter structure.ErrorReporter)

func ValidateReverseDomain

func ValidateReverseDomain(value string, errorReporter structure.ErrorReporter)

func ValidateSemanticVersion

func ValidateSemanticVersion(value string, errorReporter structure.ErrorReporter)

func ValidateUserID

func ValidateUserID(value string, errorReporter structure.ErrorReporter)

Types

type ArrayParser

type ArrayParser interface {
	Logger() log.Logger

	SetMeta(meta interface{})

	AppendError(reference interface{}, err *service.Error)

	Array() *[]interface{}

	ParseBoolean(index int) *bool
	ParseInteger(index int) *int
	ParseFloat(index int) *float64
	ParseString(index int) *string
	ParseStringArray(index int) *[]string
	ParseObject(index int) *map[string]interface{}
	ParseObjectArray(index int) *[]map[string]interface{}
	ParseInterface(index int) *interface{}
	ParseInterfaceArray(index int) *[]interface{}
	ParseDatum(index int) *Datum
	ParseDatumArray(index int) *[]Datum

	ProcessNotParsed()

	NewChildObjectParser(index int) ObjectParser
	NewChildArrayParser(index int) ArrayParser
}

type Blob

type Blob map[string]interface{}

func NewBlob

func NewBlob() *Blob

func ParseBlob

func ParseBlob(parser ObjectParser) *Blob

func (*Blob) Delete

func (b *Blob) Delete(key string)

func (*Blob) Get

func (b *Blob) Get(key string) interface{}

func (*Blob) Normalize

func (b *Blob) Normalize(normalizer Normalizer)

func (*Blob) Parse

func (b *Blob) Parse(parser ObjectParser)

func (*Blob) Set

func (b *Blob) Set(key string, value interface{})

func (*Blob) Validate

func (b *Blob) Validate(validator structure.Validator)

type BlobArray

type BlobArray []*Blob

func NewBlobArray

func NewBlobArray() *BlobArray

func ParseBlobArray

func ParseBlobArray(parser ArrayParser) *BlobArray

func (*BlobArray) Normalize

func (b *BlobArray) Normalize(normalizer Normalizer)

func (*BlobArray) Parse

func (b *BlobArray) Parse(parser ArrayParser)

func (*BlobArray) Validate

func (b *BlobArray) Validate(validator structure.Validator)

type Context

type Context interface {
	Logger() log.Logger

	SetMeta(meta interface{})

	ResolveReference(reference interface{}) string

	AppendError(reference interface{}, err *service.Error)

	NewChildContext(reference interface{}) Context
}

type DataSet added in v1.20.0

type DataSet struct {
	Active              bool                    `json:"-" bson:"_active"`
	Annotations         *BlobArray              `json:"annotations,omitempty" bson:"annotations,omitempty"`
	ArchivedDatasetID   string                  `json:"-" bson:"archivedDatasetId,omitempty"`
	ArchivedTime        string                  `json:"-" bson:"archivedTime,omitempty"`
	ByUser              *string                 `json:"byUser,omitempty" bson:"byUser,omitempty"`
	Client              *DataSetClient          `json:"client,omitempty" bson:"client,omitempty"`
	ClockDriftOffset    *int                    `json:"clockDriftOffset,omitempty" bson:"clockDriftOffset,omitempty"`
	ComputerTime        *string                 `json:"computerTime,omitempty" bson:"computerTime,omitempty"`
	ConversionOffset    *int                    `json:"conversionOffset,omitempty" bson:"conversionOffset,omitempty"`
	CreatedTime         string                  `json:"createdTime,omitempty" bson:"createdTime,omitempty"`
	CreatedUserID       string                  `json:"createdUserId,omitempty" bson:"createdUserId,omitempty"`
	DataSetType         *string                 `json:"dataSetType,omitempty" bson:"dataSetType,omitempty"`
	DataState           string                  `json:"-" bson:"_dataState,omitempty"` // TODO: Deprecated DataState (after data migration)
	Deduplicator        *DeduplicatorDescriptor `json:"-" bson:"_deduplicator,omitempty"`
	DeletedTime         string                  `json:"deletedTime,omitempty" bson:"deletedTime,omitempty"`
	DeletedUserID       string                  `json:"deletedUserId,omitempty" bson:"deletedUserId,omitempty"`
	DeviceID            *string                 `json:"deviceId,omitempty" bson:"deviceId,omitempty"`
	DeviceManufacturers *[]string               `json:"deviceManufacturers,omitempty" bson:"deviceManufacturers,omitempty"`
	DeviceModel         *string                 `json:"deviceModel,omitempty" bson:"deviceModel,omitempty"`
	DeviceSerialNumber  *string                 `json:"deviceSerialNumber,omitempty" bson:"deviceSerialNumber,omitempty"`
	DeviceTags          *[]string               `json:"deviceTags,omitempty" bson:"deviceTags,omitempty"`
	DeviceTime          *string                 `json:"deviceTime,omitempty" bson:"deviceTime,omitempty"`
	GUID                string                  `json:"guid,omitempty" bson:"guid,omitempty"`
	ID                  string                  `json:"id,omitempty" bson:"id,omitempty"`
	ModifiedTime        string                  `json:"modifiedTime,omitempty" bson:"modifiedTime,omitempty"`
	ModifiedUserID      string                  `json:"modifiedUserId,omitempty" bson:"modifiedUserId,omitempty"`
	Payload             *Blob                   `json:"payload,omitempty" bson:"payload,omitempty"`
	SchemaVersion       int                     `json:"-" bson:"_schemaVersion,omitempty"`
	Source              *string                 `json:"source,omitempty" bson:"source,omitempty"`
	State               string                  `json:"-" bson:"_state,omitempty"`
	Time                *string                 `json:"time,omitempty" bson:"time,omitempty"`
	TimeProcessing      *string                 `json:"timeProcessing,omitempty" bson:"timeProcessing,omitempty"`
	Timezone            *string                 `json:"timezone,omitempty" bson:"timezone,omitempty"`
	TimezoneOffset      *int                    `json:"timezoneOffset,omitempty" bson:"timezoneOffset,omitempty"`
	Type                string                  `json:"type,omitempty" bson:"type,omitempty"`
	UploadID            string                  `json:"uploadId,omitempty" bson:"uploadId,omitempty"`
	UserID              string                  `json:"-" bson:"_userId,omitempty"`
	Version             *string                 `json:"version,omitempty" bson:"version,omitempty"`
	VersionInternal     int                     `json:"-" bson:"_version,omitempty"`
}

type DataSetAccessor added in v1.20.0

type DataSetAccessor interface {
	ListUserDataSets(ctx context.Context, userID string, filter *DataSetFilter, pagination *page.Pagination) (DataSets, error)
	CreateUserDataSet(ctx context.Context, userID string, create *DataSetCreate) (*DataSet, error)
	GetDataSet(ctx context.Context, id string) (*DataSet, error)
	UpdateDataSet(ctx context.Context, id string, update *DataSetUpdate) (*DataSet, error)
	DeleteDataSet(ctx context.Context, id string) error
}

type DataSetClient added in v1.20.0

type DataSetClient struct {
	Name    *string                 `json:"name,omitempty" bson:"name,omitempty"`
	Version *string                 `json:"version,omitempty" bson:"version,omitempty"`
	Private *map[string]interface{} `json:"private,omitempty" bson:"private,omitempty"`
}

func NewDataSetClient added in v1.20.0

func NewDataSetClient() *DataSetClient

func (*DataSetClient) Parse added in v1.20.0

func (d *DataSetClient) Parse(parser structure.ObjectParser)

func (*DataSetClient) Validate added in v1.20.0

func (d *DataSetClient) Validate(validator structure.Validator)

type DataSetCreate added in v1.20.0

type DataSetCreate struct {
	Client              *DataSetClient `json:"client,omitempty"`
	DataSetType         string         `json:"dataSetType,omitempty"`
	DeviceID            string         `json:"deviceId,omitempty"`
	DeviceManufacturers []string       `json:"deviceManufacturers,omitempty"`
	DeviceModel         string         `json:"deviceModel,omitempty"`
	DeviceSerialNumber  string         `json:"deviceSerialNumber,omitempty"`
	DeviceTags          []string       `json:"deviceTags,omitempty"`
	Time                time.Time      `json:"time,omitempty"`
	Type                string         `json:"type,omitempty"`
	TimeProcessing      string         `json:"timeProcessing,omitempty"`
	Timezone            string         `json:"timezone,omitempty"`
	TimezoneOffset      int            `json:"timezoneOffset,omitempty"`
}

func NewDataSetCreate added in v1.20.0

func NewDataSetCreate() *DataSetCreate

func (*DataSetCreate) Normalize added in v1.20.0

func (d *DataSetCreate) Normalize(normalizer structure.Normalizer)

func (*DataSetCreate) Parse added in v1.20.0

func (d *DataSetCreate) Parse(parser structure.ObjectParser)

func (*DataSetCreate) Validate added in v1.20.0

func (d *DataSetCreate) Validate(validator structure.Validator)

type DataSetFilter added in v1.21.0

type DataSetFilter struct {
	Deleted  *bool   `json:"deleted,omitempty" bson:"deleted,omitempty"`
	DeviceID *string `json:"deviceId,omitempty" bson:"deviceId,omitempty"`
}

func NewDataSetFilter added in v1.21.0

func NewDataSetFilter() *DataSetFilter

func (*DataSetFilter) Mutate added in v1.21.0

func (d *DataSetFilter) Mutate(req *http.Request) error

func (*DataSetFilter) Parse added in v1.21.0

func (d *DataSetFilter) Parse(parser structure.ObjectParser)

func (*DataSetFilter) Validate added in v1.21.0

func (d *DataSetFilter) Validate(validator structure.Validator)

type DataSetUpdate added in v1.20.0

type DataSetUpdate struct {
	Active             *bool                   `json:"-"`
	DeviceID           *string                 `json:"deviceId,omitempty"`
	DeviceModel        *string                 `json:"deviceModel,omitempty"`
	DeviceSerialNumber *string                 `json:"deviceSerialNumber,omitempty"`
	Deduplicator       *DeduplicatorDescriptor `json:"-"`
	State              *string                 `json:"state,omitempty"`
	Time               *time.Time              `json:"time,omitempty"`
	Timezone           *string                 `json:"timezone,omitempty"`
	TimezoneOffset     *int                    `json:"timezoneOffset,omitempty"`
}

func NewDataSetUpdate added in v1.20.0

func NewDataSetUpdate() *DataSetUpdate

func (*DataSetUpdate) HasUpdates added in v1.20.0

func (d *DataSetUpdate) HasUpdates() bool

func (*DataSetUpdate) Parse added in v1.20.0

func (d *DataSetUpdate) Parse(parser structure.ObjectParser)

func (*DataSetUpdate) Validate added in v1.20.0

func (d *DataSetUpdate) Validate(validator structure.Validator)

type DataSets added in v1.20.0

type DataSets []*DataSet

type DataSource added in v1.20.0

type DataSource struct {
	ID                string               `json:"id" bson:"id"`
	UserID            string               `json:"userId" bson:"userId"`
	ProviderType      string               `json:"providerType" bson:"providerType"`
	ProviderName      string               `json:"providerName" bson:"providerName"`
	ProviderSessionID *string              `json:"providerSessionId,omitempty" bson:"providerSessionId,omitempty"`
	State             string               `json:"state,omitempty" bson:"state,omitempty"`
	Error             *errors.Serializable `json:"error,omitempty" bson:"error,omitempty"`
	DataSetIDs        []string             `json:"dataSetIds,omitempty" bson:"dataSetIds,omitempty"`
	EarliestDataTime  *time.Time           `json:"earliestDataTime,omitempty" bson:"earliestDataTime,omitempty"`
	LatestDataTime    *time.Time           `json:"latestDataTime,omitempty" bson:"latestDataTime,omitempty"`
	LastImportTime    *time.Time           `json:"lastImportTime,omitempty" bson:"lastImportTime,omitempty"`
	CreatedTime       time.Time            `json:"createdTime" bson:"createdTime"`
	ModifiedTime      *time.Time           `json:"modifiedTime,omitempty" bson:"modifiedTime,omitempty"`
}

func NewDataSource added in v1.20.0

func NewDataSource(userID string, create *DataSourceCreate) (*DataSource, error)

func (*DataSource) Normalize added in v1.20.0

func (d *DataSource) Normalize(normalizer structure.Normalizer)

func (*DataSource) Parse added in v1.20.0

func (d *DataSource) Parse(parser structure.ObjectParser)

func (*DataSource) Sanitize added in v1.20.0

func (d *DataSource) Sanitize(details request.Details) error

func (*DataSource) Validate added in v1.20.0

func (d *DataSource) Validate(validator structure.Validator)

type DataSourceAccessor added in v1.20.0

type DataSourceAccessor interface {
	ListUserDataSources(ctx context.Context, userID string, filter *DataSourceFilter, pagination *page.Pagination) (DataSources, error)
	CreateUserDataSource(ctx context.Context, userID string, create *DataSourceCreate) (*DataSource, error)
	GetDataSource(ctx context.Context, id string) (*DataSource, error)
	UpdateDataSource(ctx context.Context, id string, update *DataSourceUpdate) (*DataSource, error)
	DeleteDataSource(ctx context.Context, id string) error
}

type DataSourceCreate added in v1.20.0

type DataSourceCreate struct {
	ProviderType      string `json:"providerType" bson:"providerType"`
	ProviderName      string `json:"providerName" bson:"providerName"`
	ProviderSessionID string `json:"providerSessionId" bson:"providerSessionId"`
	State             string `json:"state,omitempty" bson:"state,omitempty"`
}

func NewDataSourceCreate added in v1.20.0

func NewDataSourceCreate() *DataSourceCreate

func (*DataSourceCreate) Parse added in v1.20.0

func (d *DataSourceCreate) Parse(parser structure.ObjectParser)

func (*DataSourceCreate) Validate added in v1.20.0

func (d *DataSourceCreate) Validate(validator structure.Validator)

type DataSourceFilter added in v1.20.0

type DataSourceFilter struct {
	ProviderType      *string `json:"providerType,omitempty" bson:"providerType,omitempty"`
	ProviderName      *string `json:"providerName,omitempty" bson:"providerName,omitempty"`
	ProviderSessionID *string `json:"providerSessionId,omitempty" bson:"providerSessionId,omitempty"`
	State             *string `json:"state,omitempty" bson:"state,omitempty"`
}

func NewDataSourceFilter added in v1.20.0

func NewDataSourceFilter() *DataSourceFilter

func (*DataSourceFilter) Mutate added in v1.20.0

func (d *DataSourceFilter) Mutate(req *http.Request) error

func (*DataSourceFilter) Parse added in v1.20.0

func (d *DataSourceFilter) Parse(parser structure.ObjectParser)

func (*DataSourceFilter) Validate added in v1.20.0

func (d *DataSourceFilter) Validate(validator structure.Validator)

type DataSourceUpdate added in v1.20.0

type DataSourceUpdate struct {
	State            *string              `json:"state,omitempty" bson:"state,omitempty"`
	Error            *errors.Serializable `json:"error,omitempty" bson:"error,omitempty"`
	DataSetIDs       *[]string            `json:"dataSetIds,omitempty" bson:"dataSetIds,omitempty"`
	EarliestDataTime *time.Time           `json:"earliestDataTime,omitempty" bson:"earliestDataTime,omitempty"`
	LatestDataTime   *time.Time           `json:"latestDataTime,omitempty" bson:"latestDataTime,omitempty"`
	LastImportTime   *time.Time           `json:"lastImportTime,omitempty" bson:"lastImportTime,omitempty"`
}

func NewDataSourceUpdate added in v1.20.0

func NewDataSourceUpdate() *DataSourceUpdate

func (*DataSourceUpdate) HasUpdates added in v1.20.0

func (d *DataSourceUpdate) HasUpdates() bool

func (*DataSourceUpdate) Normalize added in v1.20.0

func (d *DataSourceUpdate) Normalize(normalizer structure.Normalizer)

func (*DataSourceUpdate) Parse added in v1.20.0

func (d *DataSourceUpdate) Parse(parser structure.ObjectParser)

func (*DataSourceUpdate) Validate added in v1.20.0

func (d *DataSourceUpdate) Validate(validator structure.Validator)

type DataSources added in v1.20.0

type DataSources []*DataSource

func (DataSources) Sanitize added in v1.20.0

func (d DataSources) Sanitize(details request.Details) error

type Datum

type Datum interface {
	Init()

	Meta() interface{}

	Parse(parser ObjectParser) error
	Validate(validator structure.Validator)
	Normalize(normalizer Normalizer)

	IdentityFields() ([]string, error)

	GetPayload() *Blob

	SetUserID(userID *string)
	SetDatasetID(datasetID *string)
	SetActive(active bool)
	SetDeviceID(deviceID *string)
	SetCreatedTime(createdTime *string)
	SetCreatedUserID(createdUserID *string)
	SetModifiedTime(modifiedTime *string)
	SetModifiedUserID(modifiedUserID *string)
	SetDeletedTime(deletedTime *string)
	SetDeletedUserID(deletedUserID *string)

	DeduplicatorDescriptor() *DeduplicatorDescriptor
	SetDeduplicatorDescriptor(deduplicatorDescriptor *DeduplicatorDescriptor)
}

type Deduplicator added in v1.4.0

type Deduplicator interface {
	Name() string
	Version() string

	RegisterDataset(ctx context.Context) error

	AddDatasetData(ctx context.Context, datasetData []Datum) error
	DeduplicateDataset(ctx context.Context) error

	DeleteDataset(ctx context.Context) error
}

type DeduplicatorDescriptor added in v1.4.0

type DeduplicatorDescriptor struct {
	Name    string `bson:"name,omitempty"`
	Version string `bson:"version,omitempty"`
	Hash    string `bson:"hash,omitempty"`
}

func NewDeduplicatorDescriptor added in v1.5.0

func NewDeduplicatorDescriptor() *DeduplicatorDescriptor

func (*DeduplicatorDescriptor) IsRegisteredWithAnyDeduplicator added in v1.5.0

func (d *DeduplicatorDescriptor) IsRegisteredWithAnyDeduplicator() bool

func (*DeduplicatorDescriptor) IsRegisteredWithNamedDeduplicator added in v1.5.0

func (d *DeduplicatorDescriptor) IsRegisteredWithNamedDeduplicator(name string) bool

func (*DeduplicatorDescriptor) Normalize

func (d *DeduplicatorDescriptor) Normalize(normalizer Normalizer)

func (*DeduplicatorDescriptor) RegisterWithDeduplicator added in v1.8.0

func (d *DeduplicatorDescriptor) RegisterWithDeduplicator(deduplicator Deduplicator) error

func (*DeduplicatorDescriptor) Validate

func (d *DeduplicatorDescriptor) Validate(validator structure.Validator)

type Factory

type Factory interface {
	New(inspector Inspector) (Datum, error)
	Init(inspector Inspector) (Datum, error)
}

type Inspector

type Inspector interface {
	GetProperty(key string) *string
	NewMissingPropertyError(key string) error
	NewInvalidPropertyError(key string, value string, allowedValues []string) error
}

type Normalizable

type Normalizable interface {
	Normalize(normalizer Normalizer)
}

type Normalizer

type Normalizer interface {
	structure.OriginReporter
	structure.SourceReporter
	structure.MetaReporter

	structure.ErrorReporter

	Normalize(normalizable Normalizable) error

	AddData(data ...Datum)

	WithOrigin(origin structure.Origin) Normalizer
	WithSource(source structure.Source) Normalizer
	WithMeta(meta interface{}) Normalizer
	WithReference(reference string) Normalizer
}

type ObjectParser

type ObjectParser interface {
	Logger() log.Logger

	SetMeta(meta interface{})

	AppendError(reference interface{}, err *service.Error)

	Object() *map[string]interface{}

	ParseBoolean(key string) *bool
	ParseInteger(key string) *int
	ParseFloat(key string) *float64
	ParseString(key string) *string
	ParseStringArray(key string) *[]string
	ParseObject(key string) *map[string]interface{}
	ParseObjectArray(key string) *[]map[string]interface{}
	ParseInterface(key string) *interface{}
	ParseInterfaceArray(key string) *[]interface{}
	ParseDatum(key string) *Datum
	ParseDatumArray(key string) *[]Datum

	ProcessNotParsed()

	NewChildObjectParser(key string) ObjectParser
	NewChildArrayParser(key string) ArrayParser
}

Jump to

Keyboard shortcuts

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