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.
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.
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.
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.
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.
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.
Index ¶
- Constants
- Variables
- type Database
- type Feedback
- type FeedbackKey
- type Item
- type Measurement
- type MongoDB
- func (db *MongoDB) BatchInsertFeedback(feedback []Feedback, insertUser, insertItem bool) error
- func (db *MongoDB) BatchInsertItem(items []Item) error
- func (db *MongoDB) Close() error
- func (db *MongoDB) DeleteItem(itemId string) error
- func (db *MongoDB) DeleteUser(userId string) error
- func (db *MongoDB) DeleteUserItemFeedback(userId, itemId string, feedbackType *string) (int, error)
- func (db *MongoDB) GetFeedback(cursor string, n int, feedbackType *string) (string, []Feedback, error)
- func (db *MongoDB) GetItem(itemId string) (item Item, err error)
- func (db *MongoDB) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)
- func (db *MongoDB) GetItems(cursor string, n int) (string, []Item, error)
- func (db *MongoDB) GetMeasurements(name string, n int) ([]Measurement, error)
- func (db *MongoDB) GetUser(userId string) (user User, err error)
- func (db *MongoDB) GetUserFeedback(userId string, feedbackType *string) ([]Feedback, error)
- func (db *MongoDB) GetUserItemFeedback(userId, itemId string, feedbackType *string) ([]Feedback, error)
- func (db *MongoDB) GetUsers(cursor string, n int) (string, []User, error)
- func (db *MongoDB) Init() error
- func (db *MongoDB) InsertFeedback(feedback Feedback, insertUser, insertItem bool) error
- func (db *MongoDB) InsertItem(item Item) error
- func (db *MongoDB) InsertMeasurement(measurement Measurement) error
- func (db *MongoDB) InsertUser(user User) error
- type NoDatabase
- func (NoDatabase) BatchInsertFeedback(feedback []Feedback, insertUser, insertItem bool) error
- func (NoDatabase) BatchInsertItem(items []Item) error
- func (NoDatabase) Close() error
- func (NoDatabase) DeleteItem(itemId string) error
- func (NoDatabase) DeleteUser(userId string) error
- func (NoDatabase) DeleteUserItemFeedback(userId, itemId string, feedbackType *string) (int, error)
- func (NoDatabase) GetFeedback(cursor string, n int, feedbackType *string) (string, []Feedback, error)
- func (NoDatabase) GetItem(itemId string) (Item, error)
- func (NoDatabase) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)
- func (NoDatabase) GetItems(cursor string, n int) (string, []Item, error)
- func (NoDatabase) GetMeasurements(name string, n int) ([]Measurement, error)
- func (NoDatabase) GetUser(userId string) (User, error)
- func (NoDatabase) GetUserFeedback(userId string, feedbackType *string) ([]Feedback, error)
- func (NoDatabase) GetUserItemFeedback(userId, itemId string, feedbackType *string) ([]Feedback, error)
- func (NoDatabase) GetUsers(cursor string, n int) (string, []User, error)
- func (NoDatabase) Init() error
- func (NoDatabase) InsertFeedback(feedback Feedback, insertUser, insertItem bool) error
- func (NoDatabase) InsertItem(item Item) error
- func (NoDatabase) InsertMeasurement(measurement Measurement) error
- func (NoDatabase) InsertUser(user User) error
- type Redis
- func (redis *Redis) BatchInsertFeedback(feedback []Feedback, insertUser, insertItem bool) error
- func (redis *Redis) BatchInsertItem(items []Item) error
- func (redis *Redis) Close() error
- func (redis *Redis) DeleteItem(itemId string) error
- func (redis *Redis) DeleteUser(userId string) error
- func (redis *Redis) DeleteUserItemFeedback(userId, itemId string, feedbackType *string) (int, error)
- func (redis *Redis) ForFeedback(ctx context.Context, ...) error
- func (redis *Redis) GetFeedback(cursor string, n int, feedbackType *string) (string, []Feedback, error)
- func (redis *Redis) GetItem(itemId string) (Item, error)
- func (redis *Redis) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)
- func (redis *Redis) GetItems(cursor string, n int) (string, []Item, error)
- func (redis *Redis) GetMeasurements(name string, n int) ([]Measurement, error)
- func (redis *Redis) GetUser(userId string) (User, error)
- func (redis *Redis) GetUserFeedback(userId string, feedbackType *string) ([]Feedback, error)
- func (redis *Redis) GetUserItemFeedback(userId, itemId string, feedbackType *string) ([]Feedback, error)
- func (redis *Redis) GetUsers(cursor string, n int) (string, []User, error)
- func (redis *Redis) Init() error
- func (redis *Redis) InsertFeedback(feedback Feedback, insertUser, insertItem bool) error
- func (redis *Redis) InsertItem(item Item) error
- func (redis *Redis) InsertMeasurement(measurement Measurement) error
- func (redis *Redis) InsertUser(user User) error
- type SQLDatabase
- func (d *SQLDatabase) BatchInsertFeedback(feedback []Feedback, insertUser, insertItem bool) error
- func (d *SQLDatabase) BatchInsertItem(items []Item) error
- func (d *SQLDatabase) Close() error
- func (d *SQLDatabase) DeleteItem(itemId string) error
- func (d *SQLDatabase) DeleteUser(userId string) error
- func (d *SQLDatabase) DeleteUserItemFeedback(userId, itemId string, feedbackType *string) (int, error)
- func (d *SQLDatabase) GetFeedback(cursor string, n int, feedbackType *string) (string, []Feedback, error)
- func (d *SQLDatabase) GetItem(itemId string) (Item, error)
- func (d *SQLDatabase) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)
- func (d *SQLDatabase) GetItems(cursor string, n int) (string, []Item, error)
- func (d *SQLDatabase) GetMeasurements(name string, n int) ([]Measurement, error)
- func (d *SQLDatabase) GetUser(userId string) (User, error)
- func (d *SQLDatabase) GetUserFeedback(userId string, feedbackType *string) ([]Feedback, error)
- func (d *SQLDatabase) GetUserItemFeedback(userId, itemId string, feedbackType *string) ([]Feedback, error)
- func (d *SQLDatabase) GetUsers(cursor string, n int) (string, []User, error)
- func (d *SQLDatabase) Init() error
- func (d *SQLDatabase) InsertFeedback(feedback Feedback, insertUser, insertItem bool) error
- func (d *SQLDatabase) InsertItem(item Item) error
- func (d *SQLDatabase) InsertMeasurement(measurement Measurement) error
- func (d *SQLDatabase) InsertUser(user User) error
- type User
Constants ¶
const ( ErrUserNotExist = "user not exist" ErrItemNotExist = "item not exist" )
Variables ¶
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", }) )
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) }
type Feedback ¶
type Feedback struct { FeedbackKey Timestamp time.Time Comment string }
Feedback stores feedback.
type FeedbackKey ¶
FeedbackKey identifies feedback.
func FeedbackKeyFromString ¶
func FeedbackKeyFromString(s string) (*FeedbackKey, error)
func (*FeedbackKey) ToString ¶
func (k *FeedbackKey) ToString() (string, error)
type Measurement ¶
type MongoDB ¶
type MongoDB struct {
// contains filtered or unexported fields
}
func (*MongoDB) BatchInsertFeedback ¶
func (*MongoDB) BatchInsertItem ¶
func (*MongoDB) DeleteItem ¶
func (*MongoDB) DeleteUser ¶
func (*MongoDB) DeleteUserItemFeedback ¶
func (*MongoDB) GetFeedback ¶
func (*MongoDB) GetItemFeedback ¶
func (*MongoDB) GetMeasurements ¶
func (db *MongoDB) GetMeasurements(name string, n int) ([]Measurement, error)
func (*MongoDB) GetUserFeedback ¶
func (*MongoDB) GetUserItemFeedback ¶
func (*MongoDB) InsertFeedback ¶
func (*MongoDB) InsertItem ¶
func (*MongoDB) InsertMeasurement ¶
func (db *MongoDB) InsertMeasurement(measurement Measurement) error
func (*MongoDB) InsertUser ¶
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) GetItemFeedback ¶
func (NoDatabase) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)
func (NoDatabase) GetMeasurements ¶
func (NoDatabase) GetMeasurements(name string, n int) ([]Measurement, 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) 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) BatchInsertItem ¶
func (*Redis) DeleteItem ¶
func (*Redis) DeleteUser ¶
func (*Redis) DeleteUserItemFeedback ¶
func (*Redis) ForFeedback ¶
func (*Redis) GetFeedback ¶
func (*Redis) GetItemFeedback ¶
func (*Redis) GetMeasurements ¶
func (redis *Redis) GetMeasurements(name string, n int) ([]Measurement, error)
func (*Redis) GetUserFeedback ¶
func (*Redis) GetUserItemFeedback ¶
func (*Redis) InsertFeedback ¶
func (*Redis) InsertItem ¶
func (*Redis) InsertMeasurement ¶
func (redis *Redis) InsertMeasurement(measurement Measurement) error
func (*Redis) InsertUser ¶
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 (*SQLDatabase) GetItemFeedback ¶
func (d *SQLDatabase) GetItemFeedback(itemId string, feedbackType *string) ([]Feedback, error)
func (*SQLDatabase) GetMeasurements ¶
func (d *SQLDatabase) GetMeasurements(name string, n int) ([]Measurement, 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) 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