services

package
v1.0.8 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCode

func NewCode(user models.User, Action models.KindCode, Data string) *models.Code

func NewUser

func NewUser(Email, PasswordHash string) *models.User

Types

type AccessTokenCache

type AccessTokenCache struct {
	UserUuid    string `json:"userUuid"`
	RefreshUuid string `json:"refreshUuid"`
}

type AccessTokenClaims

type AccessTokenClaims struct {
	AccessUuid string `json:"accessUuid"`
	UserUuid   string `json:"userUuid"`
	UserRole   string `json:"userRole"`
	Exp        int    `json:"exp"`
	jwt.StandardClaims
}

type CodeService

type CodeService interface {
	GetCode(code string) (*models.Code, error)
}

type CodeServiceImpl

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

func NewCodeServiceImpl

func NewCodeServiceImpl(codeRepo models.CodeRepository) *CodeServiceImpl

func (*CodeServiceImpl) GetCode

func (cs *CodeServiceImpl) GetCode(code string) (*models.Code, error)

type RefreshTokenClaims

type RefreshTokenClaims struct {
	RefreshUuid string `json:"refreshUuid"`
	UserUuid    string `json:"userUuid"`
	UserRole    string `json:"userRole"`
	Exp         int    `json:"exp"`
	jwt.StandardClaims
}

type TokenDetails

type TokenDetails struct {
	AccessToken  string
	RefreshToken string
	AccessUuid   uuid.UUID
	RefreshUuid  uuid.UUID
	AtExpires    int64
	RtExpires    int64
}

TokenDetails is the structure which holds data with JWT tokens

type TokenService

type TokenService interface {
	GetAccessSecret() string
	CreateToken(userUuid string, userRole string) (*TokenDetails, error)
	DecodeRefreshToken(tokenString string) (*RefreshTokenClaims, error)
	DecodeAccessToken(tokenString string) (*AccessTokenClaims, error)
	DropCacheTokens(accessTokenClaims AccessTokenClaims) error
	DropCacheKey(Uuid string) error
	GetCacheValue(Uuid string) (*string, error)
}

type TokenServiceImpl

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

func NewTokenServiceImpl

func NewTokenServiceImpl(cache *redis.Client, accessSecret string, refreshSecret string, accessExpMinutes int, refreshExpMinutes int) *TokenServiceImpl

func (*TokenServiceImpl) CreateToken

func (r *TokenServiceImpl) CreateToken(userUuid string, userRole string) (*TokenDetails, error)

CreateToken returns JWT Token

func (*TokenServiceImpl) DecodeAccessToken

func (r *TokenServiceImpl) DecodeAccessToken(tokenString string) (*AccessTokenClaims, error)

func (*TokenServiceImpl) DecodeRefreshToken

func (r *TokenServiceImpl) DecodeRefreshToken(tokenString string) (*RefreshTokenClaims, error)

func (*TokenServiceImpl) DropCacheKey

func (r *TokenServiceImpl) DropCacheKey(Uuid string) error

DropCacheKey function that will be used to drop the JWTs metadata from Redis

func (*TokenServiceImpl) DropCacheTokens

func (r *TokenServiceImpl) DropCacheTokens(accessTokenClaims AccessTokenClaims) error

func (*TokenServiceImpl) GetAccessSecret

func (r *TokenServiceImpl) GetAccessSecret() string

func (*TokenServiceImpl) GetCacheValue

func (r *TokenServiceImpl) GetCacheValue(Uuid string) (*string, error)

GetCacheValue function that will be used to get the JWTs metadata from Redis

type UserService

type UserService interface {
	RegisterCustomer(email, password, clientIp string) error
	Confirm(code *models.Code) error
	ResetPassword(email, password string) error
	CheckPassword(user *models.User, password string) (bool, error)
	GetActiveUserByEmail(email string) (*models.User, error)
	GetUserByUuid(uuid string) (*models.User, error)
}

type UserServiceImpl

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

func NewUserServiceImpl

func NewUserServiceImpl(codeRepo models.CodeRepository, userRepo models.UserRepository, checkmailRPC *RPCServices.CheckmailRPC, mailRPC *RPCServices.MailRPC, customerRPC *RPCServices.CustomerRPC) *UserServiceImpl

func (*UserServiceImpl) CheckPassword

func (us *UserServiceImpl) CheckPassword(user *models.User, password string) (bool, error)

func (*UserServiceImpl) Confirm

func (us *UserServiceImpl) Confirm(code *models.Code) error

func (*UserServiceImpl) GetActiveUserByEmail

func (us *UserServiceImpl) GetActiveUserByEmail(email string) (*models.User, error)

func (*UserServiceImpl) GetUserByUuid

func (us *UserServiceImpl) GetUserByUuid(uuidStr string) (*models.User, error)

func (*UserServiceImpl) RegisterCustomer

func (us *UserServiceImpl) RegisterCustomer(email, password, clientIp string) error

func (*UserServiceImpl) ResetPassword

func (us *UserServiceImpl) ResetPassword(email, password string) error

Jump to

Keyboard shortcuts

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