package auth import ( "dove/config" authUtils "dove/utils/auth" "dove/utils/shortcuts" "github.com/gofiber/fiber/v2" ) type LoginRequest struct { Username string `form:"username"` Password string `form:"password"` } type MessageResponse struct { Message string } func Authenticate(context *fiber.Ctx, request LoginRequest) (*MessageResponse, *shortcuts.Error) { switch request.Username == config.HTTP.Username && request.Password == config.HTTP.Password { case true: if sessionError := authUtils.Authenticate(context); sessionError != nil { return nil, shortcuts.ServiceError(shortcuts.Internal, sessionError.Error()) } return &MessageResponse{ Message: Authenticated, }, nil default: return nil, shortcuts.ServiceError(shortcuts.Unauthorized, InvalidCredentials) } } func Deauthenticate(context *fiber.Ctx) (*MessageResponse, *shortcuts.Error) { if sessionError := authUtils.Deauthenticate(context); sessionError != nil { return nil, shortcuts.ServiceError(shortcuts.Internal, sessionError.Error()) } return &MessageResponse{ Message: LoggedOut, }, nil }