From 44a57d5f3a877ea489627b435d4f6110b586d605 Mon Sep 17 00:00:00 2001 From: Mathis Maquenne <124215603+mathismqn@users.noreply.github.com> Date: Wed, 29 Jul 2026 11:22:12 +0200 Subject: [PATCH] feat: add login and logout commands --- cmd/login.go | 37 +++++++++++++++++++++++++++++++++++++ cmd/logout.go | 27 +++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 cmd/login.go create mode 100644 cmd/logout.go diff --git a/cmd/login.go b/cmd/login.go new file mode 100644 index 0000000..4c7cd1e --- /dev/null +++ b/cmd/login.go @@ -0,0 +1,37 @@ +package cmd + +import ( + "fmt" + + "github.com/mathismqn/godeez/internal/auth" + "github.com/spf13/cobra" +) + +var loginCmd = &cobra.Command{ + Use: "login", + Short: "Log in to Deezer with your email and password", + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, args []string) error { + if err := auth.CheckGatewayEnv(); err != nil { + return err + } + + email, password, err := auth.PromptCredentials() + if err != nil { + return err + } + + _, username, err := auth.Login(cmd.Context(), email, password) + if err != nil { + return err + } + + fmt.Printf("Successfully logged in as %s.\n", username) + + return nil + }, +} + +func init() { + RootCmd.AddCommand(loginCmd) +} diff --git a/cmd/logout.go b/cmd/logout.go new file mode 100644 index 0000000..3f6e537 --- /dev/null +++ b/cmd/logout.go @@ -0,0 +1,27 @@ +package cmd + +import ( + "fmt" + + "github.com/mathismqn/godeez/internal/auth" + "github.com/spf13/cobra" +) + +var logoutCmd = &cobra.Command{ + Use: "logout", + Short: "Remove stored Deezer credentials", + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, args []string) error { + if err := auth.Clear(); err != nil { + return err + } + + fmt.Println("Successfully logged out.") + + return nil + }, +} + +func init() { + RootCmd.AddCommand(logoutCmd) +}