Primeiros passos

O que cada utilizador pode ver

A chave vê exatamente o mesmo que o respetivo utilizador vê no painel. Não é preciso configurar nada na API: as regras vêm das empresas e das permissões do utilizador.

Apenas as empresas do utilizador

A API considera apenas as empresas associadas ao utilizador, as mesmas que ele pode escolher no painel.

O administrador vê tudo da empresa

Quem é administrador da empresa, ou da empresa principal, vê todas as TVs, ficheiros e listas de reprodução dessa empresa.

Os restantes dependem das permissões

Para os outros utilizadores aplicam-se, em cada empresa, as permissões para ver TVs, ficheiros e listas de reprodução, as mesmas que dão acesso a essas páginas no painel.

As alterações aplicam-se de imediato

Uma permissão retirada, uma empresa removida ou um utilizador desativado no painel produzem efeito logo no pedido seguinte.

O que fica de fora

  • Os itens de empresas sem permissão não aparecem nas listagens. Pedir um deles diretamente devolve 404, como se não existisse.
  • Numa lista de reprodução, um ficheiro que o utilizador não pode ver vem com file igual a null. As TVs de uma lista e as listas de um ficheiro mostram apenas o que o utilizador pode ver.
  • Os itens apagados e as TVs que ainda não foram ativadas não aparecem.

Para saber o que uma chave pode consultar, chame /organizations: cada empresa vem com admin e permissions.

Se o seu sistema só precisa de parte dos dados, crie no painel um utilizador só para ele, apenas com as permissões necessárias, e gere a chave na conta desse utilizador.

Pedido
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();
Resposta200
{
  "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
      }
    }
  ]
}
Item de outra empresa404
{
  "error": {
    "code": "not_found",
    "message": "Item not found or you do not have access to it."
  }
}