X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/d8f3785bb69288663f4cc46bf4d609c6770452d5..bd7da3557dc7a17020931f5a49ed5007fa81a645:/chatgpt.go?ds=sidebyside diff --git a/chatgpt.go b/chatgpt.go index 7748190..49be015 100644 --- a/chatgpt.go +++ b/chatgpt.go @@ -116,14 +116,14 @@ func (a *ChatGPTAuth) Authorize(ctx context.Context, header http.Header) error { tokens, err := a.read() if err != nil { - return err + return fmt.Errorf("read login tokens: %w", err) } expiry, found := chatgptTokenExpiry(tokens.AccessToken) if !found || !time.Now().Before(expiry.Add(-chatgptRefreshMargin)) { tokens, err = a.refresh(ctx, tokens) if err != nil { - return err + return fmt.Errorf("refresh login tokens: %w", err) } } @@ -184,7 +184,7 @@ func (a *ChatGPTAuth) refresh(ctx context.Context, tokens ChatGPTTokenFile) (Cha err = a.write(tokens) if err != nil { - return ChatGPTTokenFile{}, err + return ChatGPTTokenFile{}, fmt.Errorf("save refreshed tokens: %w", err) } return tokens, nil @@ -199,8 +199,11 @@ func (a *ChatGPTAuth) postJSON(ctx context.Context, path string, body, result an } _, err = a.post(ctx, path, "application/json", data, result) + if err != nil { + return fmt.Errorf("post JSON request: %w", err) + } - return err + return nil } // write replaces the token file atomically. The file has mode 0600. @@ -278,17 +281,17 @@ func (a *ChatGPTAuth) Login(ctx context.Context, out io.Writer) error { grant, err := a.poll(ctx, code.DeviceAuthID, userCode, chatgptPollInterval(code.Interval)) if err != nil { - return err + return fmt.Errorf("wait for device grant: %w", err) } tokens, err := a.exchange(ctx, grant) if err != nil { - return err + return fmt.Errorf("exchange device grant: %w", err) } err = a.write(tokens) if err != nil { - return err + return fmt.Errorf("save login tokens: %w", err) } _, err = fmt.Fprintln(out, "Logged in.") @@ -443,12 +446,12 @@ func chatgptDecodeClaims(token string, claims any) bool { func chatgptLogin(ctx context.Context, out io.Writer) (err error) { dir, err := dataDir() if err != nil { - return err + return fmt.Errorf("find data directory: %w", err) } tokens, err := lockTokens(dir) if err != nil { - return err + return fmt.Errorf("lock login tokens: %w", err) } defer func() {