Files
api/services/nginx/app/interfaces/shelly_i.php
T

56 lines
1.7 KiB
PHP

<?php
namespace interfaces;
use Exception;
interface shelly_i
{
/**
* Send a request to the shelly api
* @param string $endpoint The endpoint to send the request to (e.g. "latest")
* @param array $data The data to send with the request (e.g. ["key" => "value"])
* @param string $method The method to use for the request (e.g. "GET")
* @return object The response from the shelly module
*/
function sendRequest(string $endpoint, array $data, string $method): object;
/**
* Require the module to be enabled
* @return void
* @throws Exception If the module is not enabled
*/
function requireModuleEnabled(): void;
/**
* Require the secret key to be valid
* @return void
* @throws Exception If the secret key is not valid
*/
function requireValidSecretKey(): void;
/**
* Require the server url to be valid
* @return void
* @throws Exception If the server url is not valid
*/
function requireValidServerUrl(): void;
/**
* Send a GET request to Shelly.
* @param string $endpoint The endpoint to send the request to
* @param array $data Query parameters to append to the request
* @return array|object|null The response from Shelly
*/
function sendGetRequest(string $endpoint, array $data): array|object|null;
/**
* Send a POST request to the shelly
* @param string $endpoint The endpoint to send the request to (e.g. "latest")
* @param array $data The data to send with the request (e.g. ["key" => "value"])
* @return array|object|null The response from the shelly
*/
function sendPostRequest(string $endpoint, array $data): array|object|null;
}