Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ==================================================
- 1. GET /panel/shops/{shop_id}/
- ==================================================
- Opis:
- - pobiera podstawowe informacje o sklepie
- - frontend uzywa tego endpointu przy starcie aplikacji
- Przyklad:
- GET https://dev123.vishop.pl/panel/shops/1/
- Przykladowa odpowiedz:
- {
- "id": 1,
- "name": "Przykladowy sklep",
- "logo": "https://...",
- "navigation": [
- {
- "id": 564,
- "type": "subpage",
- "name": "Regulamin",
- "url": null,
- "subpage": 495,
- "subpage_name": "Regulamin"
- }
- ],
- "home_link": true,
- "online": true,
- "latest_payments": true,
- "richest_player": true,
- "monthly_goal_public": 0,
- "domain": "asd.ivall.pl",
- "announcements": []
- }
- Najwazniejsze pola uzywane przez frontend:
- - `id` - ID sklepu
- - `name` - nazwa sklepu
- - `logo` - logo sklepu
- - `navigation` - linki w menu
- - `home_link` - czy pokazywac link do strony glownej
- - `latest_payments` - czy pokazywac ostatnie zakupy
- - `richest_player` - czy pokazywac liste najbogatszych graczy
- - `monthly_goal_public` - procent celu miesiecznego
- ==================================================
- 2. GET /panel/shops/{shop_id}/servers/
- ==================================================
- Opis:
- - pobiera liste serwerow / trybow
- Przyklad:
- GET https://dev123.vishop.pl/panel/shops/1/servers/
- Przykladowa odpowiedz:
- [
- {
- "id": 1,
- "name": "Survival",
- "shop": 1,
- "ip": "mc.ivall.pl",
- "image": "https://..."
- }
- ]
- Najwazniejsze pola:
- - `id` - ID serwera
- - `name` - nazwa trybu
- - `ip` - adres serwera
- - `image` - obrazek trybu
- ==================================================
- 3. GET /panel/shops/{shop_id}/products/?server={server_id}
- ==================================================
- Opis:
- - pobiera produkty przypisane do danego serwera
- - lista jest renderowana na stronie glownej i na podstronie serwera
- Przyklad:
- GET https://dev123.vishop.pl/panel/shops/1/products/?server=1
- Przykladowa odpowiedz:
- [
- {
- "id": 13645,
- "name": "VIP",
- "description": "<p>...</p>",
- "short_description": "",
- "image": "https://...",
- "main_price": "5.00",
- "promo": "15",
- "require_player_online": false,
- "slider": false,
- "slider_min": 2,
- "slider_max": 55,
- "slider_name": "Ilosc",
- "order": 1,
- "server": 1,
- "prices": {
- "paypal": "5.00",
- "hotpay_transfer": "5.00",
- "paybylink_transfer": "5.00",
- "stripe": "12.00"
- }
- }
- ]
- Najwazniejsze pola:
- - `id` - ID produktu
- - `name` - nazwa produktu
- - `description` - opis HTML
- - `image` - miniatura / obrazek produktu
- - `main_price` - glowna cena
- - `promo` - procent promocji albo `null`
- - `require_player_online` - czy gracz musi byc online
- - `slider`, `slider_min`, `slider_max`, `slider_name` - konfiguracja ilosci
- - `prices` - ceny dla konkretnych operatorow platnosci
- Uwaga:
- - frontend kupuje produkt przez `vishopPay(shopId, productId)` z `https://vishop.pl/pay.js`
- - w tym repo nie ma bezposredniego endpointu API do tworzenia platnosci; wywolywany jest zewnetrzny skrypt VIshop
- ==================================================
- 4. GET /panel/shops/{shop_id}/latest_payments?amount={n}
- ==================================================
- Opis:
- - pobiera ostatnie zakupy
- Przyklad:
- GET https://dev123.vishop.pl/panel/shops/1/latest_payments?amount=5
- Przykladowa odpowiedz:
- [
- {
- "player": "test",
- "status": "executed",
- "product_name": "VIP",
- "quantity": 1,
- "server": 1,
- "created_at": "2026-01-28T10:26:56.883807Z"
- }
- ]
- Najwazniejsze pola:
- - `player` - nick gracza
- - `status` - status zakupu
- - `product_name` - nazwa produktu
- - `quantity` - ilosc
- - `server` - ID serwera
- - `created_at` - data utworzenia
- ==================================================
- 5. GET /panel/shops/{shop_id}/richest_player/
- ==================================================
- Opis:
- - pobiera ranking najbogatszych graczy
- - opcjonalnie mozna podac `amount`
- Przyklady:
- GET https://dev123.vishop.pl/panel/shops/1/richest_player/
- GET https://dev123.vishop.pl/panel/shops/1/richest_player/?amount=3
- Przykladowa odpowiedz:
- [
- {
- "player": "test",
- "spend": 234.86
- },
- {
- "player": "rewdfsa",
- "spend": 104.55
- }
- ]
- Najwazniejsze pola:
- - `player` - nick gracza
- - `spend` - wydana kwota
- ==================================================
- 6. GET /panel/shops/{shop_id}/announcements/
- ==================================================
- Opis:
- - pobiera ogloszenia sklepu
- - endpoint jest wywolywany w kodzie strony glownej
- - w tej wersji szablonu pobrane dane nie sa nigdzie renderowane
- Przyklad:
- GET https://dev123.vishop.pl/panel/shops/1/announcements/
- Przykladowa odpowiedz:
- []
- Uwaga:
- - nie da sie potwierdzic pelnego formatu pojedynczego ogloszenia, bo dla `shop_id=1` lista jest pusta
- ==================================================
- 7. GET /panel/shops/{shop_id}/subpages/{subpage_id}/
- ==================================================
- Opis:
- - pobiera tresc podstrony
- - frontend renderuje `content` przez `v-html`, wiec tresc przychodzi jako HTML
- Przyklad:
- GET https://dev123.vishop.pl/panel/shops/1/subpages/495/
- Przykladowa odpowiedz:
- {
- "id": 495,
- "name": "Regulamin",
- "content": "<h1>Regulamin serwera</h1><ul><li><p>Przestrzegaj netykiety</p></li></ul>",
- "shop": 1
- }
- Najwazniejsze pola:
- - `id` - ID podstrony
- - `name` - nazwa podstrony
- - `content` - tresc HTML
- - `shop` - ID sklepu
- ==================================================
- 8. GET /panel/shops/{shop_id}/payment-status/{payment_id}/
- ==================================================
- Opis:
- - sprawdza status transakcji
- - frontend uzywa tego na stronie `/payment/[id]`
- Przyklad:
- GET https://dev123.vishop.pl/panel/shops/1/payment-status/123/
- Co frontend zaklada po odpowiedzi:
- - odpowiedz zawiera pole `status`
- - jesli `status === "waiting"`, to platnosc jest jeszcze nieoplacona
- - jesli `status` ma inna wartosc, frontend traktuje transakcje jako oplacona
- - jesli nie ma pola `status`, frontend tez traktuje to jako brak oplacenia
- Potwierdzony blad dla nieistniejacego ID:
- - HTTP 404
- - body:
- {"detail":"Not found."}
- Uwaga:
- - nie udalo sie pobrac przykladu poprawnej odpowiedzi dla prawdziwego `payment_id`, ale kod jasno pokazuje, ze kluczowe jest pole `status`
- ==================================================
- 9. POST /panel/shops/{shop_id}/vouchers/use/
- ==================================================
- Opis:
- - realizuje voucher
- Naglowki uzywane przez frontend:
- - `Accept: application/json, text/plain, */*`
- - `Content-Type: application/json;charset=utf-8`
- Body JSON:
- {
- "player": "nick_gracza",
- "code": "KOD_VOUCHERA"
- }
- Przyklad:
- POST https://dev123.vishop.pl/panel/shops/1/vouchers/use/
- Przykladowe body:
- {
- "player": "TestUser",
- "code": "ABC-123"
- }
- Zachowanie frontendu:
- - jesli odpowiedz ma status 2xx, frontend pokazuje sukces
- - jesli odpowiedz nie ma statusu 2xx, frontend pokazuje komunikat "Niepoprawny voucher"
- - body odpowiedzi sukcesu nie jest dalej uzywane przez ten szablon
- Potwierdzony blad dla blednego kodu:
- - HTTP 404
- - body:
- {"detail":"No Voucher matches the given query."}
- ==================================================
- Szybkie podsumowanie
- ==================================================
- Endpointy uzywane przez szablon:
- - GET `/panel/shops/{shop_id}/`
- - GET `/panel/shops/{shop_id}/servers/`
- - GET `/panel/shops/{shop_id}/products/?server={server_id}`
- - GET `/panel/shops/{shop_id}/latest_payments?amount={n}`
- - GET `/panel/shops/{shop_id}/richest_player/?amount={n}`
- - GET `/panel/shops/{shop_id}/announcements/`
- - GET `/panel/shops/{shop_id}/subpages/{subpage_id}/`
- - GET `/panel/shops/{shop_id}/payment-status/{payment_id}/`
- - POST `/panel/shops/{shop_id}/vouchers/use/`
- Poza API:
- - zakup produktu z widoku sklepu uruchamia `vishopPay(shopId, productId)` z zewnetrznego skryptu `https://vishop.pl/pay.js`
- - sam endpoint tworzacy platnosc nie wystepuje w tym repo
Advertisement
Add Comment
Please, Sign In to add comment