Etkinlikler API
Etkinlikler modülünün tüm işlemleri (11) ve veri modelleri (3): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
Biletli, kayıtlı ve giriş listeli tek seferlik etkinlikler.
Modül kodu happenings · 11 işlem · 3 veri modeli · 9 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: happenings (hepsi), happenings:read (yalnız okuma) ya da happenings:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
happening_registrations | happening_registration | /api/v1/happening_registrations | happenings.register | ||
happening_tickets | happening_ticket | /api/v1/happening_tickets | |||
happenings | happening | /api/v1/happenings | happenings.create | happenings.update |
Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.
İşlemler
| İşlem | Gereken izin | Ne yapar |
|---|---|---|
happenings.cancel | happenings:write | Etkinliği iptal et |
happenings.cancel_registration | happenings:write | Kaydı iptal et |
happenings.check_in | happenings:write | Girişi kaydet |
happenings.complete | happenings:write | Giriş listesini kapat |
happenings.create | happenings:write | Etkinlik oluştur |
happenings.publish | happenings:write | Kaydı aç |
happenings.register | happenings:write | Kişiyi kaydet |
happenings.register_online | happenings:write | Online kayıt ol |
happenings.remove_ticket | happenings:write | Bileti kaldır |
happenings.save_ticket | happenings:write | Bileti kaydet |
happenings.update | happenings:write | Etkinliği düzenle |
happenings.cancel
Etkinliği iptal et — Etkinliği iptal eder ve tüm kayıtları serbest bırakır; kayıtlı kişilere haber verilebilmesi için onları listeler.
Gereken izin happenings:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/happenings/{id}/actions/cancel- Asıl adres:
POST /api/v1/actions/happenings.cancel
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Etkinlik · kimliği: happening |
reason | string | Neden · en çok 2000 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
happening_not_found | Etkinlik bulunmalı. |
happening_closed | İptal edilmiş veya bitmiş bir etkinlik değiştirilmez. |
Yayımladığı olaylar: happenings.cancelled
Neye yazar: happening (update) — Marks it cancelled; happening_registration (update) — Releases the registrations
curl -X POST https://app.getera.io/api/v1/happenings/HAPPENING_ID/actions/cancel \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"reason":"Reason"}'{
"ok": true,
"result": "…",
"events": [
"happenings.cancelled"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happenings.cancel("HAPPENING_ID", {
reason: "Reason"
})era happenings cancel HAPPENING_ID \
--reason "Reason"{
"name": "era__happenings__cancel",
"arguments": {
"id": "HAPPENING_ID",
"reason": "Reason"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 happening_not_found, happening_closed · 429 çok sık istek
happenings.cancel_registration
Kaydı iptal et — Bir kişinin yerlerini serbest bırakır.
Gereken izin happenings:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/happening_registrations/{id}/actions/cancel_registration- Asıl adres:
POST /api/v1/actions/happenings.cancel_registration
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Kayıt · kimliği: happening_registration |
reason | string | Neden · en çok 1000 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
registration_not_found | Kayıt bulunmalı. |
registration_not_checkable | Yalnızca kayıtlı bir yer için giriş yapılır veya yer serbest bırakılır. |
Yayımladığı olaylar: happenings.registration_cancelled
Neye yazar: happening_registration (update) — Marks it cancelled
curl -X POST https://app.getera.io/api/v1/happening_registrations/HAPPENING_REGISTRATION_ID/actions/cancel_registration \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"reason":"Reason"}'{
"ok": true,
"result": "…",
"events": [
"happenings.registration_cancelled"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happeningRegistrations.cancelRegistration("HAPPENING_REGISTRATION_ID", {
reason: "Reason"
})era happening_registrations cancel_registration HAPPENING_REGISTRATION_ID \
--reason "Reason"{
"name": "era__happenings__cancel_registration",
"arguments": {
"id": "HAPPENING_REGISTRATION_ID",
"reason": "Reason"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 registration_not_found, registration_not_checkable · 429 çok sık istek
happenings.check_in
Girişi kaydet — Kayıtlı bir kişiyi geldi olarak işaretler — giriş listesinden ya da giriş koduyla.
Gereken izin happenings:write · veriyi değiştirir
https://app.getera.io/api/v1/happening_registrations/{id}/actions/check_in- Asıl adres:
POST /api/v1/actions/happenings.check_in
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | Doldurulduğu yer: adresteki {id} · Kayıt · kimliği: happening_registration | |
happeningId | uuid | Etkinlik · kimliği: happening | |
code | string | Kapı kodu · en çok 12 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
registration_not_found | Kayıt bulunmalı. |
registration_not_checkable | Yalnızca kayıtlı bir yer için giriş yapılır veya yer serbest bırakılır. |
Yayımladığı olaylar: happenings.checked_in
Neye yazar: happening_registration (update) — Marks it checked in
curl -X POST https://app.getera.io/api/v1/happening_registrations/HAPPENING_REGISTRATION_ID/actions/check_in \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"happeningId":"HAPPENING_ID"}'{
"ok": true,
"result": "…",
"events": [
"happenings.checked_in"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happeningRegistrations.checkIn("HAPPENING_REGISTRATION_ID", {
happeningId: "HAPPENING_ID"
})era happening_registrations check_in HAPPENING_REGISTRATION_ID \
--happening-id "HAPPENING_ID"{
"name": "era__happenings__check_in",
"arguments": {
"id": "HAPPENING_REGISTRATION_ID",
"happeningId": "HAPPENING_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 registration_not_found, registration_not_checkable · 429 çok sık istek
happenings.complete
Giriş listesini kapat — Etkinliği bitti işaretler; giriş yapmayanlar gelmedi olarak kaydedilir.
Gereken izin happenings:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/happenings/{id}/actions/complete- Asıl adres:
POST /api/v1/actions/happenings.complete
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Etkinlik · kimliği: happening |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
happening_not_found | Etkinlik bulunmalı. |
happening_not_published | Yalnızca yayımlanmış bir etkinlik kapatılır. |
Yayımladığı olaylar: happenings.completed
Neye yazar: happening (update) — Marks it completed; happening_registration (update) — Marks the absent as no-shows
curl -X POST https://app.getera.io/api/v1/happenings/HAPPENING_ID/actions/complete \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"happenings.completed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happenings.complete("HAPPENING_ID")era happenings complete HAPPENING_ID{
"name": "era__happenings__complete",
"arguments": {
"id": "HAPPENING_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 happening_not_found, happening_not_published · 429 çok sık istek
happenings.create
Etkinlik oluştur — Tarihli ve kontenjanlı bir etkinlik; bilet ekleyin, sonra kaydı açın.
Gereken izin happenings:write · veriyi değiştirir
https://app.getera.io/api/v1/happenings/actions/create- REST kısayolu:
POST /api/v1/happenings - Asıl adres:
POST /api/v1/actions/happenings.create
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
title | string | evet | Başlık · en çok 200 |
description | string | Açıklama · en çok 8000 | |
location | string | Koşul · en çok 300 | |
startsAt | date-time | evet | Başlangıç |
endsAt | date-time | evet | Bitiş |
capacity | number | evet | Yer · en az 1 · en çok 100000 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
invalid_happening_time | Bitiş başlangıçtan sonra gelmeli. |
Yayımladığı olaylar: happenings.created
Neye yazar: happening (insert) — Writes the draft event
curl -X POST https://app.getera.io/api/v1/happenings/actions/create \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"title":"Title","startsAt":"2026-11-02T09:00:00Z","endsAt":"2026-11-02T09:00:00Z","capacity":1}'{
"ok": true,
"result": "…",
"events": [
"happenings.created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happenings.create({
title: "Title",
startsAt: "2026-11-02T09:00:00Z",
endsAt: "2026-11-02T09:00:00Z",
capacity: 1
})era happenings create \
--title "Title" \
--starts-at "2026-11-02T09:00:00Z" \
--ends-at "2026-11-02T09:00:00Z" \
--capacity 1{
"name": "era__happenings__create",
"arguments": {
"title": "Title",
"startsAt": "2026-11-02T09:00:00Z",
"endsAt": "2026-11-02T09:00:00Z",
"capacity": 1
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_happening_time · 429 çok sık istek
happenings.publish
Kaydı aç — Taslak bir etkinliği yayımlar, böylece kişiler kaydedilebilir.
Gereken izin happenings:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/happenings/{id}/actions/publish- Asıl adres:
POST /api/v1/actions/happenings.publish
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Etkinlik · kimliği: happening |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
happening_not_found | Etkinlik bulunmalı. |
happening_not_draft | Yalnızca taslak yayımlanır. |
happening_needs_ticket | En az bir bilet satışta olmalı. |
Yayımladığı olaylar: happenings.published
Neye yazar: happening (update) — Marks it published
curl -X POST https://app.getera.io/api/v1/happenings/HAPPENING_ID/actions/publish \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"happenings.published"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happenings.publish("HAPPENING_ID")era happenings publish HAPPENING_ID{
"name": "era__happenings__publish",
"arguments": {
"id": "HAPPENING_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 happening_not_found, happening_not_draft, happening_needs_ticket · 429 çok sık istek
happenings.register
Kişiyi kaydet — Bir müşteri için bir bilette yer ayırır; fiyat dondurulur ve finansa aktarılır.
Gereken izin happenings:write · veriyi değiştirir
https://app.getera.io/api/v1/happening_registrations/actions/register- REST kısayolu:
POST /api/v1/happening_registrations - Asıl adres:
POST /api/v1/actions/happenings.register
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
happeningId | uuid | evet | Etkinlik · kimliği: happening |
ticketId | uuid | evet | Bilet · kimliği: happening_ticket |
customerId | uuid | evet | Kişi · kimliği: customer |
quantity | number | Yer · en az 1 · en çok 50 | |
note | string | Not · en çok 1000 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
happening_not_found | Etkinlik bulunmalı. |
happening_not_open | Yalnızca yayımlanmış ve başlamamış bir etkinlik kayıt alır. |
customer_not_found | Kişi bulunmalı. |
customer_archived | Arşivlenmiş bir kişi kaydedilmez. |
happening_ticket_not_found | Bilet bulunmalı ve satışta olmalı. |
already_registered | Bir kişinin bir etkinlikte yalnızca bir geçerli kaydı olabilir. |
happening_full | Etkinlikte ve bilette yer kalmış olmalı. |
Yayımladığı olaylar: happenings.registered
Neye yazar: happening_registration (insert) — Writes the registration with its door code
curl -X POST https://app.getera.io/api/v1/happening_registrations/actions/register \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"happeningId":"HAPPENING_ID","ticketId":"HAPPENING_TICKET_ID","customerId":"CUSTOMER_ID"}'{
"ok": true,
"result": "…",
"events": [
"happenings.registered"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happeningRegistrations.create({
happeningId: "HAPPENING_ID",
ticketId: "HAPPENING_TICKET_ID",
customerId: "CUSTOMER_ID"
})era happening_registrations create \
--happening-id "HAPPENING_ID" \
--ticket-id "HAPPENING_TICKET_ID" \
--customer-id "CUSTOMER_ID"{
"name": "era__happenings__register",
"arguments": {
"happeningId": "HAPPENING_ID",
"ticketId": "HAPPENING_TICKET_ID",
"customerId": "CUSTOMER_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 happening_not_found, happening_not_open, customer_not_found, customer_archived, happening_ticket_not_found, already_registered, happening_full · 429 çok sık istek
happenings.register_online
Online kayıt ol — Ziyaretçi, siteden bir etkinlik biletinde yer alır; fiyat sabitlenir ve ödeme her kayıtta olduğu gibi alınır.
Gereken izin happenings:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)
/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).https://app.getera.io/api/v1/happening_registrations/actions/register_online- Asıl adres:
POST /api/v1/actions/happenings.register_online
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
happeningId | uuid | evet | Etkinlik · kimliği: happening |
ticketId | uuid | evet | Bilet · kimliği: happening_ticket |
quantity | number | Yer · en az 1 · en çok 10 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
guest_details_required | Misafirin kayıt olmadan önce bilgilerini girmesi gerekir. |
happening_full | Etkinlikte ve bilette yer kalmış olmalı. |
Yayımladığı olaylar: happenings.registered
Neye yazar: happening_registration (insert) — Writes the registration with its door code
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 guest_details_required, happening_full · 429 çok sık istek
happenings.remove_ticket
Bileti kaldır — Kullanılmamış bir bileti siler; kayıt yapılmış olan kullanımdan kaldırılır.
Gereken izin happenings:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/happening_tickets/{id}/actions/remove_ticket- Asıl adres:
POST /api/v1/actions/happenings.remove_ticket
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Bilet · kimliği: happening_ticket |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
happening_ticket_not_found | Bilet bulunmalı ve satışta olmalı. |
Yayımladığı olaylar: happenings.tickets_changed
Neye yazar: happening_ticket (delete) — Deletes an unused ticket; happening_ticket (update) — Retires a used one
curl -X POST https://app.getera.io/api/v1/happening_tickets/HAPPENING_TICKET_ID/actions/remove_ticket \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"happenings.tickets_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happeningTickets.removeTicket("HAPPENING_TICKET_ID")era happening_tickets remove_ticket HAPPENING_TICKET_ID{
"name": "era__happenings__remove_ticket",
"arguments": {
"id": "HAPPENING_TICKET_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 happening_ticket_not_found · 429 çok sık istek
happenings.save_ticket
Bileti kaydet — Bir bilet türü — fiyatı, kendi kontenjanı ve isteğe bağlı olarak satıldığı katalog ürünü.
Gereken izin happenings:write · veriyi değiştirir
https://app.getera.io/api/v1/happening_tickets/{id}/actions/save_ticket- Asıl adres:
POST /api/v1/actions/happenings.save_ticket
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | Doldurulduğu yer: adresteki {id} · Bilet · kimliği: happening_ticket | |
happeningId | uuid | Etkinlik · kimliği: happening | |
name | string | Ad · en çok 120 | |
itemVariantId | uuid | Katalog ürünü · kimliği: item_variant | |
priceAmount | number | Fiyat (küçük birim) · en az 0 | |
currency | string | Para birimi · en çok 3 | |
capacity | number | Bu bilet için yer sayısı · en az 1 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
happening_not_found | Etkinlik bulunmalı. |
happening_ticket_not_found | Bilet bulunmalı ve satışta olmalı. |
invalid_happening_ticket | Biletin geçerli bir fiyatı, para birimi ve kontenjanı olmalı. |
Yayımladığı olaylar: happenings.tickets_changed
Neye yazar: happening_ticket (upsert) — Writes the ticket
curl -X POST https://app.getera.io/api/v1/happening_tickets/HAPPENING_TICKET_ID/actions/save_ticket \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"happeningId":"HAPPENING_ID"}'{
"ok": true,
"result": "…",
"events": [
"happenings.tickets_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happeningTickets.saveTicket("HAPPENING_TICKET_ID", {
happeningId: "HAPPENING_ID"
})era happening_tickets save_ticket HAPPENING_TICKET_ID \
--happening-id "HAPPENING_ID"{
"name": "era__happenings__save_ticket",
"arguments": {
"id": "HAPPENING_TICKET_ID",
"happeningId": "HAPPENING_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 happening_not_found, happening_ticket_not_found, invalid_happening_ticket · 429 çok sık istek
happenings.update
Etkinliği düzenle — Başlığı, zamanı, yeri veya kontenjanı değiştirir.
Gereken izin happenings:write · veriyi değiştirir
https://app.getera.io/api/v1/happenings/{id}/actions/update- REST kısayolu:
PATCH /api/v1/happenings/{id} - Asıl adres:
POST /api/v1/actions/happenings.update
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Etkinlik · kimliği: happening |
title | string | Başlık · en çok 200 | |
description | string | Açıklama · en çok 8000 | |
location | string | Koşul · en çok 300 | |
startsAt | date-time | Başlangıç | |
endsAt | date-time | Bitiş | |
capacity | number | Yer · en az 1 · en çok 100000 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
happening_not_found | Etkinlik bulunmalı. |
happening_closed | İptal edilmiş veya bitmiş bir etkinlik değiştirilmez. |
invalid_happening_time | Bitiş başlangıçtan sonra gelmeli. |
happening_capacity_below_taken | Kontenjan alınan yerlerin altına inemez. |
Yayımladığı olaylar: happenings.updated
Neye yazar: happening (update) — Rewrites the event
curl -X POST https://app.getera.io/api/v1/happenings/HAPPENING_ID/actions/update \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"title":"Title"}'{
"ok": true,
"result": "…",
"events": [
"happenings.updated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.happenings.update("HAPPENING_ID", {
title: "Title"
})era happenings update HAPPENING_ID \
--title "Title"{
"name": "era__happenings__update",
"arguments": {
"id": "HAPPENING_ID",
"title": "Title"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde happenings:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 happening_not_found, happening_closed, invalid_happening_time, happening_capacity_below_taken · 429 çok sık istek
Veri modelleri
HappeningRegistration
Tablo happening_registration · Kaynak happening_registrations
GET /api/v1/happening_registrationsGET /api/v1/happening_registrations/{id}POST /api/v1/happening_registrations→happenings.register
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
happening_id | string (uuid) · uuid | happening | ||
ticket_id | string (uuid) · uuid | happening_ticket | ||
customer_id | string (uuid) · uuid | customer | ||
quantity | integer · int4 | |||
status | string · text | registered, checked_in, no_show, cancelled | ||
price_amount | string (int64) · int8 | |||
currency | string · bpchar | en çok 3 | ||
code | string · text | |||
note | string · text | evet | ||
checked_in_at | string (date-time) · timestamptz | evet | ||
cancelled_at | string (date-time) · timestamptz | evet | ||
cancel_reason | string · text | evet | ||
created_by_user_id | string (uuid) · uuid | evet | app_user | |
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Denetimler:
CHECK ((currency ~ '^[A-Z]{3}$'::text))CHECK ((price_amount >= 0))CHECK (((quantity >= 1) AND (quantity <= 50)))
HappeningTicket
Tablo happening_ticket · Kaynak happening_tickets
GET /api/v1/happening_ticketsGET /api/v1/happening_tickets/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
happening_id | string (uuid) · uuid | happening | ||
name | string · text | |||
item_variant_id | string (uuid) · uuid | evet | item_variant | |
price_amount | string (int64) · int8 | |||
currency | string · bpchar | en çok 3 | ||
capacity | integer · int4 | evet | ||
position | integer · int4 | |||
retired_at | string (date-time) · timestamptz | evet | ||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz | |||
is_public | boolean · bool | evet |
Birincil anahtar: id
Denetimler:
CHECK (((capacity IS NULL) OR (capacity > 0)))CHECK ((currency ~ '^[A-Z]{3}$'::text))CHECK ((length(TRIM(BOTH FROM name)) > 0))CHECK ((price_amount >= 0))
Happening
Tablo happening · Kaynak happenings
GET /api/v1/happeningsGET /api/v1/happenings/{id}POST /api/v1/happenings→happenings.createPATCH /api/v1/happenings/{id}→happenings.update
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
title | string · text | |||
description | string · text | evet | ||
location | string · text | evet | ||
starts_at | string (date-time) · timestamptz | |||
ends_at | string (date-time) · timestamptz | |||
capacity | integer · int4 | |||
status | string · text | draft, published, cancelled, completed | ||
cancel_reason | string · text | evet | ||
owner_user_id | string (uuid) · uuid | evet | app_user | |
created_by_user_id | string (uuid) · uuid | evet | app_user | |
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Denetimler:
CHECK ((capacity > 0))CHECK ((ends_at > starts_at))CHECK ((length(TRIM(BOTH FROM title)) > 0))
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
happenings.cancelled | Bir etkinlik iptal edildi ve kayıtları serbest bırakıldı. | id, ownerUserId, customerIds, reason |
happenings.checked_in | Bir kişi bir etkinliğe geldi. | id, happeningId, customerId |
happenings.completed | Bir etkinlik bitti. | id, noShows, title, ownerUserId, customerId, customerIds, noShowCustomerIds |
happenings.created | Bir etkinlik taslağı hazırlandı. | id, ownerUserId |
happenings.published | Bir etkinlik kayda açıldı. | id |
happenings.registered | Bir kişi bir etkinliğe kaydoldu — ücretlendirmeyi finans yapar. | id, happeningId, customerId, ticketId, itemVariantId, quantity, amount, currency, description, code, ownerUserId, title, startsAt |
happenings.registration_cancelled | Bir kayıt iptal edildi. | id, happeningId, customerId |
happenings.tickets_changed | Bir etkinliğin biletleri değişti. | id |
happenings.updated | Bir etkinlik düzenlendi. | id |