data

package
v0.4.15 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2024 License: Apache-2.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUserNotExist = errors.NotFoundf("user")
	ErrItemNotExist = errors.NotFoundf("item")
	ErrNoDatabase   = errors.NotAssignedf("database")
)

Functions

func SortFeedbacks added in v0.3.1

func SortFeedbacks(feedback []Feedback)

SortFeedbacks sorts feedback from latest to oldest.

Types

type ClickHouseFeedback added in v0.4.5

type ClickHouseFeedback struct {
	Feedback `gorm:"embedded"`
	Version  time.Time `gorm:"column:version"`
}

type ClickHouseItem added in v0.4.5

type ClickHouseItem struct {
	SQLItem `gorm:"embedded"`
	Version time.Time `gorm:"column:version"`
}

func NewClickHouseItem added in v0.4.5

func NewClickHouseItem(item Item) (clickHouseItem ClickHouseItem)

type ClickhouseUser added in v0.4.5

type ClickhouseUser struct {
	SQLUser `gorm:"embedded"`
	Version time.Time `gorm:"column:version"`
}

func NewClickhouseUser added in v0.4.5

func NewClickhouseUser(user User) (clickhouseUser ClickhouseUser)

type Database

type Database interface {
	Init() error
	Ping() error
	Close() error
	Optimize() error
	Purge() error
	BatchInsertItems(ctx context.Context, items []Item) error
	BatchGetItems(ctx context.Context, itemIds []string) ([]Item, error)
	DeleteItem(ctx context.Context, itemId string) error
	GetItem(ctx context.Context, itemId string) (Item, error)
	ModifyItem(ctx context.Context, itemId string, patch ItemPatch) error
	GetItems(ctx context.Context, cursor string, n int, beginTime *time.Time) (string, []Item, error)
	GetItemFeedback(ctx context.Context, itemId string, feedbackTypes ...string) ([]Feedback, error)
	BatchInsertUsers(ctx context.Context, users []User) error
	DeleteUser(ctx context.Context, userId string) error
	GetUser(ctx context.Context, userId string) (User, error)
	ModifyUser(ctx context.Context, userId string, patch UserPatch) error
	GetUsers(ctx context.Context, cursor string, n int) (string, []User, error)
	GetUserFeedback(ctx context.Context, userId string, endTime *time.Time, feedbackTypes ...string) ([]Feedback, error)
	GetUserItemFeedback(ctx context.Context, userId, itemId string, feedbackTypes ...string) ([]Feedback, error)
	DeleteUserItemFeedback(ctx context.Context, userId, itemId string, feedbackTypes ...string) (int, error)
	BatchInsertFeedback(ctx context.Context, feedback []Feedback, insertUser, insertItem, overwrite bool) error
	GetFeedback(ctx context.Context, cursor string, n int, beginTime, endTime *time.Time, feedbackTypes ...string) (string, []Feedback, error)
	GetUserStream(ctx context.Context, batchSize int) (chan []User, chan error)
	GetItemStream(ctx context.Context, batchSize int, timeLimit *time.Time) (chan []Item, chan error)
	GetFeedbackStream(ctx context.Context, batchSize int, beginTime, endTime *time.Time, feedbackTypes ...string) (chan []Feedback, chan error)
}

func Open

func Open(path, tablePrefix string) (Database, error)

Open a connection to a database.

type Feedback

type Feedback struct {
	FeedbackKey `gorm:"embedded"`
	Timestamp   time.Time `gorm:"column:time_stamp"`
	Comment     string    `gorm:"column:comment"`
}

Feedback stores feedback.

type FeedbackKey

type FeedbackKey struct {
	FeedbackType string `gorm:"column:feedback_type"`
	UserId       string `gorm:"column:user_id"`
	ItemId       string `gorm:"column:item_id"`
}

FeedbackKey identifies feedback.

type Item

type Item struct {
	ItemId     string `gorm:"primaryKey"`
	IsHidden   bool
	Categories []string `gorm:"serializer:json"`
	Timestamp  time.Time
	Labels     []string `gorm:"serializer:json"`
	Comment    string
}

Item stores meta data about item.

type ItemPatch added in v0.2.8

type ItemPatch struct {
	IsHidden   *bool
	Categories []string
	Timestamp  *time.Time
	Labels     []string
	Comment    *string
}

ItemPatch is the modification on an item.

type MongoDB

type MongoDB struct {
	storage.TablePrefix
	// contains filtered or unexported fields
}

MongoDB is the data storage based on MongoDB.

func (*MongoDB) BatchGetItems added in v0.4.0

func (db *MongoDB) BatchGetItems(ctx context.Context, itemIds []string) ([]Item, error)

func (*MongoDB) BatchInsertFeedback

func (db *MongoDB) BatchInsertFeedback(ctx context.Context, feedback []Feedback, insertUser, insertItem, overwrite bool) error

BatchInsertFeedback returns multiple feedback into MongoDB.

func (*MongoDB) BatchInsertItems added in v0.2.6

func (db *MongoDB) BatchInsertItems(ctx context.Context, items []Item) error

BatchInsertItems insert items into MongoDB.

func (*MongoDB) BatchInsertUsers added in v0.2.6

func (db *MongoDB) BatchInsertUsers(ctx context.Context, users []User) error

BatchInsertUsers inserts a user into MongoDB.

func (*MongoDB) Close

func (db *MongoDB) Close() error

Close connection to MongoDB.

func (*MongoDB) DeleteItem

func (db *MongoDB) DeleteItem(ctx context.Context, itemId string) error

DeleteItem deletes a item from MongoDB.

func (*MongoDB) DeleteUser

func (db *MongoDB) DeleteUser(ctx context.Context, userId string) error

DeleteUser deletes a user from MongoDB.

func (*MongoDB) DeleteUserItemFeedback

func (db *MongoDB) DeleteUserItemFeedback(ctx context.Context, userId, itemId string, feedbackTypes ...string) (int, error)

DeleteUserItemFeedback deletes a feedback return the user id and item id from MongoDB.

func (*MongoDB) GetFeedback

func (db *MongoDB) GetFeedback(ctx context.Context, cursor string, n int, beginTime, endTime *time.Time, feedbackTypes ...string) (string, []Feedback, error)

GetFeedback returns multiple feedback from MongoDB.

func (*MongoDB) GetFeedbackStream added in v0.2.6

func (db *MongoDB) GetFeedbackStream(ctx context.Context, batchSize int, beginTime, endTime *time.Time, feedbackTypes ...string) (chan []Feedback, chan error)

GetFeedbackStream reads feedback from MongoDB by stream.

func (*MongoDB) GetItem

func (db *MongoDB) GetItem(ctx context.Context, itemId string) (item Item, err error)

GetItem returns a item from MongoDB.

func (*MongoDB) GetItemFeedback

func (db *MongoDB) GetItemFeedback(ctx context.Context, itemId string, feedbackTypes ...string) ([]Feedback, error)

GetItemFeedback returns feedback of a item from MongoDB.

func (*MongoDB) GetItemStream added in v0.2.6

func (db *MongoDB) GetItemStream(ctx context.Context, batchSize int, timeLimit *time.Time) (chan []Item, chan error)

GetItemStream read items from MongoDB by stream.

func (*MongoDB) GetItems

func (db *MongoDB) GetItems(ctx context.Context, cursor string, n int, timeLimit *time.Time) (string, []Item, error)

GetItems returns items from MongoDB.

func (*MongoDB) GetUser

func (db *MongoDB) GetUser(ctx context.Context, userId string) (user User, err error)

GetUser returns a user from MongoDB.

func (*MongoDB) GetUserFeedback

func (db *MongoDB) GetUserFeedback(ctx context.Context, userId string, endTime *time.Time, feedbackTypes ...string) ([]Feedback, error)

GetUserFeedback returns feedback of a user from MongoDB.

func (*MongoDB) GetUserItemFeedback

func (db *MongoDB) GetUserItemFeedback(ctx context.Context, userId, itemId string, feedbackTypes ...string) ([]Feedback, error)

GetUserItemFeedback returns a feedback return the user id and item id from MongoDB.

func (*MongoDB) GetUserStream added in v0.2.6

func (db *MongoDB) GetUserStream(ctx context.Context, batchSize int) (chan []User, chan error)

GetUserStream reads users from MongoDB by stream.

func (*MongoDB) GetUsers

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

GetUsers returns users from MongoDB.

func (*MongoDB) Init

func (db *MongoDB) Init() error

Init collections and indices in MongoDB.

func (*MongoDB) ModifyItem added in v0.2.8

func (db *MongoDB) ModifyItem(ctx context.Context, itemId string, patch ItemPatch) error

ModifyItem modify an item in MongoDB.

func (*MongoDB) ModifyUser added in v0.2.8

func (db *MongoDB) ModifyUser(ctx context.Context, userId string, patch UserPatch) error

ModifyUser modify a user in MongoDB.

func (*MongoDB) Optimize added in v0.2.4

func (db *MongoDB) Optimize() error

Optimize is used by ClickHouse only.

func (*MongoDB) Ping added in v0.4.10

func (db *MongoDB) Ping() error

func (*MongoDB) Purge added in v0.4.7

func (db *MongoDB) Purge() error

type NoDatabase

type NoDatabase struct{}

NoDatabase means that no database used.

func (NoDatabase) BatchGetItems added in v0.4.0

func (NoDatabase) BatchGetItems(_ context.Context, _ []string) ([]Item, error)

BatchGetItems method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) BatchInsertFeedback

func (NoDatabase) BatchInsertFeedback(_ context.Context, _ []Feedback, _, _, _ bool) error

BatchInsertFeedback method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) BatchInsertItems added in v0.2.6

func (NoDatabase) BatchInsertItems(_ context.Context, _ []Item) error

BatchInsertItems method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) BatchInsertUsers added in v0.2.6

func (NoDatabase) BatchInsertUsers(_ context.Context, _ []User) error

BatchInsertUsers method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) Close

func (NoDatabase) Close() error

Close method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) DeleteItem

func (NoDatabase) DeleteItem(_ context.Context, _ string) error

DeleteItem method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) DeleteUser

func (NoDatabase) DeleteUser(_ context.Context, _ string) error

DeleteUser method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) DeleteUserItemFeedback

func (NoDatabase) DeleteUserItemFeedback(_ context.Context, _, _ string, _ ...string) (int, error)

DeleteUserItemFeedback method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetFeedback

func (NoDatabase) GetFeedback(_ context.Context, _ string, _ int, _, _ *time.Time, _ ...string) (string, []Feedback, error)

GetFeedback method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetFeedbackStream added in v0.2.6

func (NoDatabase) GetFeedbackStream(_ context.Context, _ int, _, _ *time.Time, _ ...string) (chan []Feedback, chan error)

GetFeedbackStream method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetItem

func (NoDatabase) GetItem(_ context.Context, _ string) (Item, error)

GetItem method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetItemFeedback

func (NoDatabase) GetItemFeedback(_ context.Context, _ string, _ ...string) ([]Feedback, error)

GetItemFeedback method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetItemStream added in v0.2.6

func (NoDatabase) GetItemStream(_ context.Context, _ int, _ *time.Time) (chan []Item, chan error)

GetItemStream method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetItems

func (NoDatabase) GetItems(_ context.Context, _ string, _ int, _ *time.Time) (string, []Item, error)

GetItems method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetUser

func (NoDatabase) GetUser(_ context.Context, _ string) (User, error)

GetUser method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetUserFeedback

func (NoDatabase) GetUserFeedback(_ context.Context, _ string, _ *time.Time, _ ...string) ([]Feedback, error)

GetUserFeedback method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetUserItemFeedback

func (NoDatabase) GetUserItemFeedback(_ context.Context, _, _ string, _ ...string) ([]Feedback, error)

GetUserItemFeedback method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetUserStream added in v0.2.6

func (NoDatabase) GetUserStream(_ context.Context, _ int) (chan []User, chan error)

GetUserStream method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) GetUsers

func (NoDatabase) GetUsers(_ context.Context, _ string, _ int) (string, []User, error)

GetUsers method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) Init

func (NoDatabase) Init() error

Init method of NoDatabase returns ErrNoDatabase.

func (NoDatabase) ModifyItem added in v0.2.8

func (d NoDatabase) ModifyItem(_ context.Context, _ string, _ ItemPatch) error

func (NoDatabase) ModifyUser added in v0.2.8

func (d NoDatabase) ModifyUser(_ context.Context, _ string, _ UserPatch) error

func (NoDatabase) Optimize added in v0.2.4

func (NoDatabase) Optimize() error

Optimize is used by ClickHouse only.

func (NoDatabase) Ping added in v0.4.10

func (NoDatabase) Ping() error

func (NoDatabase) Purge added in v0.4.7

func (NoDatabase) Purge() error

type Redis

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

Redis use Redis as data storage, but used for test only.

func (*Redis) BatchGetItems added in v0.4.0

func (r *Redis) BatchGetItems(ctx context.Context, itemIds []string) ([]Item, error)

func (*Redis) BatchInsertFeedback

func (r *Redis) BatchInsertFeedback(ctx context.Context, feedback []Feedback, insertUser, insertItem, overwrite bool) error

BatchInsertFeedback insert a batch feedback into Redis. If insertUser set, new users will be insert to user table. If insertItem set, new items will be insert to item table.

func (*Redis) BatchInsertItems added in v0.2.6

func (r *Redis) BatchInsertItems(ctx context.Context, items []Item) error

BatchInsertItems inserts a batch of items into Redis.

func (*Redis) BatchInsertUsers added in v0.2.6

func (r *Redis) BatchInsertUsers(ctx context.Context, users []User) error

BatchInsertUsers inserts a batch pf user into Redis.

func (*Redis) Close

func (r *Redis) Close() error

Close Redis connection.

func (*Redis) DeleteItem

func (r *Redis) DeleteItem(ctx context.Context, itemId string) error

DeleteItem deletes a item from Redis.

func (*Redis) DeleteUser

func (r *Redis) DeleteUser(ctx context.Context, userId string) error

DeleteUser deletes a user from Redis.

func (*Redis) DeleteUserItemFeedback

func (r *Redis) DeleteUserItemFeedback(ctx context.Context, userId, itemId string, feedbackTypes ...string) (int, error)

DeleteUserItemFeedback deletes a feedback by user id and item id from Redis.

func (*Redis) ForFeedback

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

func (*Redis) GetFeedback

func (r *Redis) GetFeedback(ctx context.Context, _ string, _ int, beginTime, endTime *time.Time, feedbackTypes ...string) (string, []Feedback, error)

GetFeedback returns feedback from Redis.

func (*Redis) GetFeedbackStream added in v0.2.6

func (r *Redis) GetFeedbackStream(ctx context.Context, batchSize int, beginTime, endTime *time.Time, feedbackTypes ...string) (chan []Feedback, chan error)

GetFeedbackStream reads feedback by stream.

func (*Redis) GetItem

func (r *Redis) GetItem(ctx context.Context, itemId string) (Item, error)

GetItem get a item from Redis.

func (*Redis) GetItemFeedback

func (r *Redis) GetItemFeedback(ctx context.Context, itemId string, feedbackTypes ...string) ([]Feedback, error)

GetItemFeedback returns feedback of an item from Redis.

func (*Redis) GetItemStream added in v0.2.6

func (r *Redis) GetItemStream(ctx context.Context, batchSize int, timeLimit *time.Time) (chan []Item, chan error)

GetItemStream read items from Redis by stream.

func (*Redis) GetItems

func (r *Redis) GetItems(ctx context.Context, cursor string, n int, timeLimit *time.Time) (string, []Item, error)

GetItems returns items from Redis.

func (*Redis) GetUser

func (r *Redis) GetUser(ctx context.Context, userId string) (User, error)

GetUser returns a user from Redis.

func (*Redis) GetUserFeedback

func (r *Redis) GetUserFeedback(ctx context.Context, userId string, endTime *time.Time, feedbackTypes ...string) ([]Feedback, error)

GetUserFeedback returns feedback of a user from Redis.

func (*Redis) GetUserItemFeedback

func (r *Redis) GetUserItemFeedback(ctx context.Context, userId, itemId string, feedbackTypes ...string) ([]Feedback, error)

GetUserItemFeedback gets a feedback by user id and item id from Redis.

func (*Redis) GetUserStream added in v0.2.6

func (r *Redis) GetUserStream(ctx context.Context, batchSize int) (chan []User, chan error)

GetUserStream read users from Redis by stream.

func (*Redis) GetUsers

func (r *Redis) GetUsers(ctx context.Context, cursor string, n int) (string, []User, error)

GetUsers returns users from Redis.

func (*Redis) Init

func (r *Redis) Init() error

Init does nothing.

func (*Redis) ModifyItem added in v0.2.8

func (r *Redis) ModifyItem(ctx context.Context, itemId string, patch ItemPatch) error

ModifyItem modify an item in Redis.

func (*Redis) ModifyUser added in v0.2.8

func (r *Redis) ModifyUser(ctx context.Context, userId string, patch UserPatch) error

ModifyUser modify a user in Redis.

func (*Redis) Optimize added in v0.2.4

func (r *Redis) Optimize() error

Optimize is used by ClickHouse only.

func (*Redis) Ping added in v0.4.10

func (r *Redis) Ping() error

func (*Redis) Purge added in v0.4.7

func (r *Redis) Purge() error

type SQLDatabase

type SQLDatabase struct {
	storage.TablePrefix
	// contains filtered or unexported fields
}

SQLDatabase use MySQL as data storage.

func (*SQLDatabase) BatchGetItems added in v0.4.0

func (d *SQLDatabase) BatchGetItems(ctx context.Context, itemIds []string) ([]Item, error)

func (*SQLDatabase) BatchInsertFeedback

func (d *SQLDatabase) BatchInsertFeedback(ctx context.Context, feedback []Feedback, insertUser, insertItem, overwrite bool) error

BatchInsertFeedback insert a batch feedback into MySQL. If insertUser set, new users will be inserted to user table. If insertItem set, new items will be inserted to item table.

func (*SQLDatabase) BatchInsertItems added in v0.2.6

func (d *SQLDatabase) BatchInsertItems(ctx context.Context, items []Item) error

BatchInsertItems inserts a batch of items into MySQL.

func (*SQLDatabase) BatchInsertUsers added in v0.2.6

func (d *SQLDatabase) BatchInsertUsers(ctx context.Context, users []User) error

BatchInsertUsers inserts users into MySQL.

func (*SQLDatabase) Close

func (d *SQLDatabase) Close() error

Close MySQL connection.

func (*SQLDatabase) DeleteItem

func (d *SQLDatabase) DeleteItem(ctx context.Context, itemId string) error

DeleteItem deletes a item from MySQL.

func (*SQLDatabase) DeleteUser

func (d *SQLDatabase) DeleteUser(ctx context.Context, userId string) error

DeleteUser deletes a user from MySQL.

func (*SQLDatabase) DeleteUserItemFeedback

func (d *SQLDatabase) DeleteUserItemFeedback(ctx context.Context, userId, itemId string, feedbackTypes ...string) (int, error)

DeleteUserItemFeedback deletes a feedback by user id and item id from MySQL.

func (*SQLDatabase) GetFeedback

func (d *SQLDatabase) GetFeedback(ctx context.Context, cursor string, n int, beginTime, endTime *time.Time, feedbackTypes ...string) (string, []Feedback, error)

GetFeedback returns feedback from MySQL.

func (*SQLDatabase) GetFeedbackStream added in v0.2.6

func (d *SQLDatabase) GetFeedbackStream(ctx context.Context, batchSize int, beginTime, endTime *time.Time, feedbackTypes ...string) (chan []Feedback, chan error)

GetFeedbackStream reads feedback by stream.

func (*SQLDatabase) GetItem

func (d *SQLDatabase) GetItem(ctx context.Context, itemId string) (Item, error)

GetItem get a item from MySQL.

func (*SQLDatabase) GetItemFeedback

func (d *SQLDatabase) GetItemFeedback(ctx context.Context, itemId string, feedbackTypes ...string) ([]Feedback, error)

GetItemFeedback returns feedback of a item from MySQL.

func (*SQLDatabase) GetItemStream added in v0.2.6

func (d *SQLDatabase) GetItemStream(ctx context.Context, batchSize int, timeLimit *time.Time) (chan []Item, chan error)

GetItemStream reads items by stream.

func (*SQLDatabase) GetItems

func (d *SQLDatabase) GetItems(ctx context.Context, cursor string, n int, timeLimit *time.Time) (string, []Item, error)

GetItems returns items from MySQL.

func (*SQLDatabase) GetUser

func (d *SQLDatabase) GetUser(ctx context.Context, userId string) (User, error)

GetUser returns a user from MySQL.

func (*SQLDatabase) GetUserFeedback

func (d *SQLDatabase) GetUserFeedback(ctx context.Context, userId string, endTime *time.Time, feedbackTypes ...string) ([]Feedback, error)

GetUserFeedback returns feedback of a user from MySQL.

func (*SQLDatabase) GetUserItemFeedback

func (d *SQLDatabase) GetUserItemFeedback(ctx context.Context, userId, itemId string, feedbackTypes ...string) ([]Feedback, error)

GetUserItemFeedback gets a feedback by user id and item id from MySQL.

func (*SQLDatabase) GetUserStream added in v0.2.6

func (d *SQLDatabase) GetUserStream(ctx context.Context, batchSize int) (chan []User, chan error)

GetUserStream read users by stream.

func (*SQLDatabase) GetUsers

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

GetUsers returns users from MySQL.

func (*SQLDatabase) Init

func (d *SQLDatabase) Init() error

Init tables and indices in MySQL.

func (*SQLDatabase) ModifyItem added in v0.2.8

func (d *SQLDatabase) ModifyItem(ctx context.Context, itemId string, patch ItemPatch) error

ModifyItem modify an item in MySQL.

func (*SQLDatabase) ModifyUser added in v0.2.8

func (d *SQLDatabase) ModifyUser(ctx context.Context, userId string, patch UserPatch) error

ModifyUser modify a user in MySQL.

func (*SQLDatabase) Optimize added in v0.2.4

func (d *SQLDatabase) Optimize() error

Optimize is used by ClickHouse only.

func (*SQLDatabase) Ping added in v0.4.10

func (d *SQLDatabase) Ping() error

func (*SQLDatabase) Purge added in v0.4.7

func (d *SQLDatabase) Purge() error

type SQLDriver added in v0.2.4

type SQLDriver int
const (
	MySQL SQLDriver = iota
	Postgres
	ClickHouse
	SQLite
	Oracle
)

type SQLItem added in v0.4.5

type SQLItem struct {
	ItemId     string    `gorm:"column:item_id;primaryKey"`
	IsHidden   bool      `gorm:"column:is_hidden"`
	Categories string    `gorm:"column:categories"`
	Timestamp  time.Time `gorm:"column:time_stamp"`
	Labels     string    `gorm:"column:labels"`
	Comment    string    `gorm:"column:comment"`
}

func NewSQLItem added in v0.4.5

func NewSQLItem(item Item) (sqlItem SQLItem)

type SQLUser added in v0.4.5

type SQLUser struct {
	UserId    string `gorm:"column:user_id;primaryKey"`
	Labels    string `gorm:"column:labels"`
	Subscribe string `gorm:"column:subscribe"`
	Comment   string `gorm:"column:comment"`
}

func NewSQLUser added in v0.4.5

func NewSQLUser(user User) (sqlUser SQLUser)

type User

type User struct {
	UserId    string   `gorm:"primaryKey"`
	Labels    []string `gorm:"serializer:json"`
	Subscribe []string `gorm:"serializer:json"`
	Comment   string
}

User stores meta data about user.

type UserPatch added in v0.2.8

type UserPatch struct {
	Labels    []string
	Subscribe []string
	Comment   *string
}

UserPatch is the modification on a user.

Jump to

Keyboard shortcuts

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