Skip to content

Commit 53fa1ea

Browse files
Merge pull request #25 from MagaluCloud/feat/access-token
feat: implemented access-token command
2 parents 817ec1b + a4c0574 commit 53fa1ea

File tree

6 files changed

+69
-4
lines changed

6 files changed

+69
-4
lines changed

base-cli/cmd/root.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"log/slog"
77
"os"
88
"strconv"
9+
"strings"
910
"time"
1011

1112
"runtime"
@@ -149,6 +150,18 @@ func beautifulPrint(cmd *cobra.Command) {
149150
fmt.Println()
150151
}
151152

153+
// Atalhos
154+
if len(cmd.Aliases) > 0 {
155+
fmt.Println()
156+
157+
aliasHeader := color.New(color.FgMagenta, color.Bold)
158+
aliasHeader.Println(manager.T("cli.aliases") + ":")
159+
160+
aliasLine := color.New(color.FgWhite)
161+
aliases := append([]string{cmd.Name()}, cmd.Aliases...)
162+
aliasLine.Printf(" %s\n", strings.Join(aliases, ", "))
163+
}
164+
152165
// Comandos disponíveis organizados por grupos
153166
if cmd.HasAvailableSubCommands() {
154167
fmt.Println()
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package auth
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"os"
7+
8+
"github.com/magaluCloud/mgccli/cmd/common/auth"
9+
cmdutils "github.com/magaluCloud/mgccli/cmd_utils"
10+
"github.com/magaluCloud/mgccli/i18n"
11+
"github.com/spf13/cobra"
12+
)
13+
14+
// NewAccessTokenCommand cria o comando para obter o token de acesso
15+
func NewAccessTokenCommand(ctx context.Context) *cobra.Command {
16+
manager := i18n.GetInstance()
17+
18+
cmd := &cobra.Command{
19+
Use: "access-token",
20+
Aliases: []string{"access_token"},
21+
Short: manager.T("cli.auth.access_token.short"),
22+
Long: manager.T("cli.auth.access_token.long"),
23+
RunE: func(cmd *cobra.Command, args []string) error {
24+
return runAccessToken(ctx)
25+
},
26+
}
27+
28+
return cmd
29+
}
30+
31+
// runAccessToken executa o processo de obtenção do token de acesso
32+
func runAccessToken(ctx context.Context) error {
33+
auth := ctx.Value(cmdutils.CTX_AUTH_KEY).(auth.Auth)
34+
35+
token := auth.GetAccessToken(ctx)
36+
if token == "" {
37+
fmt.Fprintln(os.Stderr, "✕ Seu token de acesso está vazio. Por favor, faça login novamente.")
38+
39+
return nil
40+
}
41+
42+
// Exibir token de acesso
43+
fmt.Fprintf(os.Stderr, "access_token:\n%s\n", token)
44+
45+
return nil
46+
}

base-cli/cmd/static/auth/auth.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ func AuthCmd(parent *cobra.Command) {
1414
Use: "auth",
1515
Short: manager.T("cli.auth.short"),
1616
Long: manager.T("cli.auth.long"),
17-
Aliases: []string{"auth"},
1817
GroupID: "settings",
1918
}
2019

2120
// Adicionar subcomandos
2221
cmd.AddCommand(NewLoginCommand(parent.Context()))
2322
cmd.AddCommand(NewLogoutCommand(parent.Context()))
23+
cmd.AddCommand(NewAccessTokenCommand(parent.Context()))
2424

2525
parent.AddCommand(cmd)
2626
}

base-cli/i18n/translations/en-US.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454
"cli.auth.short": "Actions with ID Magalu to log in, API Keys, refresh tokens, change tenants and others",
5555
"cli.auth.long": "The authentication credentials set here will be used as a basis for a variety of HTTP requests using the MgcSDK. Authentication is done via Magalu Cloud account (Object Storage requires special keys, refer to it for more info)",
5656
"cli.auth.logout.short": "End the current session",
57-
"cli.auth.logout.long": "Ends the current session by removing the token used by Magalu Cloud for authentication"
57+
"cli.auth.logout.long": "Ends the current session by removing the token used by Magalu Cloud for authentication",
58+
"cli.auth.access_token.short": "Retrieve the access token used in the APIs",
59+
"cli.auth.access_token.long": "Retrieves the access token used in the APIs, validates its current status, and automatically refreshes it when needed, ensuring the returned token is always up-to-date and ready for use"
5860
}
5961
}

base-cli/i18n/translations/es-ES.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454
"cli.auth.short": "Acciones con ID Magalu para iniciar sesión, administrar claves API, actualizar tokens, cambiar tenants y otras operaciones",
5555
"cli.auth.long": "Las credenciales de autenticación configuradas aquí se utilizarán como base para diversas solicitudes HTTP realizadas con el MgcSDK. La autenticación se realiza mediante una cuenta de Magalu Cloud (Object Storage requiere claves especiales; consulte su documentación para más información)",
5656
"cli.auth.logout.short": "Cerrar la sesión actual",
57-
"cli.auth.logout.long": "Finaliza la sesión actual eliminando el token utilizado por Magalu Cloud para la autenticación"
57+
"cli.auth.logout.long": "Finaliza la sesión actual eliminando el token utilizado por Magalu Cloud para la autenticación",
58+
"cli.auth.access_token.short": "Recupera el token de acceso utilizado en las APIs",
59+
"cli.auth.access_token.long": "Recupera el token de acceso utilizado en las APIs, valida su vigencia actual y realiza la renovación automática (refresh) cuando sea necesario, garantizando que el token devuelto esté siempre actualizado y listo para su uso"
5860
}
5961
}

base-cli/i18n/translations/pt-BR.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454
"cli.auth.short": "Ações com o ID Magalu para fazer login, gerenciar API Keys, atualizar tokens, trocar de tenant e outras operações",
5555
"cli.auth.long": "As credenciais de autenticação configuradas aqui serão usadas como base para diversas requisições HTTP feitas pelo MgcSDK. A autenticação é realizada por meio de uma conta da Magalu Cloud (Object Storage requer chaves especiais; consulte a documentação para mais informações)",
5656
"cli.auth.logout.short": "Encerrar a sessão atual",
57-
"cli.auth.logout.long": "Finaliza a sessão atual removendo o token usado pela Magalu Cloud para autenticação"
57+
"cli.auth.logout.long": "Finaliza a sessão atual removendo o token usado pela Magalu Cloud para autenticação",
58+
"cli.auth.access_token.short": "Recuperar o token de acesso usado nas APIs",
59+
"cli.auth.access_token.long": "Recupera o token de acesso utilizado nas APIs, valida sua validade atual e realiza a renovação automática (refresh) quando necessário, garantindo que o token retornado esteja sempre atualizado e pronto para uso"
5860
}
5961
}

0 commit comments

Comments
 (0)