API dla modułów wyszukiwarki działających na subdomenach parafii
Wszystkie endpointy wymagają autoryzacji przez klucz API. Klucz można przekazać na jeden z następujących sposobów:
X-API-Key: twoj_klucz_api?api_key=twoj_klucz_apiapi_key=twoj_klucz_api{"api_key": "twoj_klucz_api", ...}/user/api-keys) lub w panelu administratora (/admin/api-keys).
Klucz API jest powiązany z konkretną parafią (subdomeną).
Endpoint: /api/zapal_znicz
Base URL: https://{parish-slug}.grobnet.eu/api/zapal_znicz
get_zapal_zniczPobiera zapalone znicze dla danego grobu.
Parametry:
action (wymagane) - get_zapal_zniczId (wymagane) - ID zmarłegoPrzykład:
curl -X GET \
-H "X-API-Key: twoj_klucz_api" \
"https://subdomena.grobnet.eu/api/zapal_znicz?action=get_zapal_znicz&Id=123"
Odpowiedź:
{
"status": "success",
"message": "Pobrano zapalone znicze",
"data": {
"znicze": [...],
"ile_zapalono": 2,
"ile_zniczy": 0,
"limit": 2,
"count": 1
}
}
add_zapal_zniczZapala znicz z pełną logiką i ograniczeniami.
Parametry:
action (wymagane) - add_zapal_zniczId (wymagane) - ID zmarłegopodpis (wymagane) - Podpis osoby zapalającej znicz (minimum 5 znaków)cmentarzID (opcjonalne) - ID cmentarzaid_user (opcjonalne) - ID użytkownikaOgraniczenia:
Przykład:
curl -X POST \
-H "X-API-Key: twoj_klucz_api" \
-H "Content-Type: application/json" \
-d '{
"action": "add_zapal_znicz",
"Id": 123,
"podpis": "Kochająca rodzina",
"id_user": 0
}' \
https://subdomena.grobnet.eu/api/zapal_znicz
Endpoint: /api/aktualnosci
Base URL: https://{parish-slug}.grobnet.eu/api/aktualnosci
get_postsPobiera listę postów/aktualności.
Parametry:
action (wymagane) - get_postspage (opcjonalne) - Numer strony (domyślnie: 1)limit (opcjonalne) - Liczba wyników na stronę (domyślnie: 20, max: 100)post_cat (opcjonalne) - ID kategoriidraft (opcjonalne) - 0 = opublikowane, 1 = szkicePrzykład:
curl -X GET \
-H "X-API-Key: twoj_klucz_api" \
"https://subdomena.grobnet.eu/api/aktualnosci?action=get_posts&page=1&limit=20"
get_postPobiera pojedynczy post.
Parametry:
action (wymagane) - get_postpost_id (wymagane) - ID postaPrzykład:
curl -X GET \
-H "X-API-Key: twoj_klucz_api" \
"https://subdomena.grobnet.eu/api/aktualnosci?action=get_post&post_id=1"
add_post ADMINDodaje nowy post (wymaga uprawnień administratora).
Parametry (POST/JSON):
action (wymagane) - add_posttitle (wymagane) - Tytuł postacontent (wymagane) - Treść posta (HTML)excerpt (opcjonalne) - Krótki opisstatus (opcjonalne) - Status (publish/draft, domyślnie: publish)categories (opcjonalne) - Tablica ID kategoriitags (opcjonalne) - Tablica tagówfeatured_media (opcjonalne) - ID załącznika będącego miniaturąPrzykład:
curl -X POST \
-H "X-API-Key: twoj_klucz_api" \
-H "Content-Type: application/json" \
-d '{
"action": "add_post",
"title": "Przykładowy tytuł",
"content": "Treść posta w formacie HTML
",
"excerpt": "Krótki opis posta",
"status": "publish",
"categories": [1, 3],
"tags": ["ważne", "ogłoszenie"],
"featured_media": 123
}' \
https://subdomena.grobnet.eu/api/aktualnosci
update_post ADMINAktualizuje istniejący post.
Parametry:
action (wymagane) - update_postpost_id (wymagane) - ID postapost_subject (opcjonalne) - Tytuł postapost_news (opcjonalne) - Treść postapost_extended (opcjonalne) - Rozszerzona treśćpost_cat (opcjonalne) - ID kategoriipost_draft (opcjonalne) - 0 = opublikowany, 1 = szkicpost_sticky (opcjonalne) - 0 = normalny, 1 = przyklejonydelete_post ADMINUsuwa post.
Parametry:
action (wymagane) - delete_postpost_id (wymagane) - ID postaEndpoint: /api/dysponent
Base URL: https://{parish-slug}.grobnet.eu/api/dysponent
get_dysponentPobiera zgłoszenia dysponentów.
Parametry:
action (wymagane) - get_dysponentpage (opcjonalne) - Numer strony (domyślnie: 1)limit (opcjonalne) - Liczba wyników na stronę (domyślnie: 20, max: 100)grvid (opcjonalne) - ID grobu (grvid)id_zmarly (opcjonalne) - ID zmarłegoPrzykład:
curl -X GET \
-H "X-API-Key: twoj_klucz_api" \
"https://subdomena.grobnet.eu/api/dysponent?action=get_dysponent&page=1&limit=20"
add_dysponentDodaje zgłoszenie dysponenta.
Parametry:
action (wymagane) - add_dysponentgrvid (wymagane) - ID grobu (grvid)dysponent_name (wymagane) - Imię dysponentadysponent_nazwisko (wymagane) - Nazwisko dysponentadysponent_email (wymagane) - Email dysponenta (walidacja email i domeny)dysponent_phone (wymagane) - Telefon dysponentaid_zmarly (opcjonalne) - ID zmarłegoopiekunowie_email_active (opcjonalne) - 1 = aktywny email, 0 = nieaktywnyopiekunowie_sms_active (opcjonalne) - 1 = aktywny SMS, 0 = nieaktywnysektor (opcjonalne) - Sektor groburzad (opcjonalne) - Rząd grobupole_grobu (opcjonalne) - Pole grobuPrzykład:
curl -X POST \
-H "X-API-Key: twoj_klucz_api" \
-H "Content-Type: application/json" \
-d '{
"action": "add_dysponent",
"grvid": "123",
"dysponent_name": "Jan",
"dysponent_nazwisko": "Kowalski",
"dysponent_email": "jan@example.com",
"dysponent_phone": "123456789",
"opiekunowie_email_active": 1,
"opiekunowie_sms_active": 0
}' \
https://subdomena.grobnet.eu/api/dysponent
grvid, zwracany jest status warning z komunikatem.
Endpoint: /api/blad
Base URL: https://{parish-slug}.grobnet.eu/api/blad
get_bladPobiera zgłoszenia błędów.
Parametry:
action (wymagane) - get_bladpage (opcjonalne) - Numer strony (domyślnie: 1)limit (opcjonalne) - Liczba wyników na stronę (domyślnie: 20, max: 100)message_to (opcjonalne) - ID administratora (odbiorca)message_from (opcjonalne) - ID użytkownika (nadawca)message_status (opcjonalne) - Status: 0 = otwarte, 1 = w trakcie, 2 = zamknięte, -1 = wszystkiePrzykład:
curl -X GET \
-H "X-API-Key: twoj_klucz_api" \
"https://subdomena.grobnet.eu/api/blad?action=get_blad&page=1&limit=20"
add_bladDodaje zgłoszenie błędu.
Parametry:
action (wymagane) - add_bladtytul (wymagane) - Tytuł zgłoszenia (minimum 3 znaki)messenger (wymagane) - Treść zgłoszenia (minimum 20 znaków)email (wymagane) - Email nadawcyid_admin (wymagane) - ID administratora (odbiorca)name (opcjonalne) - Imię i nazwisko (jeśli użytkownik nie jest zalogowany)imie_and_nazwisko (opcjonalne) - Imię i nazwisko zmarłegop1 (opcjonalne) - Sektorp2 (opcjonalne) - Rządp3 (opcjonalne) - Pole grobuattachment (opcjonalne) - Załączniki (multipart/form-data, max 1MB, formaty: jpg, jpeg, png, gif, pdf)Przykład:
curl -X POST \
-H "X-API-Key: twoj_klucz_api" \
-H "Content-Type: application/json" \
-d '{
"action": "add_blad",
"tytul": "Błąd w danych",
"messenger": "Opis błędu który znalazłem na stronie",
"email": "test@example.com",
"id_admin": 1,
"imie_and_nazwisko": "Jan Kowalski",
"p1": "A",
"p2": "1",
"p3": "001"
}' \
https://subdomena.grobnet.eu/api/blad
Endpoint: /api/maps
Base URL: https://{parish-slug}.grobnet.eu/api/maps
get_mapsPobiera mapy sektorów.
Parametry:
action (wymagane) - get_mapspage (opcjonalne) - Numer strony (domyślnie: 1)limit (opcjonalne) - Liczba wyników na stronę (domyślnie: 20, max: 100)sektor (opcjonalne) - Nazwa sektoraaktywna (opcjonalne) - 1 = aktywne, 0 = nieaktywne, -1 = wszystkiePrzykład:
curl -X GET \
-H "X-API-Key: twoj_klucz_api" \
"https://subdomena.grobnet.eu/api/maps?action=get_maps&sektor=A_I"
get_koordynatyPobiera współrzędne grobów dla danego sektora.
Parametry:
action (wymagane) - get_koordynatysektor (wymagane) - Nazwa sektoranr_grobu (opcjonalne) - Numer grobuPrzykład:
curl -X GET \
-H "X-API-Key: twoj_klucz_api" \
"https://subdomena.grobnet.eu/api/maps?action=get_koordynaty&sektor=A_I"
add_koordynaty ADMINDodaje lub aktualizuje współrzędne grobu.
Parametry:
action (wymagane) - add_koordynatysektor (wymagane) - Nazwa sektoranr_grobu (wymagane) - Numer grobutop_px (wymagane) - Współrzędna Y (piksele)left_px (wymagane) - Współrzędna X (piksele)Przykład:
curl -X POST \
-H "X-API-Key: twoj_klucz_api" \
-H "Content-Type: application/json" \
-d '{
"action": "add_koordynaty",
"sektor": "A_I",
"nr_grobu": "001",
"top_px": 100,
"left_px": 200
}' \
https://subdomena.grobnet.eu/api/maps
Endpoint: /api/zdjecia_panel
Base URL: https://{parish-slug}.grobnet.eu/api/zdjecia_panel
get_zdjeciaPobiera listę zdjęć.
Parametry:
action (wymagane) - get_zdjeciapage (opcjonalne) - Numer strony (domyślnie: 1)limit (opcjonalne) - Liczba wyników na stronę (domyślnie: 20, max: 100)grob_id (opcjonalne) - ID grobustatus (opcjonalne) - Status: oczekujace, zatwierdzone, odrzuconeuser_id (opcjonalne) - ID użytkownikaPrzykład:
curl -X GET \
-H "X-API-Key: twoj_klucz_api" \
"https://subdomena.grobnet.eu/api/zdjecia_panel?action=get_zdjecia&grob_id=123&status=oczekujace"
add_zdjecieWgrywa zdjęcie pomnika.
Parametry:
action (wymagane) - add_zdjeciegrob_id (wymagane) - ID grobu (lub grvid)grvid (wymagane jeśli brak grob_id) - ID grobu (grvid)opis (opcjonalne) - Opis zdjęciazdjecie_file (wymagane) - Plik zdjęcia (multipart/form-data)file_base64 (alternatywa) - Zdjęcie w formacie base64 (JSON)filename (wymagane z base64) - Nazwa plikuFormaty plików: jpg, jpeg, png, gif
Maksymalny rozmiar: 5MB (domyślnie, konfigurowalne)
Maksymalne wymiary: 1920x1080px (domyślnie, konfigurowalne)
Przykład (multipart/form-data):
curl -X POST \
-H "X-API-Key: twoj_klucz_api" \
-F "action=add_zdjecie" \
-F "grob_id=123" \
-F "opis=Zdjęcie pomnika" \
-F "zdjecie_file=@zdjecie.jpg" \
https://subdomena.grobnet.eu/api/zdjecia_panel
Przykład (base64 JSON):
curl -X POST \
-H "X-API-Key: twoj_klucz_api" \
-H "Content-Type: application/json" \
-d '{
"action": "add_zdjecie",
"grob_id": 123,
"opis": "Zdjęcie pomnika",
"file_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
"filename": "zdjecie.jpg"
}' \
https://subdomena.grobnet.eu/api/zdjecia_panel
approve_zdjecie ADMINZatwierdza zdjęcie.
Parametry:
action (wymagane) - approve_zdjecieid (wymagane) - ID zdjęciareject_zdjecie ADMINOdrzuca zdjęcie.
Parametry:
action (wymagane) - reject_zdjecieid (wymagane) - ID zdjęciadelete_zdjecie ADMINUsuwa zdjęcie (plik i rekord z bazy).
Parametry:
action (wymagane) - delete_zdjecieid (wymagane) - ID zdjęciaWszystkie odpowiedzi są w formacie JSON z następującą strukturą:
{
"status": "success|error|warning",
"message": "Komunikat odpowiedzi",
"data": { ... }
}
Statusy:
success - Operacja zakończona sukcesemerror - Wystąpił błądwarning - Ostrzeżenie (np. zgłoszenie już istnieje){
"data": [
{
"id": 12345,
"imie": "Jan",
"drugie_imie": "Marian",
"nazwisko": "Kowalski",
"nazwisko_rodowe": "Nowak",
"data_urodzenia": "1950-05-15",
"data_zgonu": "2023-01-20",
"data_pogrzebu": "2023-01-25",
"miejsce_zamieszkania": "Warszawa",
"cmentarz": {
"id": 1,
"nazwa": "Cmentarz Komunalny w Warszawie",
"adres": "ul. Wałbrzyska 1, 00-001 Warszawa"
},
"kwatera": "A15",
"rzad": 5,
"miejsce": 12,
"zdjecie": "https://przykladowy-cmentarz.pl/zdjecia/12345.jpg",
"dodatkowe_informacje": "Pogrzeb odbędzie się w kaplicy cmentarnej o godzinie 12:00.",
"data_utworzenia": "2023-01-21T10:30:00Z",
"data_aktualizacji": "2023-01-21T10:30:00Z"
}
// ... więcej wpisów
],
"links": {
"first": "https://api.grobnet.pl/api/v1/zmarli?page=1",
"last": "https://api.grobnet.pl/api/v1/zmarli?page=5",
"prev": null,
"next": "https://api.grobnet.pl/api/v1/zmarli?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"path": "https://api.grobnet.pl/api/v1/zmarli",
"per_page": 20,
"to": 20,
"total": 98
}
}
Dodaje nowego zmarłego do systemu.
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
imie |
string | Tak | Imię zmarłego |
drugie_imie |
string | Nie | Drugie imię zmarłego |
nazwisko |
string | Tak | Nazwisko zmarłego |
nazwisko_rodowe |
string | Nie | Nazwisko rodowe (dla kobiet) |
data_urodzenia |
date (YYYY-MM-DD) | Tak | Data urodzenia |
data_zgonu |
date (YYYY-MM-DD) | Tak | Data zgonu |
data_pogrzebu |
date (YYYY-MM-DD) | Nie | Planowana data pogrzebu |
cmentarz_id |
integer | Tak | ID cmentarza |
kwatera |
string | Nie | Numer kwatery |
rzad |
string | Nie | Numer rzędu |
miejsce |
string | Nie | Numer miejsca |
zdjecie |
file/URL | Nie | Zdjęcie zmarłego (plik lub URL) |
dodatkowe_informacje |
text | Nie | Dodatkowe informacje |
{
"success": true,
"message": "Zmarły został pomyślnie dodany",
"data": {
"id": 12345,
"imie": "Jan",
"nazwisko": "Kowalski",
"data_urodzenia": "1950-05-15",
"data_zgonu": "2023-01-20",
"cmentarz_id": 1,
"kwatera": "A15",
"rzad": 5,
"miejsce": 12,
"created_at": "2023-01-21T10:30:00Z",
"updated_at": "2023-01-21T10:30:00Z"
}
}
{
"success": false,
"message": "Wystąpił błąd walidacji",
"errors": {
"imie": ["Pole imię jest wymagane"],
"nazwisko": ["Pole nazwisko jest wymagane"],
"data_urodzenia": ["Nieprawidłowy format daty urodzenia"],
"cmentarz_id": ["Wybrany cmentarz nie istnieje"]
}
}
Zwraca szczegółowe informacje o zmarłym o podanym ID.
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
id |
integer | Tak | ID zmarłego |
{
"data": {
"id": 12345,
"imie": "Jan",
"drugie_imie": "Marian",
"nazwisko": "Kowalski",
"nazwisko_rodowe": "Nowak",
"data_urodzenia": "1950-05-15",
"data_zgonu": "2023-01-20",
"data_pogrzebu": "2023-01-25",
"miejsce_zamieszkania": "Warszawa",
"cmentarz": {
"id": 1,
"nazwa": "Cmentarz Komunalny w Warszawie",
"adres": "ul. Wałbrzyska 1, 00-001 Warszawa",
"telefon": "+48 22 123 45 67",
"email": "kontakt@cmentarz-warszawa.pl",
"strona_www": "https://cmentarz-warszawa.pl"
},
"kwatera": "A15",
"rzad": 5,
"miejsce": 12,
"zdjecie": "https://przykladowy-cmentarz.pl/zdjecia/12345.jpg",
"dodatkowe_informacje": "Pogrzeb odbędzie się w kaplicy cmentarnej o godzinie 12:00.",
"data_utworzenia": "2023-01-21T10:30:00Z",
"data_aktualizacji": "2023-01-21T10:30:00Z",
"znicze": [
{
"id": 1,
"nazwa": "Znicz duży biały",
"zapalony": true,
"data_zapalenia": "2023-01-25",
"data_zgaszenia": null,
"zapalony_przez": "Jan Nowak",
"zgaszony_przez": null
}
],
"msze": [
{
"id": 1,
"data_mszy": "2023-01-30",
"godzina_mszy": "18:00",
"kościół": "Kościół Św. Krzyża w Warszawie",
"intencja": "W intencji zmarłego Jana Kowalskiego"
}
]
}
}
Oto lista kodów błędów, które mogą zostać zwrócone przez API:
| Kod błędu | Opis | HTTP Status |
|---|---|---|
400 |
Nieprawidłowe żądanie | 400 Bad Request |
401 |
Brak autoryzacji | 401 Unauthorized |
403 |
Brak uprawnień | 403 Forbidden |
404 |
Nie znaleziono zasobu | 404 Not Found |
422 |
Nieprawidłowe dane wejściowe | 422 Unprocessable Entity |
429 |
Przekroczono limit zapytań | 429 Too Many Requests |
500 |
Wewnętrzny błąd serwera | 500 Internal Server Error |