Dispositivos


Listar

Endpoint que lista todos os registros cadastrados.

Method URI Headers Authorization
GET /api/v4/devices Content-Type:application/json Authorization: Bearer {token}

Parameters

_q: 'texto' (string) - "Busca  os dispositivos pelos campos código e pelo nome do subtipo."
_sort: 'id' (string) ('id', 'code', 'equipment', 'type') - "Define o campo de ordenação da lista."
_order: 'desc' (string) ('asc', 'desc') - "Define a ordem da lista com base no campo definido."
_limit: 10 (integer) - "Quantidade de itens por página."
_page: 1 (integer) - "Página a ser carregada."
equipment: 1 (integer) - "Busca pelo id do equipamento associado ao dispositivo"
company: 1 (integer) - "Busca pelo id da empresa associada ao dispositivo"
account_id: 2 (integer) - "Filtra equipamentos de uma conta, válido apenas para Super Admin."

Response

{success} Response 200 (application/json)

{
    "items": [
        {
            "id": 1,
            "code": "123456",
            "connection": "gsm",
            "url_firmware": "https://firmware.com",
            "iccid": "123456",
            "version": "123.456T7",
            "ip": "172.30.22.22",
            "alert_seconds": 3600,
            "ssid_op": "Claro",
            "hourly_frequency": 4,
            "model": {
                "id": 1,
                "name": "Zordon"
            },
            "equipment": {
                "id": 1,
                "name": "Equipamento Teste 1 ",
                "activation_date": "2023-04-20"
            },
            "company": {
                "id": 1,
                "name": "Empresa Teste 1 "
            },
            "type": {
                "id": 2,
                "name": "Água"
            },
            "subtype": {
                "id": 4,
                "name": "Fronteira"
            },
            "status": {
                "id": 2,
                "name": "Desconectado"
            },
            "master": {
                "id": 1,
                "code": "123465"
            },
            "comment": {
                "value": "Comentário",
                "date": "2023-01-01 00:00:00"
            }
        }
    ],
    "total": 4,
    "per_page": 10,
    "current_page": 1
}

{warning} Response 422 (application/json)

{
    "_sort": [
        "O campo sort selecionado é inválido."
    ],
    "_order": [
        "O campo order selecionado é inválido."
    ],
    "_limit": [
        "O campo limit deve ser um número inteiro."
    ],
    "_page": [
        "O campo page deve ser um número inteiro."
    ],
    "equipment": [
        "Permissões insuficientes para essa conta"
    ],
    "company": [
        "Permissões insuficientes para essa conta"
    ]
}

{primary} Response 204 (application/json).

Quando os critérios de parâmetros não contiver registros a serem retornados.

Pegar

Endpoint que pega um registro específico.

Method URI Headers Authorization
GET /api/v4/devices/{id} Content-Type:application/json Authorization: Bearer {token}

Parameters

id: 1 (integer) - "Id do Dispositivo"

Response

{success} Response 200 (application/json)

{
    "id": 1,
    "code": "123456",
    "connection": "gsm",
    "url_firmware": "https://firmware.com",
    "iccid": "123456",
    "version": "123.456T7",
    "ip": "172.30.22.22",
    "alert_seconds": 3600,
    "ssid_op": "Claro",
    "hourly_frequency": 4,
    "model": {
        "id": 1,
        "name": "Zordon"
    },
    "equipment": {
        "id": 1,
        "name": "Equipamento Teste 1 "
    },
    "company": {
        "id": 1,
        "name": "Empresa Teste 1 "
    },
    "type": {
        "id": 2,
        "name": "Água"
    },
    "subtype": {
        "id": 4,
        "name": "Fronteira"
    },
    "status": {
        "id": 2,
        "name": "Desconectado"
    },
    "master": {
        "id": 1,
        "code": "123465"
    },
    "comment": {
        "value": "Comentário",
        "date": "2023-01-01 00:00:00"
    }
}

{warning} Response 400(application/json)

[
    "Algo inesperado ocorreu."
]

{primary} Response 204 (application/json)

Quando o registro não existir ou o usuário não tiver permissão de visualização.

Criar

Endpoint que cria um registro.

Method URI Headers Authorization
POST /api/v4/devices Content-Type:application/json Authorization: Bearer {token}

Attributes

code: '123456' (string, required) - "Código do dispositivo"
master_id: 1 (integer) - "id do dispositivo master do dispositivo"
equipment_id: 1 (integer, required) - "Id do Equipamento"
subtype_id: 1 (integer, required) - "Id do Subtipo"
device_model_id: 1 (integer) - "Id do modelo do dispositivo"
alert_seconds: 3600 (integer) - "Valor em segundos para considerar o dispositivo desconectado"
connection: "gsm" (string) - "Tipo  de conexão do dispositivo"
url_firmware: "https://firmware.com" (string) - "Url do firmware"
version: '1.0' (string) - "Versão do dispositivo"
iccid:  "12345" (string) - "iccid do dispositivo"
ssid_op: "Claro" (string) - "Identificação da operadora"
status_id: 1 (integer) - "id do status do dispositivo",
ip: "127.0.0.1" (string) - "Ip do dispositivo",
hourly_frequency: 4 (integer|min:1) - "Quantidade de medições que o dispositivo envia por hora. Valor minimo: 1"

Response

{success} Response 201 (application/json)

{
    "id": 1,
    "code": "123456",
    "connection": "gsm",
    "url_firmware": "https://firmware.com",
    "iccid": "123456",
    "version": "123.456T7",
    "ip": "172.30.22.22",
    "alert_seconds": 3600,
    "ssid_op": "Claro",
    "hourly_frequency": 4,
    "model": {
        "id": 1,
        "name": "Zordon"
    },
    "equipment": {
        "id": 1,
        "name": "Equipamento Teste 1 "
    },
    "company": {
        "id": 1,
        "name": "Empresa Teste 1 "
    },
    "type": {
        "id": 2,
        "name": "Água"
    },
    "subtype": {
        "id": 4,
        "name": "Fronteira"
    },
    "status": {
        "id": 2,
        "name": "Desconectado"
    },
    "master": {
        "id": 1,
        "code": "123465"
    }
}

{warning} Response 422 (application/json)

{
    "code": [
        "O campo code é obrigatório.",
        "O campo code já está sendo utilizado."
    ],
    "equipment_id": [
        "O campo equipment id é obrigatório.",
        "É necessário vincular uma conta a empresa associada a este dispositivo!"
    ],
    "subtype_id": [
        "O campo subtype id é obrigatório."
    ],
    "device_model_id": [
        "O campo device model id selecionado é inválido."
    ],
    "alert_seconds": [
        "O campo alert seconds deve ser um número inteiro."
    ],
    "connection": [
        "O campo connection deve ser uma string."
    ],
    "url_firmware": [
        "O campo url firmware deve ser uma string."
    ],
    "version": [
        "O campo version deve ser uma string."
    ],
    "iccid": [
        "O campo iccid deve ser uma string."
    ],
    "ssid_op": [
        "O campo ssid op deve ser uma string."
    ],
    "status_id": [
        "O campo status deve ser um número inteiro."
    ],
    "ip": [
        "O campo ip deve ser uma string."
    ],
    "master_id": [
        "O campo master id selecionado é inválido."
    ],
    "hourly_frequency": [
        "O campo hourly frequency deve ser um número inteiro.",
        "O campo hourly frequency deve ser pelo menos 1."
    ]
}

{primary} Response 204 (application/json)

Quando o registro não existir ou o usuário não tiver permissão de visualização.

Atualizar

Endpoint que atualiza um registro específico.

Method URI Headers Authorization
PUT /api/v4/devices/{id} Content-Type:application/json Authorization: Bearer {token}

Parameters

id: 1 (integer) - "Id do dispositivo"

Attributes

code: '123456' (string) - "Código do dispositivo"
master_id: 1 (integer) - "id do dispositivo master do dispositivo"
equipment_id: 1 (integer) - "Id do Equipamento"
subtype_id: 1 (integer) - "Id do Subtipo"
device_model_id: 1 (integer) - "Id do modelo do dispositivo"
alert_seconds: 3600 (integer) - "Valor em segundos para considerar o dispositivo desconectado"
connection: "gsm" (string) - "Tipo  de conexão do dispositivo"
url_firmware: "https://firmware.com" (string) - "Url do firmware"
version: '1.0' (string) - "Versão do dispositivo"
iccid:  "12345" (string) - "iccid do dispositivo"
ssid_op: "Claro" (string) - "Identificação da operadora"
status_id: 1 (integer) - "id do status do dispositivo",
ip: "127.0.0.1" (string) - "Ip do dispositivo"
hourly_frequency: 4 (integer|min:1) - "Quantidade de medições que o dispositivo envia por hora. Valor minimo: 1"

Response

{success} Response 200 (application/json)

{
    "id": 1,
    "code": "123456",
    "connection": "gsm",
    "url_firmware": "https://firmware.com",
    "iccid": "123456",
    "version": "123.456T7",
    "ip": "172.30.22.22",
    "alert_seconds": 3600,
    "ssid_op": "Claro",
    "hourly_frequency": 4,
    "model": {
        "id": 1,
        "name": "Zordon"
    },
    "equipment": {
        "id": 1,
        "name": "Equipamento Teste 1 "
    },
    "company": {
        "id": 1,
        "name": "Empresa Teste 1 "
    },
    "type": {
        "id": 2,
        "name": "Água"
    },
    "subtype": {
        "id": 4,
        "name": "Fronteira"
    },
    "status": {
        "id": 2,
        "name": "Desconectado"
    },
    "master": {
        "id": 1,
        "code": "123465"
    }
}

{warning} Response 422 (application/json)

{
    "code": [
        "O campo code já está sendo utilizado."
    ],
    "equipment_id": [
        "O campo equipment id  selecionado é inválido.",
        "É necessário vincular uma conta a empresa associada a este dispositivo!"
    ],
    "subtype_id": [
        "O campo subtype id  selecionado é inválido."
    ],
    "device_model_id": [
        "O campo device model id selecionado é inválido."
    ],
    "alert_seconds": [
        "O campo alert seconds deve ser um número inteiro."
    ],
    "connection": [
        "O campo connection deve ser uma string."
    ],
    "url_firmware": [
        "O campo url firmware deve ser uma string."
    ],
    "version": [
        "O campo version deve ser uma string."
    ],
    "iccid": [
        "O campo iccid deve ser uma string."
    ],
    "ssid_op": [
        "O campo ssid op deve ser uma string."
    ],
    "status_id": [
        "O campo status deve ser um número inteiro."
    ],
    "ip": [
        "O campo ip deve ser uma string."
    ],
    "master_id": [
        "O campo master id selecionado é inválido."
    ],
    "hourly_frequency": [
        "O campo hourly frequency deve ser um número inteiro.",
        "O campo hourly frequency deve ser pelo menos 1."
    ]
}

{primary} Response 204 (application/json)

Quando o registro não existir ou o usuário não tiver permissão de visualização.

Deletar

Endpoint que deleta um registro específico.

Method URI Headers Authorization
DELETE /api/v4/devices/{id} Content-Type:application/json Authorization: Bearer {token}

Parameters

id: 1 (integer) - "Id do dispositivo"

Response

{primary} Response 204 (application/json)

Quando o registro for excluído com sucesso.

Descobrir Master

Endpoint que busca pelo master do dispositivo.

Method URI Headers Authorization
GET /api/v4/devices/master-discovery/{id} Content-Type:application/json Authorization: Bearer {token}

Parameters

id: 1 (integer) - "Id do dispositivo"

Response

{success} Response 200 (application/json)

{
    "id": 1,
    "code": "123456"
}

{primary} Response 204 (application/json)

Quando não for possível identificar o master.

Atualizar Status

Endpoint que atualiza o status do dispositivo.

Method URI Headers Authorization
PUT /api/v4/devices/change-status/{id} Content-Type:application/json Authorization: Bearer {token}

{info} Observações:

Atualmente o endpoint tem suporte apenas para os status: "Em Observação" e "Desconectado".

Se o status informado for Em Observação é obrigatório o campo comentário, caso contrário, o mesmo fica como opcional.

Parameters

id: 1 (integer) - "Id do dispositivo"

Attributes

status_id: 3 (integer) - "Id do status do dispositivo(Em Observação e Desconectado)",
comment: "Teste" (string) - "Comentário do motivo do status",

Response

{success} *Response 200 (application/json)

"Registro atualizado com sucesso!"

{warning} Response 422 (application/json)

{
    "status_id": [
        "O campo status é requerido."
    ],
    "comment": [
        "O campo comentário é obrigatório quando o status for em observação."
    ]
}

{warning} Response 400 (application/json)

Quando o registro não existir.

 

{warning} Response 403 (application/json)

Quando o usuário não tiver permissão de visualização.