db

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2022 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Overview

Package db contains user related CRUD functionality.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Store

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

Store manages the set of APIs for user access.

func NewStore

func NewStore(log *zap.SugaredLogger, db *sqlx.DB) Store

NewStore constructs a data for api access.

func (Store) Create

func (s Store) Create(ctx context.Context, user User) error

Create inserts a new user into the database.

func (Store) QueryByEmail

func (s Store) QueryByEmail(ctx context.Context, email string) (User, error)

QueryByEmail gets the specified user from the database by email.

func (Store) QueryByID

func (s Store) QueryByID(ctx context.Context, userID string) (User, error)

QueryByID gets the specified user from the database.

func (Store) Tran

func (s Store) Tran(tx sqlx.ExtContext) Store

Tran return new Store with transaction in it.

func (Store) Update

func (s Store) Update(ctx context.Context, user User) error

Update replaces a user document in the database.

func (Store) WithinTran

func (s Store) WithinTran(ctx context.Context, fn func(sqlx.ExtContext) error) error

WithinTran runs passed function and do commit/rollback at the end.

type User

type User struct {
	ID              string         `db:"user_id"`
	DefaultWid      string         `db:"default_wid"`
	Email           string         `db:"email"`
	PasswordHash    []byte         `db:"password_hash"`
	FullName        string         `db:"full_name"`
	TimeOfDayFormat string         `db:"time_of_day_format" `
	DateFormat      string         `db:"date_format" `
	BeginningOfWeek int            `db:"beginning_of_week"`
	Language        string         `db:"language"`
	ImageURL        string         `db:"image_url"`
	DateCreated     time.Time      `db:"date_created"`
	DateUpdated     time.Time      `db:"date_updated"`
	TimeZone        string         `db:"timezone"`
	Invitation      pq.StringArray `db:"invitation"`
	DurationFormat  string         `db:"duration_format"`
}

User represent the structure we need for moving data between the app and the database.

Jump to

Keyboard shortcuts

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