28 lines
968 B
Go
28 lines
968 B
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
db "github.com/FernandoJVideira/simple_bank/internal/db/sqlc"
|
|
)
|
|
|
|
type UserService interface {
|
|
CreateUser(ctx context.Context, params RegisterUserRequest) (*RegisterUserResponse, error)
|
|
GetUser(ctx context.Context, username string) (*db.User, error)
|
|
UpdateUser(ctx context.Context, params UserUpdateRequest) (*db.User, error)
|
|
UpdatePassword(ctx context.Context, params PasswordUpdateRequest) (*db.User, error)
|
|
VerifyEmail(ctx context.Context, params EmailVerificationRequest) (*EmailVerificationResponse, error)
|
|
}
|
|
|
|
// AuthService defines operations related to authentication
|
|
type AuthService interface {
|
|
Login(ctx context.Context, params LoginCredentials) (*LoginResponse, error)
|
|
RenewAccessToken(ctx context.Context, params TokenRenewalRequest) (*TokenRenewalResponse, error)
|
|
}
|
|
|
|
// Ensure implementations satisfy interfaces at compile time
|
|
var (
|
|
_ UserService = (*userService)(nil)
|
|
_ AuthService = (*authService)(nil)
|
|
)
|