diff --git a/internal/auth/codex/token.go b/internal/auth/codex/token.go index a3252d1b..7f032071 100644 --- a/internal/auth/codex/token.go +++ b/internal/auth/codex/token.go @@ -78,4 +78,5 @@ func (ts *CodexTokenStorage) SaveTokenToFile(authFilePath string) error { return fmt.Errorf("failed to write token to file: %w", err) } return nil + } diff --git a/internal/auth/gemini/gemini_token.go b/internal/auth/gemini/gemini_token.go index f84564e2..c8413d57 100644 --- a/internal/auth/gemini/gemini_token.go +++ b/internal/auth/gemini/gemini_token.go @@ -11,6 +11,7 @@ import ( "strings" "github.com/router-for-me/CLIProxyAPI/v6/internal/misc" + log "github.com/sirupsen/logrus" ) // GeminiTokenStorage stores OAuth2 token information for Google Gemini API authentication. @@ -57,35 +58,31 @@ func (ts *GeminiTokenStorage) SetMetadata(meta map[string]any) { // - error: An error if the operation fails, nil otherwise func (ts *GeminiTokenStorage) SaveTokenToFile(authFilePath string) error { misc.LogSavingCredentials(authFilePath) - ts.Type = "gemini" // Ensure type is set before merging/saving - + ts.Type = "gemini" // Merge metadata using helper data, errMerge := misc.MergeMetadata(ts, ts.Metadata) if errMerge != nil { return fmt.Errorf("failed to merge metadata: %w", errMerge) } - - // Create parent directory if err := os.MkdirAll(filepath.Dir(authFilePath), os.ModePerm); err != nil { - return fmt.Errorf("failed to create directory: %w", err) + return fmt.Errorf("failed to create directory: %v", err) } - // Create file f, err := os.Create(authFilePath) if err != nil { - return fmt.Errorf("failed to create file: %w", err) + return fmt.Errorf("failed to create token file: %w", err) } defer func() { - _ = f.Close() + if errClose := f.Close(); errClose != nil { + log.Errorf("failed to close file: %v", errClose) + } }() - // Write to file enc := json.NewEncoder(f) enc.SetIndent("", " ") if err := enc.Encode(data); err != nil { return fmt.Errorf("failed to encode token to file: %w", err) } - return nil }