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) +}