[Intum](https://intum.fr/aide.md) / [Baza Wiedzy](https://intum.fr/aide/baza-wiedzy.md)

# [Komentarze](https://intum.fr/aide/baza-wiedzy/komentarze-kb.md) | [API](#api)

## Komentarze do wpisów

Komentarze pozwalają odwiedzającym [bazę wiedzy](baza-wiedzy) na dyskusję pod [wpisami](wpisy-do-bazy-wiedzy). Mogą dodawać pytania, sugestie lub uwagi.

## Moderacja

Komentarze mogą wymagać zatwierdzenia przed publikacją. Tryby moderacji:

- **Wszystkie zatwierdzane** — każdy komentarz wymaga akceptacji
- **Goście zatwierdzani** — komentarze niezalogowanych wymagają akceptacji
- **Użytkownicy zatwierdzani** — komentarze zalogowanych nie wymagają akceptacji
- **Bez moderacji** — wszystko publikowane automatycznie

## Komentarze publiczne

Niezalogowani odwiedzający mogą dodawać komentarze podając imię i e-mail. Komentarze te podlegają moderacji.

## Pola komentarza

Każdy komentarz ma kilka pól sterujących jego widocznością i statusem:

### Zatwierdzony (accepted)

Pole `accepted` decyduje, czy komentarz jest widoczny publicznie. Jeśli baza wiedzy ma włączoną moderację, nowe komentarze trafiają jako niezatwierdzone i czekają na akceptację operatora. Operator może zatwierdzić komentarz przyciskiem "Zatwierdź" lub cofnąć zatwierdzenie przyciskiem "Cofnij zatwierdzenie". Niezatwierdzone komentarze są widoczne tylko dla operatorów.

### Widoczny tylko dla operatorów (private)

Pole `private` ukrywa komentarz przed publiczną częścią bazy wiedzy. Komentarz z flagą `private` jest widoczny wyłącznie dla zalogowanych operatorów. Przydatne np. do wewnętrznych notatek pod wpisem.

### Status moderacji (moderation_status)

Pole `moderation_status` określa etap moderacji komentarza. Możliwe wartości:

- **Oczekujący (pending)** — komentarz czeka na decyzję moderatora
- **Zaakceptowany (approved)** — komentarz przeszedł moderację pozytywnie
- **Odrzucony (rejected)** — komentarz został odrzucony

Status moderacji to niezależne pole od `accepted`. Pole `accepted` steruje widocznością, a `moderation_status` pozwala śledzić przepływ moderacji. Zmiana statusu moderacji jest dostępna tylko dla operatorów z uprawnieniem administratora komentarzy.

## Zarządzanie komentarzami

- **Akceptowanie / odrzucanie** — moderator decyduje o publikacji
- **Ukrywanie** — komentarz widoczny tylko dla operatorów
- **Odpowiedzi** — komentarze mogą być zagnieżdżone (odpowiedź na komentarz)
- **Przypinanie** — w trybie forum można przypiąć komentarz jako główną odpowiedź

## Tworzenie zgłoszenia z komentarza

Gdy w koncie jest włączony moduł [Helpdesk](/helpdesk/tickets), z komentarza można utworzyć powiązane zgłoszenie (ticket). Na stronie komentarza dostępny jest przycisk "Utwórz ticket", który przenosi do formularza nowego zgłoszenia z wstępnie wypełnionymi danymi (treść, e-mail autora). Utworzone zgłoszenie jest powiązane z komentarzem i widoczne zarówno w szczegółach komentarza, jak i na liście zgłoszeń (jako badge ze źródłem).

## Załączniki

Do komentarzy można dodawać pliki — zdjęcia i dokumenty.

## Tryb forum

Baza wiedzy może działać jako forum — wtedy komentarze służą jako odpowiedzi na wpisy. Można oznaczać komentarze jako "odpowiedź" i przypinać najlepszą.

---

## API

### Ogólne API

# Intum API

Dokumentacja API platformy [Intum](https://intum.pl) - system operacyjny firmy.

## Host

Host jest zawsze taki sam jak adres konta: `xxxx.intum.com` lub `xxx.intum.pl` (w zależności od ustawień konta)

## Autoryzacja

Wszystkie requesty API wymagają `api_token`:
- header: `Authorization: Bearer TOKEN`

Token możesz wygenerować w **Ustawienia Konta** → **Tokeny API**

## Endpointy

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/kb/comments.json` | Lista komentarzy |
| GET | `/kb/comments/:id.json` | Pojedynczy komentarz |
| POST | `/kb/comments.json` | Utworzenie komentarza |
| PATCH | `/kb/comments/:id.json` | Aktualizacja komentarza |
| DELETE | `/kb/comments/:id.json` | Usunięcie komentarza |
| POST | `/kb/comments/:id/accept_comment` | Zatwierdzenie |
| POST | `/kb/comments/:id/unaccept_comment` | Odrzucenie |
| POST | `/kb/comments/:id/operator_hide` | Ukrycie |
| POST | `/kb/comments/:id/operator_show` | Pokazanie |
| POST | `/kb/comments/:id/set_is_response` | Oznaczenie jako odpowiedź |
| POST | `/kb/comments/:id/set_as_main_response` | Przypięcie jako główna odpowiedź |
| POST | `/kb/comments/create_public_comment` | Komentarz publiczny (bez autoryzacji) |

**Autoryzacja:** `Authorization: Bearer TOKEN` (uprawnienie: **kb**)

## Pola comment

| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| `content` | text | tak | Treść komentarza |
| `commentable_id` | integer | tak | ID wpisu |
| `commentable_type` | string | tak | `Kb::Entry` |
| `comment_id` | integer | nie | ID komentarza nadrzędnego (odpowiedź) |
| `email` | string | nie | E-mail autora (komentarze publiczne) |
| `username` | string | nie | Imię autora (komentarze publiczne) |
| `private` | boolean | nie | Ukryty przed publicznością |
| `accepted` | boolean | nie | Zatwierdzony |
| `priority` | integer | nie | Priorytet |

## Filtrowanie

| Parametr | Opis |
|----------|------|
| `knowledge_base_id` | Filtruj po bazie wiedzy |
| `accepted` | `true`/`false` |
| `private` | `true`/`false` |
| `moderation_status` | `pending`, `approved`, `rejected` |
| `created_by_id` | Filtruj po autorze |

## Przykład utworzenia

```json
{
  "api_token": "TOKEN",
  "kb_comment": {
    "content": "Bardzo pomocny artykuł, dziękuję!",
    "commentable_id": 123,
    "commentable_type": "Kb::Entry"
  }
}
```