feat: nová stránka pro návrhy na vylepšení
CI / Generate TypeScript types (push) Successful in 10s
CI / Server unit tests (push) Successful in 21s
CI / Build server (push) Successful in 24s
CI / Build client (push) Successful in 38s
CI / Playwright E2E tests (push) Successful in 1m18s
CI / Build and push Docker image (push) Successful in 40s
CI / Notify (push) Successful in 2s

This commit is contained in:
2026-06-05 19:15:46 +02:00
parent f28f127a92
commit 17132d4124
27 changed files with 857 additions and 515 deletions
+28
View File
@@ -0,0 +1,28 @@
post:
operationId: addSuggestion
summary: Přidá nový návrh na vylepšení. Autorovi se automaticky nastaví hlas pro.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- title
- description
properties:
title:
type: string
description: Stručný jednořádkový název návrhu
description:
type: string
description: Detailní popis navrhované úpravy
responses:
"200":
description: Aktualizovaný seznam návrhů.
content:
application/json:
schema:
type: array
items:
$ref: "../../schemas/_index.yml#/Suggestion"
+26
View File
@@ -0,0 +1,26 @@
post:
operationId: deleteSuggestion
summary: >-
Smaže návrh včetně všech jeho hlasů. Smazat lze pouze vlastní návrh
(validováno na serveru).
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: string
description: Identifikátor návrhu ke smazání
responses:
"200":
description: Aktualizovaný seznam návrhů.
content:
application/json:
schema:
type: array
items:
$ref: "../../schemas/_index.yml#/Suggestion"
+11
View File
@@ -0,0 +1,11 @@
get:
operationId: listSuggestions
summary: Vrátí seznam návrhů na vylepšení seřazený sestupně dle počtu hlasů.
responses:
"200":
content:
application/json:
schema:
type: array
items:
$ref: "../../schemas/_index.yml#/Suggestion"
+30
View File
@@ -0,0 +1,30 @@
post:
operationId: voteSuggestion
summary: >-
Přepne hlas přihlášeného uživatele u návrhu. Klik na již aktivní směr hlas
zruší, opačný směr stávající hlas přepíše.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
- direction
properties:
id:
type: string
description: Identifikátor návrhu
direction:
description: Směr hlasu, na který uživatel klikl
$ref: "../../schemas/_index.yml#/VoteDirection"
responses:
"200":
description: Aktualizovaný seznam návrhů.
content:
application/json:
schema:
type: array
items:
$ref: "../../schemas/_index.yml#/Suggestion"
-11
View File
@@ -1,11 +0,0 @@
get:
operationId: getVotes
summary: Vrátí statistiky hlasování o nových funkcích.
responses:
"200":
content:
application/json:
schema:
type: array
items:
$ref: "../../schemas/_index.yml#/FeatureRequest"
-9
View File
@@ -1,9 +0,0 @@
get:
operationId: getVotingStats
summary: Vrátí agregované statistiky hlasování o nových funkcích.
responses:
"200":
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/VotingStats"
-22
View File
@@ -1,22 +0,0 @@
post:
operationId: updateVote
summary: Aktualizuje hlasování uživatele o dané funkcionalitě.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- option
- active
properties:
option:
description: Hlasovací možnost, kterou uživatel zvolil.
$ref: "../../schemas/_index.yml#/FeatureRequest"
active:
type: boolean
description: True, pokud uživatel hlasoval pro, jinak false.
responses:
"200":
description: Hlasování bylo úspěšně aktualizováno.