Documentation ¶
Index ¶
- Variables
- type DataRepository
- type MongoDataRepository
- func (u *MongoDataRepository) GetByUsername(ctx context.Context, username string) (*User, error)
- func (u *MongoDataRepository) Save(ctx context.Context, user *User) (*mongo.InsertOneResult, error)
- func (u *MongoDataRepository) UpdatePassword(ctx context.Context, username string, password *Password) (*mongo.UpdateResult, error)
- type Password
- type User
Constants ¶
This section is empty.
Variables ¶
var ErrCouldNotFetch = status.Error( codes.Internal, "error occurred while fetching the user", )
ErrCouldNotFetch is a GRPC error that occurs when an unknown error occurs while fetching a user.
var ErrNotFound = status.Error( codes.NotFound, "no user with that username exists", )
ErrNotFound is a GRPC error that occurs when the user was not found.
var ErrNotSaved = status.Error( codes.Internal, "could not save the user details", )
ErrNotSaved is a GRPC error that occurs when an unknown error occurs while saving a user.
var ErrPasswordUpdate = status.Error(codes.Internal, "could not save password")
ErrPasswordUpdate is a GRPC error that occurs when the password could not be updated.
var ErrUsernameTaken = status.Error(codes.AlreadyExists, "username is taken")
ErrUsernameTaken is a GRPC error that occurs when attempting to save a new user and the provided username is taken.
Functions ¶
This section is empty.
Types ¶
type DataRepository ¶
type DataRepository interface { // Save saves the details of the user to the collection. Save(ctx context.Context, user *User) (*mongo.InsertOneResult, error) // GetByUsername fetches the details of the user by their username. GetByUsername(ctx context.Context, username string) (*User, error) // UpdatePassword updates the password of the user by the username. UpdatePassword( ctx context.Context, username string, password *Password, ) (*mongo.UpdateResult, error) }
DataRepository is an interface to the operations that can be performed on the users collection.
type MongoDataRepository ¶
type MongoDataRepository struct {
// contains filtered or unexported fields
}
func NewUserRepository ¶
NewUserRepository creates a new repository for performing database operations in the users collection.
func (*MongoDataRepository) GetByUsername ¶
func (*MongoDataRepository) Save ¶
func (u *MongoDataRepository) Save( ctx context.Context, user *User, ) (*mongo.InsertOneResult, error)
func (*MongoDataRepository) UpdatePassword ¶
func (u *MongoDataRepository) UpdatePassword( ctx context.Context, username string, password *Password, ) (*mongo.UpdateResult, error)