API Reference

REST API — wszystkie endpointy backendu Foodyo.

Wszystkie endpointy są prefixowane /api. Endpointy wymagające autoryzacji oczekują nagłówka Authorization: Bearer <token>.

#Autoryzacja

MetodaEndpointOpis
POST/api/auth/register-tempRejestracja (email + kod weryfikacyjny)
POST/api/auth/loginLogowanie hasłem → JWT token
POST/api/auth/login-with-codeWysyła kod logowania na email
POST/api/auth/verify-emailWeryfikacja kodu → sesja (JWT)
POST/api/auth/set-passwordUstawienie / reset hasła (po weryfikacji kodem) 🔒
GET/api/auth/meDane zalogowanego użytkownika 🔒

#Projekt / Draft

MetodaEndpointOpis
GET/api/project/listLista projektów użytkownika 🔒
GET/api/project/:idSzczegóły projektu 🔒
POST/api/project/createTworzenie nowego projektu
PUT/api/project/:idAktualizacja draftu 🔒
DELETE/api/project/:idUsunięcie projektu 🔒
POST/api/project/:id/claimPowiązanie projektu z kontem 🔒

#Publikacja

MetodaEndpointOpis
POST/api/publish/:idPublikuje draft jako stronę 🔒
GET/api/publish/:id/statusStatus publikacji 🔒

#Zamówienia

Publiczne requesty używają parametru projectId w query lub body; nagłówek x-project-id jest legacy fallback.
MetodaEndpointOpis
GET/api/orders/v2Lista zamówień (Prisma) 🔒
GET/api/orders/v2/:idSzczegóły zamówienia 🔒
POST/api/orders/v2Złożenie zamówienia (checkout)
PATCH/api/orders/v2/:id/statusZmiana statusu 🔒
PATCH/api/orders/v2/:id/acceptPrzyjęcie zamówienia 🔒
PATCH/api/orders/v2/:id/rejectOdrzucenie zamówienia 🔒
GET/api/orders/v2/public/:tokenŚledzenie (publiczne, token)
GET/api/orders/v2/:id/kitchen-pdfPDF do kuchni 🔒

#Strefy dostawy

MetodaEndpointOpis
GET/api/delivery-zones/:projectIdLista stref dostawy 🔒
POST/api/delivery-zones/:projectIdTworzenie strefy 🔒
PUT/api/delivery-zones/:projectId/:zoneIdAktualizacja strefy 🔒
DELETE/api/delivery-zones/:projectId/:zoneIdUsunięcie strefy 🔒
POST/api/delivery-zones/:projectId/checkSprawdzenie adresu w strefie

#Ustawienia

MetodaEndpointOpis
GET/api/settings/:projectIdPobranie ustawień 🔒
PUT/api/settings/:projectIdAktualizacja ustawień 🔒
PUT/api/settings/:projectId/domainKonfiguracja domeny 🔒

#Media

MetodaEndpointOpis
POST/api/media/uploadUpload pliku (zdjęcia) 🔒
GET/api/media/:projectIdLista plików 🔒
DELETE/api/media/:projectId/:fileIdUsunięcie pliku 🔒

#Strona publiczna

MetodaEndpointOpis
GET/api/site/:projectId/dataDane opublikowanej strony
GET/api/site/:projectId/menuMenu restauracji (publiczne)
GET/api/site/:projectId/contactDane kontaktowe (publiczne)
GET/api/site/:projectId/settingsUstawienia publiczne (godziny, typy zamówień)

#Forum / Community

MetodaEndpointOpis
GET/api/community/threadsLista wątków
GET/api/community/threads/:idSzczegóły wątku
POST/api/community/threadsNowy wątek 🔒
POST/api/community/threads/:id/repliesOdpowiedź w wątku 🔒
POST/api/community/threads/:id/voteGłosowanie 🔒

#Kody odpowiedzi

KodZnaczenie
200Sukces
201Utworzono (np. nowy projekt, zamówienie)
400Błędne dane wejściowe
401Brak autoryzacji (token wygasł / brak)
403Brak dostępu (nie twój zasób)
404Nie znaleziono
500Błąd serwera

🔒 = wymaga nagłówka Authorization: Bearer <token>