services

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2020 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidID is the error returned by services when
	// the id provided in the call to the service is invalid
	ErrInvalidID = errors.New("invalid id")
	// ErrNotFound is the error returned by services when
	// the requested object could not be found
	ErrNotFound = errors.New("requested object not found")
	// ErrSendgridRejectedRequest is the error returned by EmailService
	// when Sendgrid rejects an email request
	ErrSendgridRejectedRequest = errors.New("email request rejected by Sendgrid")

	// User service errors
	ErrEmailTaken              = errors.New("email is already taken")
	ErrNameTaken               = errors.New("name is already taken")
	ErrInvalidToken            = errors.New("invalid auth token")
	ErrInvalidUserUpdateParams = errors.New("invlid user update params")

	// Team service errors
	ErrUserInTeam    = errors.New("user is already in a team")
	ErrUserNotInTeam = errors.New("user is not in a team")
)

Functions

This section is empty.

Types

type EmailService

type EmailService interface {
	SendEmail(subject, htmlBody, plainTextBody, senderName, senderEmail, recipientName, recipientEmail string) error

	SendEmailVerificationEmail(user entities.User) error
	SendEmailVerificationEmailForUserWithEmail(ctx context.Context, email string) error

	SendPasswordResetEmail(user entities.User) error
	SendPasswordResetEmailForUserWithEmail(ctx context.Context, email string) error
}

EmailService is used to send out emails

type TeamService

type TeamService interface {
	CreateTeam(ctx context.Context, name, creatorID string) (*entities.Team, error)
	CreateTeamForUserWithID(ctx context.Context, name, userID string) (*entities.Team, error)
	CreateTeamForUserWithJWT(ctx context.Context, name, jwt string) (*entities.Team, error)

	GetTeams(context.Context) ([]entities.Team, error)

	GetTeamWithID(ctx context.Context, id string) (*entities.Team, error)
	GetTeamWithName(ctx context.Context, name string) (*entities.Team, error)
	GetTeamForUserWithID(ctx context.Context, userID string) (*entities.Team, error)
	GetTeamForUserWithEmail(ctx context.Context, email string) (*entities.Team, error)
	GetTeamForUserWithJWT(ctx context.Context, jwt string) (*entities.Team, error)

	DeleteTeamWithID(ctx context.Context, id string) error

	AddUserWithIDToTeamWithID(ctx context.Context, userID string, teamID string) error
	AddUserWithJWTToTeamWithID(ctx context.Context, jwt string, teamID string) error

	RemoveUserWithIDFromTheirTeam(ctx context.Context, userID string) error
	RemoveUserWithJWTFromTheirTeam(ctx context.Context, jwt string) error
}

type UserService

type UserService interface {
	CreateUser(ctx context.Context, name, email, password string) (*entities.User, error)

	GetUsers(ctx context.Context) ([]entities.User, error)
	GetUsersWithTeam(ctx context.Context, teamID string) ([]entities.User, error)
	GetUsersWithAuthLevel(ctx context.Context, authLevel authlevels.AuthLevel) ([]entities.User, error)

	GetUserWithID(ctx context.Context, userID string) (*entities.User, error)
	GetUserWithEmail(ctx context.Context, email string) (*entities.User, error)
	GetUserWithEmailAndPwd(ctx context.Context, email, pwd string) (*entities.User, error)
	GetUserWithJWT(ctx context.Context, jwt string) (*entities.User, error)

	GetTeammatesForUserWithID(ctx context.Context, userID string) ([]entities.User, error)
	GetTeammatesForUserWithJWT(ctx context.Context, jwt string) ([]entities.User, error)

	UpdateUsersWithTeam(ctx context.Context, teamID string, params UserUpdateParams) error
	UpdateUsersWithAuthLevel(ctx context.Context, authLevel authlevels.AuthLevel, params UserUpdateParams) error

	UpdateUserWithID(ctx context.Context, userID string, params UserUpdateParams) error
	UpdateUserWithEmail(ctx context.Context, email string, params UserUpdateParams) error
	UpdateUserWithJWT(ctx context.Context, jwt string, params UserUpdateParams) error

	DeleteUserWithID(ctx context.Context, userID string) error
	DeleteUserWithEmail(ctx context.Context, email string) error

	ResetPasswordForUserWithIDAndEmail(ctx context.Context, userID string, email string, newPwd string) error
	ResetPasswordForUserWithJWTAndEmail(ctx context.Context, jwt string, email string, newPwd string) error
}

UserService is the service for interactions with a remote users repository

type UserUpdateParams

type UserUpdateParams map[entities.UserField]interface{}

func BuildUserUpdateParams

func BuildUserUpdateParams(stringParams map[entities.UserField]string) (builtParams UserUpdateParams, err error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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