Verify provider failure preserves drafts and improve user feedback

This commit is contained in:
2026-09-06 10:14:29 +03:00
parent a1d70b9dcf
commit 0fd46c4867
7 changed files with 32 additions and 3 deletions
+1 -1
View File
@@ -91,7 +91,7 @@ const OfferAssistantSession = ({ tender }) => {
</label>
</div>
<p className="text-[11px] text-slate-500">Metin sağlanmazsa sunucu EKAP dokümanını / ilan metnini kullanır. Yanıtların kaynak parçalarını kontrol edin; AI yanıtları hata veya eksik bilgi içerebilir.</p>
{hata && <p className="text-xs text-red-700 bg-red-50 border border-red-200 rounded-lg p-2">{hata}</p>}
{hata && <p role="alert" className="text-xs text-red-700 bg-red-50 border border-red-200 rounded-lg p-2">{hata}</p>}
{arac === 'sor' && (
<div className="space-y-3">
+1
View File
@@ -24,6 +24,7 @@ export async function requestOfferAssistant({url, body, readToken, isCurrent = (
const response = await fetcher(url, {signal:controller.signal, method:'POST', headers:{'Content-Type':'application/json', Authorization:`Bearer ${token}`}, body:JSON.stringify(payload)});
const data = await response.json().catch(() => { throw new Error('Sunucudan okunabilir JSON yanıtı alınamadı. Yeniden deneyin.'); });
check();
if (response.status === 503) throw new Error('AI hizmeti şu anda kullanılamıyor. Çalışmanız korundu; daha sonra yeniden deneyin. Sorun sürerse uygulama yöneticinize bildirin.');
if (!response.ok || data?.success === false) throw new Error(typeof data?.error === 'string' ? data.error : `HTTP ${response.status}`);
return validateOfferResponse(url, data);
} catch (error) {