data

package
v0.2.0-rc0 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2021 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Copyright 2020 gorse Project Authors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	ErrUserNotExist = "user not exist"
	ErrItemNotExist = "item not exist"
)

Variables

View Source
var (
	GetItemLatency = promauto.NewHistogram(prometheus.HistogramOpts{
		Name: "get_item_latency",
		Help: "Latency of GetItem",
	})
	InsertItemLatency = promauto.NewHistogram(prometheus.HistogramOpts{
		Name: "insert_item_latency",
		Help: "Latency of InsertItem",
	})
	InsertFeedbackLatency = promauto.NewHistogram(prometheus.HistogramOpts{
		Name: "insert_feedback_latency",
		Help: "Latency of InsertFeedback",
	})
	GetUserFeedbackLatency = promauto.NewHistogram(prometheus.HistogramOpts{
		Name: "get_user_feedback_latency",
		Help: "Latency of GetUserFeedback",
	})
	GetItemFeedbackLatency = promauto.NewHistogram(prometheus.HistogramOpts{
		Name: "get_item_feedback_latency",
		Help: "Latency of GetItemFeedback",
	})
	GetUserItemFeedbackLatency = promauto.NewHistogram(prometheus.HistogramOpts{
		Name: "get_user_item_feedback_latency",
		Help: "Latency of GetUserItemFeedback",
	})
)
View Source
var NoDatabaseError = fmt.Errorf("no database specified for datastore")

Functions

This section is empty.

Types

type Database

type Database interface {
	Init() error
	Close() error
	// items
	InsertItem(item Item) error
	BatchInsertItem(items []Item) error
	DeleteItem(itemId string) error
	GetItem(itemId string) (Item, error)
	GetItems(cursor string, n int) (string, []Item, error)
	GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)
	// users
	InsertUser(user User) error
	DeleteUser(userId string) error
	GetUser(userId string) (User, error)
	GetUsers(cursor string, n int) (string, []User, error)
	GetUserFeedback(userId string, feedbackType *string) ([]Feedback, error)
	// feedback
	GetUserItemFeedback(userId, itemId string, feedbackType *string) ([]Feedback, error)
	DeleteUserItemFeedback(userId, itemId string, feedbackType *string) (int, error)
	InsertFeedback(feedback Feedback, insertUser, insertItem bool) error
	BatchInsertFeedback(feedback []Feedback, insertUser, insertItem bool) error
	GetFeedback(cursor string, n int, feedbackType *string) (string, []Feedback, error)
	// measurement
	InsertMeasurement(measurement Measurement) error
	GetMeasurements(name string, n int) ([]Measurement, error)
}

func Open

func Open(path string) (Database, error)

Open a connection to a database.

type Feedback

type Feedback struct {
	FeedbackKey
	Timestamp time.Time
	Comment   string
}

Feedback stores feedback.

type FeedbackKey

type FeedbackKey struct {
	FeedbackType string
	UserId       string
	ItemId       string
}

FeedbackKey identifies feedback.

func FeedbackKeyFromString

func FeedbackKeyFromString(s string) (*FeedbackKey, error)

func (*FeedbackKey) ToString

func (k *FeedbackKey) ToString() (string, error)

type Item

type Item struct {
	ItemId    string
	Timestamp time.Time
	Labels    []string
	Comment   string
}

Item stores meta data about item.

type Measurement

type Measurement struct {
	Name      string
	Timestamp time.Time
	Value     float32
	Comment   string
}

type MongoDB

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

func (*MongoDB) BatchInsertFeedback

func (db *MongoDB) BatchInsertFeedback(feedback []Feedback, insertUser, insertItem bool) error

func (*MongoDB) BatchInsertItem

func (db *MongoDB) BatchInsertItem(items []Item) error

func (*MongoDB) Close

func (db *MongoDB) Close() error

func (*MongoDB) DeleteItem

func (db *MongoDB) DeleteItem(itemId string) error

func (*MongoDB) DeleteUser

func (db *MongoDB) DeleteUser(userId string) error

func (*MongoDB) DeleteUserItemFeedback

func (db *MongoDB) DeleteUserItemFeedback(userId, itemId string, feedbackType *string) (int, error)

func (*MongoDB) GetFeedback

func (db *MongoDB) GetFeedback(cursor string, n int, feedbackType *string) (string, []Feedback, error)

func (*MongoDB) GetItem

func (db *MongoDB) GetItem(itemId string) (item Item, err error)

func (*MongoDB) GetItemFeedback

func (db *MongoDB) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)

func (*MongoDB) GetItems

func (db *MongoDB) GetItems(cursor string, n int) (string, []Item, error)

func (*MongoDB) GetMeasurements

func (db *MongoDB) GetMeasurements(name string, n int) ([]Measurement, error)

func (*MongoDB) GetUser

func (db *MongoDB) GetUser(userId string) (user User, err error)

func (*MongoDB) GetUserFeedback

func (db *MongoDB) GetUserFeedback(userId string, feedbackType *string) ([]Feedback, error)

func (*MongoDB) GetUserItemFeedback

func (db *MongoDB) GetUserItemFeedback(userId, itemId string, feedbackType *string) ([]Feedback, error)

func (*MongoDB) GetUsers

func (db *MongoDB) GetUsers(cursor string, n int) (string, []User, error)

func (*MongoDB) Init

func (db *MongoDB) Init() error

func (*MongoDB) InsertFeedback

func (db *MongoDB) InsertFeedback(feedback Feedback, insertUser, insertItem bool) error

func (*MongoDB) InsertItem

func (db *MongoDB) InsertItem(item Item) error

func (*MongoDB) InsertMeasurement

func (db *MongoDB) InsertMeasurement(measurement Measurement) error

func (*MongoDB) InsertUser

func (db *MongoDB) InsertUser(user User) error

type NoDatabase

type NoDatabase struct{}

func (NoDatabase) BatchInsertFeedback

func (NoDatabase) BatchInsertFeedback(feedback []Feedback, insertUser, insertItem bool) error

func (NoDatabase) BatchInsertItem

func (NoDatabase) BatchInsertItem(items []Item) error

func (NoDatabase) Close

func (NoDatabase) Close() error

func (NoDatabase) DeleteItem

func (NoDatabase) DeleteItem(itemId string) error

func (NoDatabase) DeleteUser

func (NoDatabase) DeleteUser(userId string) error

func (NoDatabase) DeleteUserItemFeedback

func (NoDatabase) DeleteUserItemFeedback(userId, itemId string, feedbackType *string) (int, error)

func (NoDatabase) GetFeedback

func (NoDatabase) GetFeedback(cursor string, n int, feedbackType *string) (string, []Feedback, error)

func (NoDatabase) GetItem

func (NoDatabase) GetItem(itemId string) (Item, error)

func (NoDatabase) GetItemFeedback

func (NoDatabase) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)

func (NoDatabase) GetItems

func (NoDatabase) GetItems(cursor string, n int) (string, []Item, error)

func (NoDatabase) GetMeasurements

func (NoDatabase) GetMeasurements(name string, n int) ([]Measurement, error)

func (NoDatabase) GetUser

func (NoDatabase) GetUser(userId string) (User, error)

func (NoDatabase) GetUserFeedback

func (NoDatabase) GetUserFeedback(userId string, feedbackType *string) ([]Feedback, error)

func (NoDatabase) GetUserItemFeedback

func (NoDatabase) GetUserItemFeedback(userId, itemId string, feedbackType *string) ([]Feedback, error)

func (NoDatabase) GetUsers

func (NoDatabase) GetUsers(cursor string, n int) (string, []User, error)

func (NoDatabase) Init

func (NoDatabase) Init() error

func (NoDatabase) InsertFeedback

func (NoDatabase) InsertFeedback(feedback Feedback, insertUser, insertItem bool) error

func (NoDatabase) InsertItem

func (NoDatabase) InsertItem(item Item) error

func (NoDatabase) InsertMeasurement

func (NoDatabase) InsertMeasurement(measurement Measurement) error

func (NoDatabase) InsertUser

func (NoDatabase) InsertUser(user User) error

type Redis

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

func (*Redis) BatchInsertFeedback

func (redis *Redis) BatchInsertFeedback(feedback []Feedback, insertUser, insertItem bool) error

func (*Redis) BatchInsertItem

func (redis *Redis) BatchInsertItem(items []Item) error

func (*Redis) Close

func (redis *Redis) Close() error

func (*Redis) DeleteItem

func (redis *Redis) DeleteItem(itemId string) error

func (*Redis) DeleteUser

func (redis *Redis) DeleteUser(userId string) error

func (*Redis) DeleteUserItemFeedback

func (redis *Redis) DeleteUserItemFeedback(userId, itemId string, feedbackType *string) (int, error)

func (*Redis) ForFeedback

func (redis *Redis) ForFeedback(ctx context.Context, action func(key, thisFeedbackType, thisUserId, thisItemId string) error) error

func (*Redis) GetFeedback

func (redis *Redis) GetFeedback(cursor string, n int, feedbackType *string) (string, []Feedback, error)

func (*Redis) GetItem

func (redis *Redis) GetItem(itemId string) (Item, error)

func (*Redis) GetItemFeedback

func (redis *Redis) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)

func (*Redis) GetItems

func (redis *Redis) GetItems(cursor string, n int) (string, []Item, error)

func (*Redis) GetMeasurements

func (redis *Redis) GetMeasurements(name string, n int) ([]Measurement, error)

func (*Redis) GetUser

func (redis *Redis) GetUser(userId string) (User, error)

func (*Redis) GetUserFeedback

func (redis *Redis) GetUserFeedback(userId string, feedbackType *string) ([]Feedback, error)

func (*Redis) GetUserItemFeedback

func (redis *Redis) GetUserItemFeedback(userId, itemId string, feedbackType *string) ([]Feedback, error)

func (*Redis) GetUsers

func (redis *Redis) GetUsers(cursor string, n int) (string, []User, error)

func (*Redis) Init

func (redis *Redis) Init() error

func (*Redis) InsertFeedback

func (redis *Redis) InsertFeedback(feedback Feedback, insertUser, insertItem bool) error

func (*Redis) InsertItem

func (redis *Redis) InsertItem(item Item) error

func (*Redis) InsertMeasurement

func (redis *Redis) InsertMeasurement(measurement Measurement) error

func (*Redis) InsertUser

func (redis *Redis) InsertUser(user User) error

type SQLDatabase

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

func (*SQLDatabase) BatchInsertFeedback

func (d *SQLDatabase) BatchInsertFeedback(feedback []Feedback, insertUser, insertItem bool) error

func (*SQLDatabase) BatchInsertItem

func (d *SQLDatabase) BatchInsertItem(items []Item) error

func (*SQLDatabase) Close

func (d *SQLDatabase) Close() error

func (*SQLDatabase) DeleteItem

func (d *SQLDatabase) DeleteItem(itemId string) error

func (*SQLDatabase) DeleteUser

func (d *SQLDatabase) DeleteUser(userId string) error

func (*SQLDatabase) DeleteUserItemFeedback

func (d *SQLDatabase) DeleteUserItemFeedback(userId, itemId string, feedbackType *string) (int, error)

func (*SQLDatabase) GetFeedback

func (d *SQLDatabase) GetFeedback(cursor string, n int, feedbackType *string) (string, []Feedback, error)

func (*SQLDatabase) GetItem

func (d *SQLDatabase) GetItem(itemId string) (Item, error)

func (*SQLDatabase) GetItemFeedback

func (d *SQLDatabase) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)

func (*SQLDatabase) GetItems

func (d *SQLDatabase) GetItems(cursor string, n int) (string, []Item, error)

func (*SQLDatabase) GetMeasurements

func (d *SQLDatabase) GetMeasurements(name string, n int) ([]Measurement, error)

func (*SQLDatabase) GetUser

func (d *SQLDatabase) GetUser(userId string) (User, error)

func (*SQLDatabase) GetUserFeedback

func (d *SQLDatabase) GetUserFeedback(userId string, feedbackType *string) ([]Feedback, error)

func (*SQLDatabase) GetUserItemFeedback

func (d *SQLDatabase) GetUserItemFeedback(userId, itemId string, feedbackType *string) ([]Feedback, error)

func (*SQLDatabase) GetUsers

func (d *SQLDatabase) GetUsers(cursor string, n int) (string, []User, error)

func (*SQLDatabase) Init

func (d *SQLDatabase) Init() error

func (*SQLDatabase) InsertFeedback

func (d *SQLDatabase) InsertFeedback(feedback Feedback, insertUser, insertItem bool) error

func (*SQLDatabase) InsertItem

func (d *SQLDatabase) InsertItem(item Item) error

func (*SQLDatabase) InsertMeasurement

func (d *SQLDatabase) InsertMeasurement(measurement Measurement) error

func (*SQLDatabase) InsertUser

func (d *SQLDatabase) InsertUser(user User) error

type User

type User struct {
	UserId    string
	Labels    []string
	Subscribe []string
	Comment   string
}

User stores meta data about user.

Jump to

Keyboard shortcuts

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