Spaces:
Runtime error
Runtime error
| package service | |
| import ( | |
| "context" | |
| "fmt" | |
| "io" | |
| "net/http" | |
| "strings" | |
| ) | |
| func FetchCodexWhamUsage( | |
| ctx context.Context, | |
| client *http.Client, | |
| baseURL string, | |
| accessToken string, | |
| accountID string, | |
| ) (statusCode int, body []byte, err error) { | |
| if client == nil { | |
| return 0, nil, fmt.Errorf("nil http client") | |
| } | |
| bu := strings.TrimRight(strings.TrimSpace(baseURL), "/") | |
| if bu == "" { | |
| return 0, nil, fmt.Errorf("empty baseURL") | |
| } | |
| at := strings.TrimSpace(accessToken) | |
| aid := strings.TrimSpace(accountID) | |
| if at == "" { | |
| return 0, nil, fmt.Errorf("empty accessToken") | |
| } | |
| if aid == "" { | |
| return 0, nil, fmt.Errorf("empty accountID") | |
| } | |
| req, err := http.NewRequestWithContext(ctx, http.MethodGet, bu+"/backend-api/wham/usage", nil) | |
| if err != nil { | |
| return 0, nil, err | |
| } | |
| req.Header.Set("Authorization", "Bearer "+at) | |
| req.Header.Set("chatgpt-account-id", aid) | |
| req.Header.Set("Accept", "application/json") | |
| if req.Header.Get("originator") == "" { | |
| req.Header.Set("originator", "codex_cli_rs") | |
| } | |
| resp, err := client.Do(req) | |
| if err != nil { | |
| return 0, nil, err | |
| } | |
| defer resp.Body.Close() | |
| body, err = io.ReadAll(resp.Body) | |
| if err != nil { | |
| return resp.StatusCode, nil, err | |
| } | |
| return resp.StatusCode, body, nil | |
| } | |