courses
18 uç · /api/web/v1/courses
İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 18 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.
PUT /api/web/v1/donation-campaigns/{id} — künyenin TAMAMI.
idcurl -X PUT "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /api/web/v1/ab-tests/{id}
id⚠ Silme sayaçları da götürür (on delete cascade) ve bu BİLİNÇLİ: testin
sayıları testin dışında bir anlam taşımaz, saklanan bir kalıntı ise
"hangi teste aitti" sorusunu cevapsız bırakırdı.
curl -X DELETE "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/web/v1/courses/{id}/submissions — ödev gelen kutusu.
idcurl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/assignments" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/web/v1/courses/{id}/certificates
idcurl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/certificates" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/web/v1/courses/{id}/copy — kurs kopyalama ve şablon
id(BLE22-14541). 🔴 Kopyalanan MÜFREDATTIR: bölümler ve dersler AYNI tx'te doğar. Kayıt, ilerleme ve yayın durumu TAŞINMAZ — kopya her zaman TASLAK doğar.
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/copy" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}PUT /api/web/v1/courses/{id}/curriculum — müfredat düzenleyici
id(BLE22-14537).
🔴 SIRA LİSTENİN KENDİSİDİR: panel position sayıları göndermez, KİMLİK
LİSTESİ gönderir ve sunucu tek tx'te yeniden numaralar. Tek tek yamalanan
bir sıra, iki eşzamanlı düzenlemede iki "3. ders" üretirdi.
⚠ Listede olmayan bir ders SİLİNMEZ — sırası korunur ve sona alınır.
Kaydetmeyi bir silme yoluna çevirmek, ağacı yanlışlıkla budayan bir
istemciye tüm müfredatı kaybettirirdi.
curl -X PUT "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/curriculum" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/lessons" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/web/v1/courses/{id}/question-bank — BANKA sorusu (quiz_id yok).
id🔴 Banka AYRI bir tablo DEĞİL: aynı tabloda quiz_id is null. Ayrı tablo,
"bankadaki soruyu sınava kopyala" adımı doğururdu ve düzeltilen bir soru
eski sınavlarda YANLIŞ kalırdı.
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/question-bank" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/web/v1/courses/{id}/questions — ders soruları (moderasyon).
idcurl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/questions" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/web/v1/sites/{site}/donation-campaigns
idcurl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/quizzes" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/web/v1/sites/{site}/ab-tests
id🔴 KONTROL VARYANTINI SUNUCU EKLER ve sayfanın CANLI sürümünü kullanır. Kontrolü istemciye bıraktığımız bir sürümde panel yanlış (ya da eski) bir sürümü taban gösterebilirdi — ve karşılaştırmanın tabanı, ziyaretçinin gerçekte gördüğü sayfa OLMAK ZORUNDADIR.
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/quizzes" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/web/v1/ab-tests/{id}/report
id🔴 Kazanan İLAN EDİLMEZ, karar ab::anlamliliktan gelir ve eşiğin altında
"henüz karar verilemez" der. Ekran oranları yine gösterir — ama hangisinin
bir BULGU hangisinin gürültü olduğunu söyleyerek.
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/report" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/web/v1/courses/{id}/report.csv
idcurl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/report.csv" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/web/v1/courses/{id}/sections
idcurl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/sections" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}PATCH /api/web/v1/ab-tests/{id}/status — başlat / durdur.
id🔴 web.publish ister: koşan bir test ziyaretçinin gördüğü içeriği böler.
curl -X PATCH "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/status" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/students" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/web/v1/courses/{id}/students — ekip kaydı açar (davetli kurs).
id🔴 ÜYE OLMAYAN kişiye kayıt açılmaz: kurs kaydı bir ÜYEYE bağlanır ve üyeliği burada uydurmak, hiç rıza vermemiş birine hesap açmaktır (Faz 13'ün kararı). Ekran "önce üye olarak davet et" der.
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/students" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}