user

package
v0.0.0-...-b8bd235 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2020 License: MPL-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateTokenFor

func CreateTokenFor(userId string) (string, error)

func DeleteJWTCookie

func DeleteJWTCookie(c echo.Context)

func ParseToken

func ParseToken(jwtToken string) (*jwt.Token, error)

func SetJWTCookie

func SetJWTCookie(c echo.Context, token string)

Types

type AuthDriver

type AuthDriver interface {
	FindUserByID(id string) (*User, error)
}

type AuthHandler

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

func NewAuthHandler

func NewAuthHandler(mongoDB *mongodb.MongoDB) *AuthHandler

func (*AuthHandler) TokenAuthentication

func (h *AuthHandler) TokenAuthentication(next echo.HandlerFunc) echo.HandlerFunc

type Driver

type Driver interface {
	InsertUser(u *User) (*User, error)
	FindUserByEmail(email string) (*User, error)
	FindUserByID(id string) (*User, error)

	UpdateUserNotification(user *User) error
	UpdateUserEmail(user *User) error
}

type Email

type Email struct {
	Address               string    `validate:"required,max=64,email" json:"address" bson:"address"`
	Hash                  string    `json:"hash" bson:"hash"`
	Confirmed             bool      `json:"confirmed" bson:"confirmed"`
	ExpireAt              time.Time `json:"expireAt" bson:"expireAt"`
	ConfirmedAt           time.Time `json:"confirmedAt" bson:"confirmedAt"`
	ConfirmationRequested bool      `json:"confirmationRequested" bson:"confirmationRequested"`
}

type EmailResponse

type EmailResponse struct {
	Confirmed   bool      `json:"confirmed" bson:"confirmed"`
	ConfirmedAt time.Time `json:"confirmedAt" bson:"confirmedAt"`
}

type Module

type Module struct {
	Handler *handler
	// contains filtered or unexported fields
}

func NewModule

func NewModule(mongoDB *mongodb.MongoDB) *Module

func (*Module) RegisterRoutes

func (m *Module) RegisterRoutes(api *echo.Group)

type User

type User struct {
	ID           string `json:"id,omitempty" bson:"_id"`
	Email        Email  `validate:"required" json:"email" bson:"email"`
	Password     string `validate:"required,max=128" json:"password" bson:"password"`
	Notification bool   `json:"notification,omitempty" bson:"notification" query:"notification"`
}

func NewUser

func NewUser(u UserRequest) *User

type UserDriver

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

func (*UserDriver) FindUserByEmail

func (d *UserDriver) FindUserByEmail(email string) (*User, error)

func (*UserDriver) FindUserByID

func (d *UserDriver) FindUserByID(id string) (*User, error)

func (*UserDriver) InsertUser

func (d *UserDriver) InsertUser(u *User) (*User, error)

func (*UserDriver) UpdateUserEmail

func (d *UserDriver) UpdateUserEmail(user *User) error

func (*UserDriver) UpdateUserNotification

func (d *UserDriver) UpdateUserNotification(user *User) error

type UserDriverMock

type UserDriverMock struct {
	InsertUserCalled bool
	InsertedUser     *User
	InsertUserErr    error

	FindUserByEmailCalled bool
	FindUserByEmailUser   *User
	FindUserByEmailErr    error

	FindUserByIDCalled bool
	FindUserByIDUser   *User
	FindUserByIDErr    error

	UpdateUserNotificationCalled bool
	UpdateUserNotificationUser   *User
	UpdateUserNotificationErr    error

	UpdateUserEmailCalled bool
	UpdateUserEmailUser   *User
	UpdateUserEmailErr    error
}

func (*UserDriverMock) FindUserByEmail

func (d *UserDriverMock) FindUserByEmail(email string) (*User, error)

func (*UserDriverMock) FindUserByID

func (d *UserDriverMock) FindUserByID(id string) (*User, error)

func (*UserDriverMock) InsertUser

func (d *UserDriverMock) InsertUser(u *User) (*User, error)

func (*UserDriverMock) UpdateUserEmail

func (d *UserDriverMock) UpdateUserEmail(user *User) error

func (*UserDriverMock) UpdateUserNotification

func (d *UserDriverMock) UpdateUserNotification(user *User) error

type UserRequest

type UserRequest struct {
	Email    string `validate:"required" json:"email" bson:"email"`
	Password string `validate:"required,max=128" json:"password" bson:"password"`
}

type UserResponse

type UserResponse struct {
	ID    string        `json:"id,omitempty" bson:"_id"`
	Email EmailResponse `validate:"required" json:"email" bson:"email"`
}

Jump to

Keyboard shortcuts

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