İlk addımlar

Hər istifadəçi nəyi görə bilər

Açar onun istifadəçisinin idarəetmə panelində gördüklərini olduğu kimi görür. API-də heç nəyi tənzimləmək lazım deyil: qaydalar istifadəçinin şirkətlərindən və icazələrindən gəlir.

Yalnız istifadəçinin şirkətləri

API yalnız istifadəçiyə bağlı olan şirkətləri, yəni onun idarəetmə panelində seçə bildiyi şirkətləri nəzərə alır.

İnzibatçı şirkətdəki hər şeyi görür

Şirkətin və ya əsas şirkətin inzibatçısı həmin şirkətin bütün TV-lərini, fayllarını və pleylistlərini görür.

Digərləri icazələrdən asılıdır

Digər istifadəçilər üçün hər şirkətdə TV-lərə, fayllara və pleylistlərə baxış icazələri tətbiq olunur — idarəetmə panelində həmin səhifələri açan icazələrin eynisi.

Dəyişikliklər dərhal qüvvəyə minir

İdarəetmə panelində geri alınan icazə, çıxarılan şirkət və ya deaktiv edilən istifadəçi növbəti sorğuda artıq nəzərə alınır.

Nələr göstərilmir

  • İcazə olmayan şirkətlərin elementləri siyahılarda görünmür. Onlardan birini birbaşa sorğuladıqda, sanki mövcud deyilmiş kimi 404 qaytarılır.
  • Pleylistdə istifadəçinin görə bilmədiyi fayl üçün file dəyəri null olur. Pleylistin TV-ləri və faylın pleylistləri yalnız istifadəçinin görə bildiklərini göstərir.
  • Silinmiş elementlər və hələ aktivləşdirilməmiş TV-lər görünmür.

Açarın nələri sorğulaya biləcəyini öyrənmək üçün /organizations endpointini çağırın: hər şirkət admin və permissions sahələri ilə gəlir.

Sisteminizə məlumatların yalnız bir hissəsi lazımdırsa, idarəetmə panelində yalnız onun üçün, yalnız lazımi icazələri olan bir istifadəçi yaradın və açarı həmin istifadəçinin hesabında yaradın.

Sorğu
curl "https://api.on-cloud.live/v1/organizations" \
  -H "X-API-Key: $API_KEY"
<?php
$ch = curl_init('https://api.on-cloud.live/v1/organizations');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('API_KEY')],
]);
$response = json_decode(curl_exec($ch), true);
const res = await fetch('https://api.on-cloud.live/v1/organizations', {
  headers: { 'X-API-Key': process.env.API_KEY }
});
const { data } = await res.json();
Cavab200
{
  "data": [
    {
      "uid": "8f14e45fceea167a5a36dedd4bea2543",
      "name": "Loja Centro",
      "neutral_zone": false,
      "admin": true,
      "permissions": {
        "tvs": true,
        "files": true,
        "playlists": true
      }
    },
    {
      "uid": "1679091c5a880faf6fb5e6087eb1b2dc",
      "name": "Loja Shopping Norte",
      "neutral_zone": false,
      "admin": true,
      "permissions": {
        "tvs": true,
        "files": true,
        "playlists": true
      }
    }
  ]
}
Başqa şirkətin elementi404
{
  "error": {
    "code": "not_found",
    "message": "Item not found or you do not have access to it."
  }
}