aboutsummaryrefslogtreecommitdiff
path: root/pkg/components/auth/controller.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/components/auth/controller.go')
-rw-r--r--pkg/components/auth/controller.go77
1 files changed, 0 insertions, 77 deletions
diff --git a/pkg/components/auth/controller.go b/pkg/components/auth/controller.go
deleted file mode 100644
index 0b08fcc..0000000
--- a/pkg/components/auth/controller.go
+++ /dev/null
@@ -1,77 +0,0 @@
-package auth
-
-import (
- "context"
-
- "golang.org/x/crypto/bcrypt"
-
- "git.sr.ht/~gabrielgio/img/pkg/components"
- "git.sr.ht/~gabrielgio/img/pkg/database/repository"
- "git.sr.ht/~gabrielgio/img/pkg/ext"
-)
-
-type Controller struct {
- authRepository repository.AuthRepository
- userRepository repository.UserRepository
- key []byte
-}
-
-func NewController(
- authRepository repository.AuthRepository,
- userRepository repository.UserRepository,
- key []byte,
-) *Controller {
- return &Controller{
- authRepository: authRepository,
- userRepository: userRepository,
- key: key,
- }
-}
-
-func (c *Controller) Login(ctx context.Context, username, password []byte) ([]byte, error) {
- id, err := c.authRepository.GetIDByUsername(ctx, string(username))
- if err != nil {
- return nil, err
- }
-
- hashedPassword, err := c.authRepository.GetPassword(ctx, id)
- if err != nil {
- return nil, err
- }
-
- if err := bcrypt.CompareHashAndPassword(hashedPassword, password); err != nil {
- return nil, err
- }
-
- token := &ext.Token{
- UserID: id,
- Username: string(username),
- }
- return ext.WriteToken(token, c.key)
-}
-
-// InitialRegister register a initial user, it will validate if there is another
-// user stored already. If so an error `InvlidaInput` will be returned
-func (c *Controller) InitialRegister(ctx context.Context, username, password []byte, path []byte) error {
- exist, err := c.userRepository.Any(ctx)
- if err != nil {
- return err
- }
-
- if exist {
- return components.InvlidaInput
- }
-
- hash, err := bcrypt.GenerateFromPassword(password, bcrypt.MinCost)
- if err != nil {
- return err
- }
-
- _, err = c.userRepository.Create(ctx, &repository.CreateUser{
- Username: string(username),
- Password: hash,
- Path: string(path),
- })
-
- return err
-}