Funktionen: Stripe-Sitzungs-ID bis 128 Zeichen, keine Rohmeldungen beim Bestellen
Live-Fehler: cs_live-Sitzungs-IDs (~66 Zeichen) passten nicht in das Feld portalFeatures.stripeSessionId (64), die Bestellung brach nach dem Anlegen der Stripe-Sitzung ab und der Kunde sah die Appwrite-Meldung. - Setup-Skript: Feld 128 Zeichen, bestehendes Feld wird per ensureStringSize vergroessert - Fehler von Appwrite oder unerwartete Fehler: Log + verstaendlicher Hinweis Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4b7f73abba
commit
b45108c1de
4 files changed
+54
-7
No files matched your search
@@ -8,7 +8,8 @@ import {
|
||||
DISABLED_MESSAGE,
|
||||
assertOwnProject,
|
||||
backfillInvoiceLinks,
|
||||
getFeatureDoc, listCustomerFeatures,
|
||||
getFeatureDoc,
|
||||
listCustomerFeatures,
|
||||
markOrdered,
|
||||
runActivation,
|
||||
} from '../services/siteFeatures.js'
|
||||
@@ -16,9 +17,13 @@ import {
|
||||
const router = Router()
|
||||
const DAY_MS = 24 * 60 * 60 * 1000
|
||||
|
||||
function fail(res, err) {
|
||||
const status = err.status >= 400 && err.status < 600 ? err.status : 500
|
||||
return res.status(status).json({ error: err.message || 'Interner Serverfehler' })
|
||||
// Eigene Fehler (httpError) tragen einen Text fuer den Kunden. Fehler von Appwrite (err.type) oder
|
||||
// unerwartete Fehler werden nur geloggt; der Kunde sieht einen verstaendlichen Hinweis statt der Rohmeldung.
|
||||
function fail(res, err, fallback) {
|
||||
const own = err.status >= 400 && err.status < 500 && !err.type
|
||||
if (own) return res.status(err.status).json({ error: err.message })
|
||||
console.error('[funktionen]', err.status || '', err.type || '', err.message)
|
||||
return res.status(500).json({ error: fallback })
|
||||
}
|
||||
|
||||
// Zustaende der Funktionen je Projekt; geschlossene Einrichtungs-Tickets dieses Kunden werden vorher freigeschaltet
|
||||
@@ -34,7 +39,7 @@ router.get('/', requireSession, async (req, res) => {
|
||||
consentText: config.funktionen.consentText,
|
||||
})
|
||||
} catch (err) {
|
||||
fail(res, err)
|
||||
fail(res, err, 'Die Funktionen konnten gerade nicht geladen werden. Bitte lade die Seite gleich noch einmal.')
|
||||
}
|
||||
})
|
||||
|
||||
@@ -101,7 +106,7 @@ router.post('/news/checkout', requireSession, async (req, res) => {
|
||||
})
|
||||
res.json({ url: session.url })
|
||||
} catch (err) {
|
||||
fail(res, err)
|
||||
fail(res, err, 'Die Bestellung konnte gerade nicht gestartet werden. Bitte versuch es später noch einmal oder schreib uns im Chat.')
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in new issue
Block a user