Powiadomienia

Pobieranie listy powiadomień

Aby otrzymać listę powiadomień należy wysłać wiadomość GET na adres /api/user/notifications/.
W odpowiedzi powinniśmy otrzymać wiadomość o treści z taką strukturą danych:
{
    "count": 2,
    "next": "http://$host_url/api/user/notifications/?limit=100&offset=100",
    "previous": null,
    "results": [
        {
            "id": 3587,
            "type": 8,
            "seen": false,
            "severity": 1,
            "timestamp": "2022-01-27T17:30:57.239897+01:00",
            "additional_data": {
                "test_agent_id": 4
            }
        },
        {
            "id": 3586,
            "type": 2,
            "seen": false,
            "severity": 1,
            "timestamp": "2022-01-27T13:47:34.936364+01:00",
            "additional_data": {
                "task_id": 1557,
                "task_type": "network_ping",
                "test_suite_id": 395,
                "test_suite_name": "Test Suite Example"
            }
        },
    ]
}

Filtrowanie/sortowanie powiadomień

Jest również możliwość pobrania przefiltrowanych danych. Aby pobrać filtrowane dane należy do adresu wiadomości dopisać odpowiedni parametr: /api/user/notifications/?seen=false&severity=1&type=6.
Dostępne filtry:
  • seen (wartość true lub false) – oznacza powiadomienia przeczytane lub nieprzeczytane

    Pobieranie nieodczytanych powiadomień: /api/user/notifications/?seen=false
  • severity (liczba, lub lista liczb, lub wyrażenie zawierające jeden z operatorów <, <=, =>, >) – oznacza powiadomienia o określonym priorytecie

    Pobieranie powiadomień z priorytetem równym 1: /api/user/notifications/?severity=1
    Pobieranie powiadomień z priorytetem równym 1, 2 lub 3: /api/user/notifications/?severity=1|2|3
    Pobieranie powiadomień z priorytetem większym lub równym 1: /api/user/notifications/?severity=>=1
    Pobieranie powiadomień z priorytetem mniejszym od 1: /api/user/notifications/?severity=<1
  • type (dozwolone wartości liczbowe 1-8) – oznacza typ powiadomienia:
    • 1 – task started,

    • 2 – task succeeded,

    • 3 - task failed,

    • 4 – threshold exceeded,

    • 5 – test suite started,

    • 6 – test suite finished,

    • 7 – test agent online,

    • 8 – test agent offline,

    Pobieranie powiadomień typu 1: /api/user/notifications/?type=1
    Pobieranie powiadomień typu 1, 2 lub 3: /api/user/notifications/?type=1|2|3
Możliwe jest również sortowanie powiadomień po dacie. Należy to zrobić poprzez dopisanie do adresu wiadomości parametru ordering:
  • /api/user/notifications/?ordering=timestamp dla sortowania typu od najstarszych do najnowszych,

  • /api/user/notifications/?ordering=-timestamp dla sortowania typu od najnowszych do najstarszych.

Pobieranie pojedynczego powiadomienia

Aby otrzymać dane szczegółowe lokalizacji należy wysłać wiadomość GET na adres /api/user/notifications/<id>/, gdzie <id> jest id powiadomienia, którego chcemy pobrać.
W odpowiedzi powinniśmy otrzymać wiadomość o treści z taką strukturą danych:
{
    "id": 3587,
    "type": 8,
    "seen": false,
    "severity": 1,
    "timestamp": "2022-01-27T17:30:57.239897+01:00",
    "additional_data": {
        "test_agent_id": 4
    }
}

Oznaczenie powiadomienia jako przeczytane

Aby oznaczyć powiadomienie jako przeczytane należy wysłać wiadomość PATCH na adres /api/user/notifications/<id>/, gdzie <id> jest id powiadomienia, które chcemy tak oznaczyć.
Wiadomość powinna zawierać treść:
{
    "seen": true
}
W odpowiedzi powinniśmy otrzymać wiadomość o treści z taką strukturą danych:
{
    "id": 3587,
    "type": 8,
    "seen": true,
    "severity": 1,
    "timestamp": "2022-01-27T17:30:57.239897+01:00",
    "additional_data": {
        "test_agent_id": 4
    }
}

Oznaczenie wszystkich powiadomień jako przeczytane

Aby oznaczyć wszystkie powiadomienia jako przeczytane należy wysłać wiadomość POST na adres /api/user/notifications/mark_seen/.
W odpowiedzi powinniśmy otrzymać wiadomość z informacją:
{
    "status":"ok"
}