fix(domains): HTTP 5xx nie als Ablehnung werten, Verwerfen mit Neupruefung, Entwurfsstand im Anspruch (CR-01, WR-01, WR-02, WR-03, IN-03)
CR-01: 5xx, 408, 425 (auch mit AutoDNS-Huelle) sind kein "abgelehnt" mehr, Bestellung endet in UNKNOWN und der Abgleich wertet sie nicht als "Domain gibt es nicht". 429 gilt bei der Bestellung ebenfalls als unklar, weil nicht belegt ist, dass AutoDNS vor der Verarbeitung abgelehnt hat. WR-01: Verwerfen eines unklaren Auftrags fragt im Augenblick des Verwerfens erneut bei AutoDNS nach; nur ein ausdrueckliches "nicht gefunden" verwirft. WR-02: Die Bestaetigung traegt den Entwurfsstand (updatedAt); der Anspruch greift nur bei gleichem Stand, sonst 409 orderChanged. WR-03: Auftraege ohne lesbares Datum/Objekt oder eine volle Trefferliste machen "nichts gefunden" unklar statt verwerfbar. IN-03: Scheitert das Speichern nach POST /domain, wird die Auftragsnummer protokolliert und der Auftrag auf UNKNOWN gebracht (nie DRAFT), ohne 500. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -304,6 +304,8 @@ export interface OrderSummary {
|
||||
};
|
||||
nameServers: string[];
|
||||
periodYears: 1;
|
||||
/** Stand des Entwurfs; geht beim verbindlichen Bestellen unveraendert zurueck. */
|
||||
version: string;
|
||||
}
|
||||
|
||||
export interface CreateOrderInput {
|
||||
@@ -323,9 +325,16 @@ export function createOrder(input: CreateOrderInput): Promise<OrderSummary> {
|
||||
return request<OrderSummary>('/orders', { method: 'POST', json: input });
|
||||
}
|
||||
|
||||
/** Verbindlich: schickt die Registrierung an AutoDNS (kostet im Live-System Geld). */
|
||||
export function submitOrder(id: string): Promise<DomainsOrder> {
|
||||
return request<DomainsOrder>(`/orders/${encodeURIComponent(id)}/submit`, { method: 'POST' });
|
||||
/**
|
||||
* Verbindlich: schickt die Registrierung an AutoDNS (kostet im Live-System Geld).
|
||||
* `version` ist der Stand aus der Zusammenfassung; hat sich der Entwurf seither
|
||||
* geaendert, lehnt der Server mit 409 ab.
|
||||
*/
|
||||
export function submitOrder(id: string, version: string): Promise<DomainsOrder> {
|
||||
return request<DomainsOrder>(`/orders/${encodeURIComponent(id)}/submit`, {
|
||||
method: 'POST',
|
||||
json: { version },
|
||||
});
|
||||
}
|
||||
|
||||
export function cancelOrder(id: string): Promise<DomainsOrder> {
|
||||
|
||||
Reference in New Issue
Block a user