Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
move reading profile to caller functions
  • Loading branch information
GokceGK committed May 21, 2024
commit 33d09d0e36ed8c408926e66aaf49af27bb624002
57 changes: 21 additions & 36 deletions internal/pkg/auth/storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,31 +60,31 @@ func SetAuthFieldMap(keyMap map[authFieldKey]string) error {
}

func SetAuthField(key authFieldKey, value string) error {
err := setAuthFieldInKeyring(key, value)
activeProfile, err := config.GetProfile()
if err != nil {
return fmt.Errorf("get profile: %w", err)
}

err = setAuthFieldInKeyring(activeProfile, key, value)
if err != nil {
errFallback := setAuthFieldInEncodedTextFile(key, value)
errFallback := setAuthFieldInEncodedTextFile(activeProfile, key, value)
if errFallback != nil {
return fmt.Errorf("write to keyring failed (%w), try writing to encoded text file: %w", err, errFallback)
}
}
return nil
}

func setAuthFieldInKeyring(key authFieldKey, value string) error {
activeProfile, err := config.GetProfile()
if err != nil {
return fmt.Errorf("get profile: %w", err)
}

func setAuthFieldInKeyring(activeProfile string, key authFieldKey, value string) error {
if activeProfile != "" {
activeProfileKeyring := filepath.Join(keyringService, activeProfile)
return keyring.Set(activeProfileKeyring, string(key), value)
}
return keyring.Set(keyringService, string(key), value)
}

func setAuthFieldInEncodedTextFile(key authFieldKey, value string) error {
err := createEncodedTextFile()
func setAuthFieldInEncodedTextFile(activeProfile string, key authFieldKey, value string) error {
err := createEncodedTextFile(activeProfile)
if err != nil {
return err
}
Expand All @@ -94,11 +94,6 @@ func setAuthFieldInEncodedTextFile(key authFieldKey, value string) error {
return fmt.Errorf("get config dir: %w", err)
}

activeProfile, err := config.GetProfile()
if err != nil {
return fmt.Errorf("get profile: %w", err)
}

profileTextFileFolderName := textFileFolderName
if activeProfile != "" {
profileTextFileFolderName = filepath.Join(activeProfile, textFileFolderName)
Expand Down Expand Up @@ -153,32 +148,32 @@ func GetAuthFlow() (AuthFlow, error) {
}

func GetAuthField(key authFieldKey) (string, error) {
value, err := getAuthFieldFromKeyring(key)
activeProfile, err := config.GetProfile()
if err != nil {
return "", fmt.Errorf("get profile: %w", err)
}

value, err := getAuthFieldFromKeyring(activeProfile, key)
if err != nil {
var errFallback error
value, errFallback = getAuthFieldFromEncodedTextFile(key)
value, errFallback = getAuthFieldFromEncodedTextFile(activeProfile, key)
if errFallback != nil {
return "", fmt.Errorf("read from keyring: %w, read from encoded file as fallback: %w", err, errFallback)
}
}
return value, nil
}

func getAuthFieldFromKeyring(key authFieldKey) (string, error) {
activeProfile, err := config.GetProfile()
if err != nil {
return "", fmt.Errorf("get profile: %w", err)
}

func getAuthFieldFromKeyring(activeProfile string, key authFieldKey) (string, error) {
if activeProfile != "" {
activeProfileKeyring := filepath.Join(keyringService, activeProfile)
return keyring.Get(activeProfileKeyring, string(key))
}
return keyring.Get(keyringService, string(key))
}

func getAuthFieldFromEncodedTextFile(key authFieldKey) (string, error) {
err := createEncodedTextFile()
func getAuthFieldFromEncodedTextFile(activeProfile string, key authFieldKey) (string, error) {
err := createEncodedTextFile(activeProfile)
if err != nil {
return "", err
}
Expand All @@ -188,11 +183,6 @@ func getAuthFieldFromEncodedTextFile(key authFieldKey) (string, error) {
return "", fmt.Errorf("get config dir: %w", err)
}

activeProfile, err := config.GetProfile()
if err != nil {
return "", fmt.Errorf("get profile: %w", err)
}

profileTextFileFolderName := textFileFolderName
if activeProfile != "" {
profileTextFileFolderName = filepath.Join(activeProfile, textFileFolderName)
Expand Down Expand Up @@ -224,17 +214,12 @@ func getAuthFieldFromEncodedTextFile(key authFieldKey) (string, error) {
// Checks if the encoded text file exist.
// If it doesn't, creates it with the content "{}" encoded.
// If it does, does nothing (and returns nil).
func createEncodedTextFile() error {
func createEncodedTextFile(activeProfile string) error {
configDir, err := os.UserConfigDir()
if err != nil {
return fmt.Errorf("get config dir: %w", err)
}

activeProfile, err := config.GetProfile()
if err != nil {
return fmt.Errorf("get profile: %w", err)
}

profileTextFileFolderName := textFileFolderName
if activeProfile != "" {
profileTextFileFolderName = filepath.Join(activeProfile, textFileFolderName)
Expand Down