Guest User

Untitled

a guest
Apr 2nd, 2026
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.02 KB | None | 0 0
  1. ==================================================
  2. 1. GET /panel/shops/{shop_id}/
  3. ==================================================
  4.  
  5. Opis:
  6. - pobiera podstawowe informacje o sklepie
  7. - frontend uzywa tego endpointu przy starcie aplikacji
  8.  
  9. Przyklad:
  10. GET https://dev123.vishop.pl/panel/shops/1/
  11.  
  12. Przykladowa odpowiedz:
  13. {
  14. "id": 1,
  15. "name": "Przykladowy sklep",
  16. "logo": "https://...",
  17. "navigation": [
  18. {
  19. "id": 564,
  20. "type": "subpage",
  21. "name": "Regulamin",
  22. "url": null,
  23. "subpage": 495,
  24. "subpage_name": "Regulamin"
  25. }
  26. ],
  27. "home_link": true,
  28. "online": true,
  29. "latest_payments": true,
  30. "richest_player": true,
  31. "monthly_goal_public": 0,
  32. "domain": "asd.ivall.pl",
  33. "announcements": []
  34. }
  35.  
  36. Najwazniejsze pola uzywane przez frontend:
  37. - `id` - ID sklepu
  38. - `name` - nazwa sklepu
  39. - `logo` - logo sklepu
  40. - `navigation` - linki w menu
  41. - `home_link` - czy pokazywac link do strony glownej
  42. - `latest_payments` - czy pokazywac ostatnie zakupy
  43. - `richest_player` - czy pokazywac liste najbogatszych graczy
  44. - `monthly_goal_public` - procent celu miesiecznego
  45.  
  46. ==================================================
  47. 2. GET /panel/shops/{shop_id}/servers/
  48. ==================================================
  49.  
  50. Opis:
  51. - pobiera liste serwerow / trybow
  52.  
  53. Przyklad:
  54. GET https://dev123.vishop.pl/panel/shops/1/servers/
  55.  
  56. Przykladowa odpowiedz:
  57. [
  58. {
  59. "id": 1,
  60. "name": "Survival",
  61. "shop": 1,
  62. "ip": "mc.ivall.pl",
  63. "image": "https://..."
  64. }
  65. ]
  66.  
  67. Najwazniejsze pola:
  68. - `id` - ID serwera
  69. - `name` - nazwa trybu
  70. - `ip` - adres serwera
  71. - `image` - obrazek trybu
  72.  
  73. ==================================================
  74. 3. GET /panel/shops/{shop_id}/products/?server={server_id}
  75. ==================================================
  76.  
  77. Opis:
  78. - pobiera produkty przypisane do danego serwera
  79. - lista jest renderowana na stronie glownej i na podstronie serwera
  80.  
  81. Przyklad:
  82. GET https://dev123.vishop.pl/panel/shops/1/products/?server=1
  83.  
  84. Przykladowa odpowiedz:
  85. [
  86. {
  87. "id": 13645,
  88. "name": "VIP",
  89. "description": "<p>...</p>",
  90. "short_description": "",
  91. "image": "https://...",
  92. "main_price": "5.00",
  93. "promo": "15",
  94. "require_player_online": false,
  95. "slider": false,
  96. "slider_min": 2,
  97. "slider_max": 55,
  98. "slider_name": "Ilosc",
  99. "order": 1,
  100. "server": 1,
  101. "prices": {
  102. "paypal": "5.00",
  103. "hotpay_transfer": "5.00",
  104. "paybylink_transfer": "5.00",
  105. "stripe": "12.00"
  106. }
  107. }
  108. ]
  109.  
  110. Najwazniejsze pola:
  111. - `id` - ID produktu
  112. - `name` - nazwa produktu
  113. - `description` - opis HTML
  114. - `image` - miniatura / obrazek produktu
  115. - `main_price` - glowna cena
  116. - `promo` - procent promocji albo `null`
  117. - `require_player_online` - czy gracz musi byc online
  118. - `slider`, `slider_min`, `slider_max`, `slider_name` - konfiguracja ilosci
  119. - `prices` - ceny dla konkretnych operatorow platnosci
  120.  
  121. Uwaga:
  122. - frontend kupuje produkt przez `vishopPay(shopId, productId)` z `https://vishop.pl/pay.js`
  123. - w tym repo nie ma bezposredniego endpointu API do tworzenia platnosci; wywolywany jest zewnetrzny skrypt VIshop
  124.  
  125. ==================================================
  126. 4. GET /panel/shops/{shop_id}/latest_payments?amount={n}
  127. ==================================================
  128.  
  129. Opis:
  130. - pobiera ostatnie zakupy
  131.  
  132. Przyklad:
  133. GET https://dev123.vishop.pl/panel/shops/1/latest_payments?amount=5
  134.  
  135. Przykladowa odpowiedz:
  136. [
  137. {
  138. "player": "test",
  139. "status": "executed",
  140. "product_name": "VIP",
  141. "quantity": 1,
  142. "server": 1,
  143. "created_at": "2026-01-28T10:26:56.883807Z"
  144. }
  145. ]
  146.  
  147. Najwazniejsze pola:
  148. - `player` - nick gracza
  149. - `status` - status zakupu
  150. - `product_name` - nazwa produktu
  151. - `quantity` - ilosc
  152. - `server` - ID serwera
  153. - `created_at` - data utworzenia
  154.  
  155. ==================================================
  156. 5. GET /panel/shops/{shop_id}/richest_player/
  157. ==================================================
  158.  
  159. Opis:
  160. - pobiera ranking najbogatszych graczy
  161. - opcjonalnie mozna podac `amount`
  162.  
  163. Przyklady:
  164. GET https://dev123.vishop.pl/panel/shops/1/richest_player/
  165. GET https://dev123.vishop.pl/panel/shops/1/richest_player/?amount=3
  166.  
  167. Przykladowa odpowiedz:
  168. [
  169. {
  170. "player": "test",
  171. "spend": 234.86
  172. },
  173. {
  174. "player": "rewdfsa",
  175. "spend": 104.55
  176. }
  177. ]
  178.  
  179. Najwazniejsze pola:
  180. - `player` - nick gracza
  181. - `spend` - wydana kwota
  182.  
  183. ==================================================
  184. 6. GET /panel/shops/{shop_id}/announcements/
  185. ==================================================
  186.  
  187. Opis:
  188. - pobiera ogloszenia sklepu
  189. - endpoint jest wywolywany w kodzie strony glownej
  190. - w tej wersji szablonu pobrane dane nie sa nigdzie renderowane
  191.  
  192. Przyklad:
  193. GET https://dev123.vishop.pl/panel/shops/1/announcements/
  194.  
  195. Przykladowa odpowiedz:
  196. []
  197.  
  198. Uwaga:
  199. - nie da sie potwierdzic pelnego formatu pojedynczego ogloszenia, bo dla `shop_id=1` lista jest pusta
  200.  
  201. ==================================================
  202. 7. GET /panel/shops/{shop_id}/subpages/{subpage_id}/
  203. ==================================================
  204.  
  205. Opis:
  206. - pobiera tresc podstrony
  207. - frontend renderuje `content` przez `v-html`, wiec tresc przychodzi jako HTML
  208.  
  209. Przyklad:
  210. GET https://dev123.vishop.pl/panel/shops/1/subpages/495/
  211.  
  212. Przykladowa odpowiedz:
  213. {
  214. "id": 495,
  215. "name": "Regulamin",
  216. "content": "<h1>Regulamin serwera</h1><ul><li><p>Przestrzegaj netykiety</p></li></ul>",
  217. "shop": 1
  218. }
  219.  
  220. Najwazniejsze pola:
  221. - `id` - ID podstrony
  222. - `name` - nazwa podstrony
  223. - `content` - tresc HTML
  224. - `shop` - ID sklepu
  225.  
  226. ==================================================
  227. 8. GET /panel/shops/{shop_id}/payment-status/{payment_id}/
  228. ==================================================
  229.  
  230. Opis:
  231. - sprawdza status transakcji
  232. - frontend uzywa tego na stronie `/payment/[id]`
  233.  
  234. Przyklad:
  235. GET https://dev123.vishop.pl/panel/shops/1/payment-status/123/
  236.  
  237. Co frontend zaklada po odpowiedzi:
  238. - odpowiedz zawiera pole `status`
  239. - jesli `status === "waiting"`, to platnosc jest jeszcze nieoplacona
  240. - jesli `status` ma inna wartosc, frontend traktuje transakcje jako oplacona
  241. - jesli nie ma pola `status`, frontend tez traktuje to jako brak oplacenia
  242.  
  243. Potwierdzony blad dla nieistniejacego ID:
  244. - HTTP 404
  245. - body:
  246. {"detail":"Not found."}
  247.  
  248. Uwaga:
  249. - nie udalo sie pobrac przykladu poprawnej odpowiedzi dla prawdziwego `payment_id`, ale kod jasno pokazuje, ze kluczowe jest pole `status`
  250.  
  251. ==================================================
  252. 9. POST /panel/shops/{shop_id}/vouchers/use/
  253. ==================================================
  254.  
  255. Opis:
  256. - realizuje voucher
  257.  
  258. Naglowki uzywane przez frontend:
  259. - `Accept: application/json, text/plain, */*`
  260. - `Content-Type: application/json;charset=utf-8`
  261.  
  262. Body JSON:
  263. {
  264. "player": "nick_gracza",
  265. "code": "KOD_VOUCHERA"
  266. }
  267.  
  268. Przyklad:
  269. POST https://dev123.vishop.pl/panel/shops/1/vouchers/use/
  270.  
  271. Przykladowe body:
  272. {
  273. "player": "TestUser",
  274. "code": "ABC-123"
  275. }
  276.  
  277. Zachowanie frontendu:
  278. - jesli odpowiedz ma status 2xx, frontend pokazuje sukces
  279. - jesli odpowiedz nie ma statusu 2xx, frontend pokazuje komunikat "Niepoprawny voucher"
  280. - body odpowiedzi sukcesu nie jest dalej uzywane przez ten szablon
  281.  
  282. Potwierdzony blad dla blednego kodu:
  283. - HTTP 404
  284. - body:
  285. {"detail":"No Voucher matches the given query."}
  286.  
  287. ==================================================
  288. Szybkie podsumowanie
  289. ==================================================
  290.  
  291. Endpointy uzywane przez szablon:
  292. - GET `/panel/shops/{shop_id}/`
  293. - GET `/panel/shops/{shop_id}/servers/`
  294. - GET `/panel/shops/{shop_id}/products/?server={server_id}`
  295. - GET `/panel/shops/{shop_id}/latest_payments?amount={n}`
  296. - GET `/panel/shops/{shop_id}/richest_player/?amount={n}`
  297. - GET `/panel/shops/{shop_id}/announcements/`
  298. - GET `/panel/shops/{shop_id}/subpages/{subpage_id}/`
  299. - GET `/panel/shops/{shop_id}/payment-status/{payment_id}/`
  300. - POST `/panel/shops/{shop_id}/vouchers/use/`
  301.  
  302. Poza API:
  303. - zakup produktu z widoku sklepu uruchamia `vishopPay(shopId, productId)` z zewnetrznego skryptu `https://vishop.pl/pay.js`
  304. - sam endpoint tworzacy platnosc nie wystepuje w tym repo
Advertisement
Add Comment
Please, Sign In to add comment