POSTOpdatér en butiksaktivitet
Opdaterer aktiviteten og annullerer en eventuel sletning. Ændrede aktiviteter og aktiviteter, hvor sletningen annulleres, indsendes til godkendelse igen.
Endpoint
https://www.tcgm.dk/api/v1/store/events/{eventid}Autorisation
Bearer-nøgle medstore:events:update
Path-parametre
eventidstring · påkrævet- Butiksaktivitetens TCGM-id (store_ev_…) fra oprettelse eller aktivitetslisten. Ikke et api_ev_-behandlings-id eller butikkens id. Trimmes før validering. Mindst 1 tegn. Højst 200 tegn.
Headers
Authorizationstring · påkrævet- Bearer <api-nøgle>. Nøglen oprettes af en owner/admin på organisationens API-side.
Gemmes kun i denne sides hukommelse.
Idempotency-Keystring · påkrævet- 1–200 synlige ASCII-tegn uden mellemrum. Genbrug ved genforsøg; ny nøgle til en ny handling. Mindst 1 tegn. Højst 200 tegn. Mønster: ^[\x21-\x7e]+$
Genbrug nøglen ved genforsøg. “Ny handling” opretter en ny nøgle.
Content-Typestring · påkrævet- JSON-body, højst 256 KiB. Fast værdi: "application/json".
Request-body
application/json · påkrævet
Ukendte felter afvises.
organizationstring · påkrævet- Trimmes før validering. Mindst 1 tegn. Højst 200 tegn.
storestring · påkrævet- Butikkens id fra /api/v1/access. Mindst 1 tegn. Højst 200 tegn.
dataobject · påkrævet- Ukendte felter afvises.
data.titlestring · valgfri- Aktivitetens titel. Den eksisterende slug bevares. Mindst 1 tegn. Højst 200 tegn.
data.descriptionstring · valgfri- Valgfri tekst. Tom streng betyder ingen beskrivelse; normaliseres ved lagring. Højst 10000 tegn.
data.categorystring · valgfri- Tilladte værdier: "PLAY", "TOURNAMENT", "PRERELEASE", "RELEASE", "LEARN_TO_PLAY", "TRADE_DAY", "COMMUNITY", "STORE_EVENT".
data.tcgBrandIdstring · valgfri- Et eksisterende, ikke slettet spil kræves undtagen ved STORE_EVENT, som ikke gemmer et spil. Højst 200 tegn.
data.urlstring · valgfri- Gyldig HTTPS-adresse eller tom streng. Højst 2000 tegn.
data.startsAtstring · valgfri- Lokal dato og tid som YYYY-MM-DDTHH:mm i den angivne timezone. Ugyldige lokale tidspunkter afvises. Mønster: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$
data.endsAtstring · valgfri- Lokal dato og tid som YYYY-MM-DDTHH:mm i den angivne timezone. Ugyldige lokale tidspunkter afvises. Skal ligge efter startsAt. Mønster: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$
data.timezonestring · valgfri- Dansk tidszone. Kun Europe/Copenhagen understøttes. Fast værdi: "Europe/Copenhagen".
data.repeatstring · valgfri- once: én dato. weekly: hver uge. even/odd: lige/ulige ISO-uger. monthly-date: samme dato hver måned. monthly-weekday: samme ugedagsplacering, fx første fredag. startsAt forankrer gentagelsen; måneder uden datoen eller ugedagsplaceringen springes over. Tidspunktet bevares i Europe/Copenhagen, også ved sommertid. Tilladte værdier: "once", "weekly", "even", "odd", "monthly-date", "monthly-weekday".
Underfelter kræves kun, når det overordnede objekt sendes.
Response · 200
Aktiviteten efter kaldet; changed angiver en ændring eller annulleret sletning.
Cache-Control: no-store
{
event: {
id: string;
storeId: string;
slug: string;
title: string;
description: string | null;
category: "PLAY" | "TOURNAMENT" | "PRERELEASE" | "RELEASE" | "LEARN_TO_PLAY" | "TRADE_DAY" | "COMMUNITY" | "STORE_EVENT";
tcgBrandId: string | null;
url: string | null;
startsAt: string;
endsAt: string;
timezone: string;
repeat: "once" | "weekly" | "even" | "odd" | "monthly-date" | "monthly-weekday";
status: "DRAFT" | "PENDING" | "APPROVED";
approvedAt: string | null;
createdAt: string;
updatedAt: string;
deletedAt: string | null;
};
changed: boolean;
}Statuskoder
- 200
- Aktiviteten efter kaldet; changed angiver en ændring eller annulleret sletning.
- 400
- Ugyldigt input: invalid_request.
- 401
- Manglende eller ugyldig Bearer-nøgle: invalid_credential.
- 403
- Adgang nægtet: nøgle, scope, ejerskab eller godkendelse er ikke længere gyldig.
- 404
- Aktiviteten findes ikke i den valgte butik: event_not_found.
- 409
- Konflikt: idempotency_conflict ved genbrugt nøgle med andet indhold; event_started ved sletning efter start eller ændring af et allerede startet starttidspunkt.
- 413
- JSON-body overstiger 256 KiB.
- 415
- Content-Type skal være application/json.
- 503
- Lager eller behandling er utilgængelig. Ingen interne fejl eller skemadetaljer udleveres i produktion.
- 405
- HTTP-metoden understøttes ikke.
Headers og fejlfelter
Cache-Control: no-store
{
error: string;
}Cache-Control: no-store
WWW-Authenticate: Bearer
{
error: string;
}Adfærd og genforsøg
JSON-body må højst fylde 256 KiB. Ukendte bodyfelter afvises. Identiske genforsøg med samme Idempotency-Key returnerer det oprindelige resultat; ændret indhold giver 409. Genbrug nøglen ved usikkert udfald.
Adgang og ejerskab kontrolleres også ved genforsøg og før beskyttet baggrundsarbejde. En senere fejl fortryder ikke automatisk allerede gennemførte ændringer.
Efter start kan startsAt ikke ændres (409 event_started), så en historisk aktivitet ikke kan flyttes til fremtiden for at omgå slettereglen. Udeladt repeat bevarer gentagelsen; repeat: once fjerner den. Udeladte felter bevares. data: {} annullerer en påbegyndt sletning; på en aktiv aktivitet er det en no-op. Slug og ejerskab bevares. Der registreres intet forbrug.
Ændringer og annullering af sletning giver PENDING, eller APPROVED med organisationens eksisterende automatiske godkendelse. Tidligere manuel godkendelse ryddes. En uændret aktiv aktivitet beholder sin status.
Inputtider er lokale; svartider er UTC. Ændring af timezone alene bevarer start- og sluttidspunktets faktiske tidspunkt. Ugyldigt spil eller tidsinterval giver 400. Status, godkendelse, slug og ejerskab kan ikke sættes af klienten.
Genforsøg returnerer den oprindelige kvittering og annullerer ikke en senere sletning. Brug en ny idempotensnøgle til en ny opdatering, der skal annullere sletningen.