GetUpcomingInvoice returns empty invoice object instead of 404 for offline billing accounts
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 55/100
Direzione di ricerca
Leggi billing/invoice/service.go intorno alle righe 322-325, poi segui la gestione della risposta in internal/api/v1beta1connect/billing_invoice.go e il workaround in sdks/js/packages/core/react/components/organization/billing/upcoming-billing-cycle.tsx intorno alla riga 126. Il lavoro è completato quando i clienti di billing offline o non creati ricevono una risposta vuota o 404 e il workaround della UI può essere rimosso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
The GetUpcomingInvoice API handler currently returns a nil/empty invoice object when no billing customer provider is found or the account is offline. This results in an unhelpful response with all fields set to empty values:
{
"invoice": {
"id": "",
"customer_id": "",
"provider_id": "",
"state": "",
"currency": "",
"amount": "0",
"hosted_url": "",
"due_date": null,
"effective_at": null,
"period_start_at": null,
"period_end_at": null,
"metadata": {},
"created_at": null,
"customer": null
}
}
Expected Behavior
The API should return either:
- An empty response body
{}, or - A
404 Not Foundstatus when the billing customer is not created or offline
Root Cause
In billing/invoice/service.go:322-325, when there's no provider ID, the service returns an empty Invoice{} instead of an error:
if custmr.ProviderID == "" {
logger.Debug(fmt.Sprintf("no customer provider id found"))
return Invoice{}, nil
}
This empty invoice is then transformed and returned by the handler, creating the confusing response.
Impact
This forces the UI to implement workarounds. For example, in sdks/js/packages/core/react/components/organization/billing/upcoming-billing-cycle.tsx:126, the code has to check for !!billingAccount?.providerId to prevent fetching the upcoming invoice for offline billing accounts:
enabled:
!!activeOrganization?.id &&
// This is to prevent fetching the upcoming invoice for offline billing accounts
!!billingAccount?.providerId,
Once this is fixed, this UI workaround can be removed.
Files to Modify
billing/invoice/service.go:322-325- Handle the case where provider ID is missinginternal/api/v1beta1connect/billing_invoice.go- Update handler to return appropriate responsesdks/js/packages/core/react/components/organization/billing/upcoming-billing-cycle.tsx:126- Remove workaround check after API is fixed
- Lingua principale
- Go
- Stelle
- 344
- Fork
- 47
- Merge medio
- 2g 20h
- PR unite (30g)
- 39
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di raystack/frontier
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 58/100
I maintainer di solito rispondono entro 1 giorno
-
authz bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 70/100
raystack/frontier#1896 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Add OpenTelemetry tracingAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di raystack/frontier
Issue simili
-
agent-butler-finding chore
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
jordansmall/spindrift#4146 ·
I maintainer di solito rispondono entro 1 giorno
-
security
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
IBM/ibmcloud-volume-file-vpc#119 ·
-
security
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
IBM/networking-go-sdk#339 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
kubernetes-sigs/mcp-lifecycle-operator#439 ·
I maintainer di solito rispondono entro 1 giorno
-
area: global bug dx priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno