calendars modülü çalışma takvimlerini, vardiyaları, takvim şablonlarını, takvim istisnalarını, tatil içe aktarmayı, takvim önizlemesini, grup takvimini ve sahip takvimlerini sunar. 23 uç noktanın tamamı /api/v1/calendars altındadır. İş anlamı için Calendars modülü sayfasına bakın.
Grup olguları¶
| Öğe | Değer | Kaynak |
|---|---|---|
| Temel yol | /api/v1/calendars |
src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/calendars/module.py:39 |
| Yönlendiriciler | 1 dosyada 1 yönlendirici nesnesi; Uç nokta özeti bölümünde listelenir | src/cluster_erp/modules/calendars/module.py:33 |
| Uç noktalar | 23; register_routes ile bağlanan yönlendiricilerin yol dekoratörleri ve add_api_route çağrılarından sayıldı |
src/cluster_erp/modules/calendars/routes.py |
| Kimlik doğrulama | Bearer başlığı veya oturum çerezi, get_current_user ile çözülür; bkz. Kimlik doğrulama ve başlıklar |
src/cluster_erp/modules/auth/guards.py:85-167 |
| Yetki koruması | 23 yolun 23 tanesi require_permission bildirir |
src/cluster_erp/modules/auth/guards.py:205-240 |
| Uygulama yetkilendirme kapısı | bağlanan her yönlendiricide require_app("calendars") |
src/cluster_erp/modules/calendars/module.py:41 |
| Hata biçimi | JSON gövdesi {"error": {...}}; bkz. Hatalar |
src/cluster_erp/server/error_handler.py:33-46 |
Uç nokta özeti¶
Alt modül klasörü başına bir satır. Yönlendirici öneki temel yola eklenir.
| Alt modül | Yönlendiriciler | Uç noktalar | Yönlendirici kaynağı |
|---|---|---|---|
routes |
router |
23 | src/cluster_erp/modules/calendars/routes.py:44 |
Çalışma takvimleri uç noktaları¶
Kendi öneki olmayan tek yönlendirici: vardiyalar, şablonlar, takvimler, takvim başına istisnalar, tatil ülkeleri ve içe aktarma, önizleme, grup takvimi ve bir sahibin takvimini sağlayan for-owner.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/calendars/group |
get_group_calendar |
work_calendar.read |
yok | yok | CalendarRead |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:79 |
GET |
/api/v1/calendars/holiday-countries |
list_holiday_countries |
work_calendar.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:95 |
POST |
/api/v1/calendars/calendars/{calendar_id}/import-holidays |
import_holidays |
work_calendar.create |
ImportHolidaysRequest |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:103 |
GET |
/api/v1/calendars/shifts |
list_shifts |
work_calendar.read |
yok | yok | list[ShiftRead] |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:126 |
POST |
/api/v1/calendars/shifts |
create_shift |
work_calendar.create |
ShiftCreate |
yok | ShiftRead |
201 |
src/cluster_erp/modules/calendars/routes.py:134 |
PUT |
/api/v1/calendars/shifts/{shift_id} |
update_shift |
work_calendar.update |
ShiftUpdate |
yok | ShiftRead |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:143 |
DELETE |
/api/v1/calendars/shifts/{shift_id} |
delete_shift |
work_calendar.delete |
yok | yok | yok | 204 |
src/cluster_erp/modules/calendars/routes.py:156 |
GET |
/api/v1/calendars/templates |
list_templates |
work_calendar.read |
yok | yok | list[TemplateRead] |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:171 |
POST |
/api/v1/calendars/templates |
create_template |
work_calendar.create |
TemplateCreate |
yok | TemplateRead |
201 |
src/cluster_erp/modules/calendars/routes.py:180 |
GET |
/api/v1/calendars/templates/{template_id} |
get_template |
work_calendar.read |
yok | yok | TemplateRead |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:189 |
PUT |
/api/v1/calendars/templates/{template_id} |
update_template |
work_calendar.update |
TemplateUpdate |
yok | TemplateRead |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:201 |
DELETE |
/api/v1/calendars/templates/{template_id} |
delete_template |
work_calendar.delete |
yok | yok | yok | 204 |
src/cluster_erp/modules/calendars/routes.py:218 |
GET |
/api/v1/calendars/calendars/{calendar_id}/exceptions |
list_exceptions |
work_calendar.read |
yok | yok | list[ExceptionRead] |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:236 |
POST |
/api/v1/calendars/calendars/{calendar_id}/exceptions |
create_exception |
work_calendar.create |
ExceptionCreate |
yok | ExceptionRead |
201 |
src/cluster_erp/modules/calendars/routes.py:249 |
PUT |
/api/v1/calendars/exceptions/{exception_id} |
update_exception |
work_calendar.update |
ExceptionUpdate |
yok | ExceptionRead |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:268 |
DELETE |
/api/v1/calendars/exceptions/{exception_id} |
delete_exception |
work_calendar.delete |
yok | yok | yok | 204 |
src/cluster_erp/modules/calendars/routes.py:283 |
GET |
/api/v1/calendars/calendars/{calendar_id}/preview |
preview_calendar |
work_calendar.read |
yok | date_from, date_to |
PreviewResponse |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:296 |
GET |
/api/v1/calendars/calendars |
list_calendars |
work_calendar.read |
yok | yok | list[CalendarRead] |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:336 |
POST |
/api/v1/calendars/calendars |
create_calendar |
work_calendar.create |
CalendarCreate |
yok | CalendarRead |
201 |
src/cluster_erp/modules/calendars/routes.py:345 |
POST |
/api/v1/calendars/calendars/for-owner |
ensure_owner_calendar |
work_calendar.create |
EnsureOwnerCalendarRequest |
yok | CalendarRead |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:354 |
GET |
/api/v1/calendars/calendars/{calendar_id} |
get_calendar |
work_calendar.read |
yok | yok | CalendarRead |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:373 |
PUT |
/api/v1/calendars/calendars/{calendar_id} |
update_calendar |
work_calendar.update |
CalendarUpdate |
yok | CalendarRead |
200 (varsayılan) | src/cluster_erp/modules/calendars/routes.py:385 |
DELETE |
/api/v1/calendars/calendars/{calendar_id} |
delete_calendar |
work_calendar.delete |
yok | yok | yok | 204 |
src/cluster_erp/modules/calendars/routes.py:398 |
Hata kodları¶
Tablo, src/cluster_erp/modules/calendars/ altındaki kodun attığı hata kodlarını listeler. Kodlar, AppError(...) çağrıları, src/cluster_erp/core/errors.py içindeki fabrikalar (not_found, conflict, protected, permission_denied, privilege_escalation, check_version) ve HTTPException(...) için yapılan bir sözdizimi ağacı taramasıyla bulundu. 400 durumu AppError varsayılanıdır (src/cluster_erp/core/errors.py:23). Koruma hataları (401, 403), yetkilendirme kodları ve doğrulama hataları (422) her yol için geçerlidir ve Hatalar sayfasında listelenir.
| Kod | HTTP durumu | Atıldığı yer | İlk konum |
|---|---|---|---|
CALENDAR_BASE_CYCLE |
400 |
services |
src/cluster_erp/modules/calendars/services.py:373 |
CALENDAR_INVALID_EXCEPTION |
400 |
services |
src/cluster_erp/modules/calendars/services.py:447 |
CONCURRENCY_VERSION_CONFLICT |
409 |
services |
src/cluster_erp/modules/calendars/services.py:133 |
RESOURCE_NOT_FOUND |
404 |
routes, services |
src/cluster_erp/modules/calendars/routes.py:152 |
Yayımlanan olaylar¶
Tablo, src/cluster_erp/modules/calendars/ altındaki kodun EventBus.emit çağrısına doğrudan verdiği sözleşme sınıflarını listeler; sözdizimi ağacı taramasıyla bulundu. Önce bir değişkene kurulan olaylar sayılmaz. Sözleşmeler Sözleşmeler başvurusu sayfasında anlatılır.
| Sözleşme | Konum sayısı | İlk konum |
|---|---|---|
WorkingCalendarChanged |
1 | src/cluster_erp/modules/calendars/routes.py:58 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.