Ugrás a fő tartalomhoz
Was this helpful?

Foglalás API

Foglalás és nyilvános foglalás

Foglalási naptárak kezelése, foglalások létrehozása és nyilvános foglalási linkek közzététele

Ez az oldal a nem adminisztratív foglalási felületet csoportosítja: foglalási-naptári adminisztráció, belső foglalási CRUD és a közzétett erőforrás-jogkivonatokkal működő nyilvános foglalási végpontok.

JWT vagy felhasználói API kulcsA nyilvános foglalás nem hitelesítettSzerep alapú foglalási naptárakFoglalási hozzáférési őr

Forrás

  • Foglalási naptárvezérlő: backend-nestjs/src/organisations/reservation-calendar.controller.ts
  • Foglaláskezelő: backend-nestjs/src/reservations/reservations.controller.ts
  • Nyilvános foglalásvezérlő: backend-nestjs/src/resources/public-booking.controller.ts
  • DTO-k: backend-nestjs/src/organisations/dto/reservation-calendar.dto.ts, backend-nestjs/src/dto/reservation.dto.ts, backend-nestjs/src/dto/public-booking.dto.ts, backend-nestjs/src/reservations/dto/list-reservations.query.dto.ts

Hitelesítés és engedélyek

  • A foglalási naptári útvonalak hitelesítést és szerepkör-ellenőrzést igényelnek.
  • A belső foglaláshoz CRUD JwtAuthGuard plusz ReservationAccessGuard szükséges.
  • A nyilvános foglalási útvonalak nem hitelesítettek, és az URL-ben található tokent használják.

Fontos forrás megjegyzés:

  • A reservation-calendar.controller.ts alsó foglalási útvonalai állvány-stílusú példa szerepőr-végpontok helyőrző viselkedéssel. Ezek az útvonal felületének részét képezik, de nem teljes foglalási CRUD csere.

Végpont referencia

Foglalási naptár adminisztrációja

módszerÚtvonalCélKérjen vagy érdeklődjönAuthForrás
POST/api/organisations/:id/reservation-calendarsHozzon létre egy foglalási naptárt egy szervezet számára.Elérési út: id, törzs: naptár hasznos terhelésJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
GET/api/organisations/:id/reservation-calendarsSorolja fel egy szervezet foglalási naptárait.Elérési út: idJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
POST/api/reservation-calendars/:id/rolesRendeljen egy foglalási naptári szerepet egy felhasználóhoz.Elérési út: id, törzs: userId,roleJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
DELETE/api/reservation-calendars/:id/roles/:userIdTávolítsa el a foglalási naptári szerepkört.Elérési út: id,userIdJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
GET/api/reservation-calendars/:id/rolesSorolja fel a szerepkörök hozzárendeléseit.Elérési út: idJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
GET/api/users/reservation-calendarsAz aktuális felhasználó számára elérhető foglalási naptárak listája.Egyik semJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
GET/api/reservation-calendars/:id/my-roleSzerezze be az aktuális felhasználói szerepkört.Elérési út: idJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
GET/api/reservation-calendars/:id/has-role/:roleTesztelje, hogy az aktuális felhasználónak van-e szerepe.Elérési út: id,roleJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
POST/api/reservation-calendars/:id/reservationsPélda csak a szerkesztő által használható foglalási műveletre.Elérési út: idJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
GET/api/reservation-calendars/:id/reservationsPélda szerkesztői vagy lektori foglalási lista műveletre.Elérési út: idJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts
POST/api/reservation-calendars/:id/reservations/:reservationId/approvePélda jóváhagyási műveletre.Elérési út: id,reservationIdJWT vagy felhasználói API kulcsorganisations/reservation-calendar.controller.ts

Belső foglalások

módszerÚtvonalCélKérjen vagy érdeklődjönAuthForrás
POST/api/reservationsHozzon létre egy foglalást.Törzs: foglalási mezőkJWT vagy felhasználói API kulcsreservations/reservations.controller.ts
GET/api/reservationsA foglalások listája.Lekérdezés: resourceIdJWT vagy felhasználói API kulcsreservations/reservations.controller.ts
GET/api/reservations/:idFoglaljon egyet.Elérési út: idJWT vagy felhasználói API kulcsreservations/reservations.controller.ts
PATCH/api/reservations/:idFrissítsen egy foglalást.Elérési út: id, törzs: részleges foglalási mezőkJWT vagy felhasználói API kulcsreservations/reservations.controller.ts
DELETE/api/reservations/:idEgy foglalás törlése.Elérési út: idJWT vagy felhasználói API kulcsreservations/reservations.controller.ts

Nyilvános foglalás

módszerÚtvonalCélKérjen vagy érdeklődjönAuthForrás
GET/api/public/booking/:tokenNyilvános foglalási metaadatok feloldása.Elérési út: tokenNyilvánosresources/public-booking.controller.ts
GET/api/public/booking/:token/availabilityOlvassa el a rendelkezésre álló résidőket egy napra.Elérési út: token, lekérdezés: dateNyilvánosresources/public-booking.controller.ts
POST/api/public/booking/:token/reserveNyilvános foglalás létrehozása.Elérési út: token, törzs: foglalási mezőkNyilvánosresources/public-booking.controller.ts

Kérjen alakzatokat

Foglalási naptárak

CreateReservationCalendarDto

  • name: kötelező, 1..100 karakter
  • description: opcionális, legfeljebb 500 karakter
  • color: választható hatszögletű szín
  • reservationRules: opcionális objektum
  • editorUserIds: opcionális egyedi pozitív egész tömb
  • reviewerUserIds: opcionális egyedi pozitív egész tömb

AssignRoleDto

  • userId: kötelező pozitív szám
  • role: kötelező enum ReservationCalendarRoleType

Belső foglalások

CreateReservationDto és UpdateReservationDto

  • startTime: létrehozáskor kötelező, ISO dátum-idő
  • endTime: létrehozáskor kötelező, ISO dátum-idő, startTime után kell lennie
  • quantity: opcionális int, minimum 1
  • customerInfo: opcionális objektum
  • notes: opcionális megtisztított karakterlánc, legfeljebb 2048 karakter
  • resourceId: létrehozáskor kötelező, minimum 1
  • status: csak frissítési enum pending|confirmed|completed|cancelled|waitlist

Lekérdezés:

  • ListReservationsQueryDto.resourceId: opcionális int >= 1

Nyilvános foglalás

CreatePublicBookingDto

  • startTime: kötelező ISO dátum-idő
  • endTime: kötelező ISO dátum-idő
  • quantity: kötelező int, minimum 1
  • customerName: kötelező karakterlánc
  • customerEmail: kötelező e-mail
  • customerPhone: kötelező karakterlánc
  • notes: opcionális karakterlánc

Elérhetőségi lekérdezés:

  • date: kötelező ISO-dátum karakterlánc

Példahívások

Hozzon létre egy foglalási naptárt

curl -X POST "$PRIMECAL_API/api/organisations/12/reservation-calendars" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Family bookings",
"color": "#14b8a6",
"editorUserIds": [18],
"reviewerUserIds": [19]
}'

Hozzon létre egy foglalást

curl -X POST "$PRIMECAL_API/api/reservations" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startTime": "2026-04-01T08:00:00.000Z",
"endTime": "2026-04-01T09:00:00.000Z",
"resourceId": 21,
"quantity": 1
}'

Nyilvános foglalás létrehozása

curl -X POST "$PRIMECAL_API/api/public/booking/$PUBLIC_TOKEN/reserve" \
-H "Content-Type: application/json" \
-d '{
"startTime": "2026-04-01T08:00:00.000Z",
"endTime": "2026-04-01T09:00:00.000Z",
"quantity": 1,
"customerName": "May B. Late",
"customerEmail": "may@example.com",
"customerPhone": "+36301112222"
}'

Válasz és viselkedés megjegyzések

  • A belső foglalásokat a ReservationAccessGuard védi.
  • A foglalási naptári példa végpontjai szerepkörhöz kötöttek, de jelenleg scaffold szintű megvalósításban vannak.
  • A nyilvános foglalási végpontok csak a közzétett tokent használják; nem igényelnek hitelesítést.

Legjobb gyakorlatok

  • Használja a foglalási naptárakat a szereptudatos munkafolyamatokhoz és a /api/reservations a tényleges belső foglalási CRUD-hoz.
  • Érvényesítse a rendelés dátumát ügyféloldalon a foglalási írások elküldése előtt.
  • Kezelje a nyilvános foglalási tokeneket titokként. Újragenerálja őket, ha a linkek kiszivárognak vagy a személyzet megváltozik.
  • Adjon hozzá díjkorlátozást vagy botellenes védelmet a nyilvános foglalási űrlapok előtt.