models

package
v0.0.0-...-3737249 Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Models

type Models struct {

	// ** Register your models here.
	Users            User
	Tokens           Token
	RememberMeTokens RememberMeToken
}

Models is the wrapper for all database models any models inserted here (and in the New function) are easily accessible throughout the entire application

func New

func New(database goravel.Database) *Models

New initializes the models package for use

type RememberMeToken

type RememberMeToken struct {
	ID              int       `db:"id,omitempty"`
	UserID          int       `db:"user_id"`
	RememberMeToken string    `db:"remember_me_token"`
	CreatedAt       time.Time `db:"created_at"`
	UpdatedAt       time.Time `db:"updated_at"`
}

func (*RememberMeToken) Delete

func (t *RememberMeToken) Delete(rememberMeToken string) error

func (*RememberMeToken) GenerateToken

func (t *RememberMeToken) GenerateToken() (string, error)

func (*RememberMeToken) GetByToken

func (t *RememberMeToken) GetByToken(token string) (*RememberMeToken, error)

GetByToken returns a token by it's remember me token

func (*RememberMeToken) InsertToken

func (t *RememberMeToken) InsertToken(userID int, hash ...string) (string, error)

func (*RememberMeToken) Table

func (t *RememberMeToken) Table() string

type Token

type Token struct {
	ID        int       `db:"id" json:"id"`
	UserID    int       `db:"user_id" json:"user_id"`
	FirstName string    `db:"first_name" json:"first_name"`
	Email     string    `db:"email" json:"email"`
	PlainText string    `db:"token" json:"token"`
	Hash      []byte    `db:"token_hash" json:"-"`
	CreatedAt time.Time `db:"created_at" json:"created_at"`
	UpdatedAt time.Time `db:"updated_at" json:"updated_at"`
	Expires   time.Time `db:"expiry" json:"expiry"`
}

func (*Token) AuthenticateToken

func (t *Token) AuthenticateToken(r *http.Request) (*User, error)

func (*Token) Delete

func (t *Token) Delete(id int) error

func (*Token) DeleteByToken

func (t *Token) DeleteByToken(plainText string) error

func (*Token) GenerateToken

func (t *Token) GenerateToken(userID int, ttl time.Duration) (*Token, error)

func (*Token) Get

func (t *Token) Get(id int) (*Token, error)

func (*Token) GetByToken

func (t *Token) GetByToken(plainText string) (*Token, error)

GetByToken returns a token by its plain text value

func (*Token) GetTokensForUser

func (t *Token) GetTokensForUser(id int) ([]*Token, error)

func (*Token) GetUserForToken

func (t *Token) GetUserForToken(token string) (*User, error)

GetUserForToken returns the user associated with a token

func (*Token) Insert

func (t *Token) Insert(token Token, u User) error

func (*Token) Table

func (t *Token) Table() string

func (*Token) ValidToken

func (t *Token) ValidToken(token string) (bool, error)

type User

type User struct {
	ID        int       `db:"id,omitempty"` // The omitempty tag is primarily used in JSON and XML serialization to indicate that the field should be omitted from the output if it has an empty value.
	FirstName string    `db:"first_name"`
	LastName  string    `db:"last_name"`
	Email     string    `db:"email"`
	Active    int       `db:"user_active"`
	Password  string    `db:"password"`
	CreatedAt time.Time `db:"created_at"`
	UpdatedAt time.Time `db:"updated_at"`
	Token     Token     `db:"-"` // The - tag indicates that the field should be ignored entirely during serialization or deserialization.
}

User is the type for a user

func (*User) CheckForRememberToken

func (u *User) CheckForRememberToken(id int, token string) bool

CheckForRememberToken checks for a remember_me_token associated with a user

func (*User) Delete

func (u *User) Delete(id int) error

Delete deletes a user by id

func (*User) Get

func (u *User) Get(id int) (*User, error)

Get gets one user by id

func (*User) GetAll

func (u *User) GetAll() ([]*User, error)

GetAll returns a slice of all users

func (*User) GetByEmail

func (u *User) GetByEmail(email string) (*User, error)

GetByEmail gets one user, by email

func (*User) Insert

func (u *User) Insert(theUser User) (int, error)

Insert inserts a new user, and returns the newly inserted id

func (*User) PasswordMatches

func (u *User) PasswordMatches(plainText string) (bool, error)

PasswordMatches verifies a supplied password against the hash stored in the database. It returns true if valid, and false if the password does not match, or if there is an error. Note that an error is only returned if something goes wrong (since an invalid password is not an error -- it's just the wrong password))

func (*User) ResetPassword

func (u *User) ResetPassword(id int, password string) error

ResetPassword resets a users's password, by id, using supplied password

func (*User) Table

func (u *User) Table() string

Table returns the table name associated with this model in the database

func (*User) Update

func (u *User) Update(theUser User) error

Update updates a user record in the database

func (*User) Validate

func (u *User) Validate(validator *goravel.Validation)

Jump to

Keyboard shortcuts

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