models

package
v0.0.0-...-16abdb1 Latest Latest
Warning

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

Go to latest
Published: Oct 17, 2021 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckSession

func CheckSession(sessionKey string) (sessionValue string, err error)

func Login

func Login(email, password, ip string) (sessionKey string, err error)

func Migrate

func Migrate() error

func ParseSessionValue

func ParseSessionValue(sessionValue string) (id int, isAdmin bool)

ParseSessionValue finds the user's ID and whether they are an admin. See .String() methods for types that implement the User interface for more information.

func UpdatePassword

func UpdatePassword(u User, userID int, rawPassword string) error

Types

type Admin

type Admin struct {
	ID         int       `gorm:"primaryKey;autoIncrement" json:"id"`
	Email      string    `gorm:"size:255;unique;not null" json:"email" validate:"email"`
	Name       string    `gorm:"size:255" json:"name"`
	PasswordID *int      `gorm:"unique" json:"-"`
	CreatedAt  time.Time `gorm:"type:timestamp;not null" json:"createdAt"`
	UpdatedAt  time.Time `gorm:"type:timestamp;not null" json:"updatedAt"`

	Password *Password `json:"-"`
}

func (*Admin) Create

func (a *Admin) Create() (interface{}, error)

func (*Admin) Delete

func (a *Admin) Delete(id int) error

func (*Admin) Get

func (a *Admin) Get(id int) error

func (*Admin) RecordLogin

func (a *Admin) RecordLogin(ip string) error

func (*Admin) Search

func (*Admin) Search(values url.Values) (interface{}, error)

func (*Admin) String

func (a *Admin) String() string

type Creater

type Creater interface {
	Create() (interface{}, error)
}

type Deleter

type Deleter interface {
	Delete(id int) error
}

type Getter

type Getter interface {
	Get(id int) error
}

type InvitationReference

type InvitationReference struct {
	ID              int `gorm:"primaryKey;autoIncrement"`
	MemberID        int `gorm:"not null"`
	InvitedMemberID int `gorm:"unique;not null"`

	Member        Member
	InvitedMember Member
}

type LoginRecord

type LoginRecord struct {
	ID        int    `gorm:"primaryKey;autoIncrement"`
	IP        string `gorm:"size:64"`
	AdminID   *int
	MemberID  *int
	CreatedAt time.Time `gorm:"type:timestamp;not null"`

	Admin  *Admin
	Member *Member
}

type Member

type Member struct {
	ID         int          `gorm:"primaryKey;autoIncrement" json:"id"`
	Email      string       `gorm:"size:255;unique;not null" json:"email" validate:"email"`
	Name       string       `gorm:"size:255" json:"name"`
	PasswordID *int         `gorm:"unique" json:"-"`
	Phone      string       `gorm:"size:64" json:"phone" validate:"omitempty,e164"`
	Approved   bool         `gorm:"type:boolean not null default false" json:"approved"`
	Source     MemberSource `gorm:"size:16" json:"source" validate:"required"`
	CreatedAt  time.Time    `gorm:"type:timestamp;not null" json:"createdAt"`
	UpdatedAt  time.Time    `gorm:"type:timestamp;not null" json:"updatedAt"`

	Password *Password `json:"-"`
}

func (*Member) BeforeCreate

func (m *Member) BeforeCreate(tx *gorm.DB) error

func (*Member) Create

func (m *Member) Create() (interface{}, error)

func (*Member) Delete

func (m *Member) Delete(id int) error

func (*Member) Get

func (m *Member) Get(id int) error

func (*Member) RecordLogin

func (m *Member) RecordLogin(ip string) error

func (*Member) Search

func (*Member) Search(values url.Values) (interface{}, error)

func (*Member) String

func (m *Member) String() string

type MemberSource

type MemberSource string
const (
	MemberSourceGuestBook   MemberSource = "guestbook"
	MemberSourceInPerson    MemberSource = "in person"
	MemberSourcePastBooking MemberSource = "past booking"
)

type Password

type Password struct {
	ID        int       `gorm:"primaryKey;autoIncrement" json:"id"`
	Hash      []byte    `gorm:"type:char(60)" json:"-"`
	CreatedAt time.Time `gorm:"type:timestamp;not null" json:"createdAt"`
}

func (*Password) String

func (p *Password) String() string

type Searcher

type Searcher interface {
	Search(url.Values) (interface{}, error)
}

type User

type User interface {
	Getter
	String() string
	RecordLogin(string) error
	// contains filtered or unexported methods
}

Jump to

Keyboard shortcuts

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