Skip to content
Snippets Groups Projects
api.php 2.72 KiB
Newer Older
Bilal Talhaoui's avatar
Bilal Talhaoui committed
<?php

use Illuminate\Http\Request;
Tibo's avatar
Tibo committed
use App\Server;
Bilal Talhaoui's avatar
Bilal Talhaoui committed

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Tibo's avatar
Tibo committed
Route::post('record/{server}', function (Request $request, Server $server) {
    if ($server->token !== $request->get("token", "")) {
        abort(403);
    }
    
    $record = new Record();
    $record->server_id = $server->id;
    $record->time = time();
    $record->data = $request->all();
    $record->save();

    return "ok";
Bilal Talhaoui's avatar
Bilal Talhaoui committed
});
Tibo's avatar
Tibo committed

Route::get(
Tibo's avatar
Tibo committed
    'sensor/{server}/{token}/memory',
    function (Server $server, string $token) {
        if ($server->read_token != $token) {
            abort(403);
        }
        header('Access-Control-Allow-Origin: *');
Tibo's avatar
Tibo committed
        $meminfo = new \App\Sensor\MemInfo();
        return [
            "used" => $meminfo->usedMemoryPoints($server->lastRecords1Day()),
            "cached" => $meminfo->cachedMemoryPoints($server->lastRecords1Day()),
Tibo's avatar
Tibo committed
            "total" => $server->info()->memoryTotal() / 1000];
Tibo's avatar
Tibo committed
    }
);
Tibo's avatar
Tibo committed
Route::get(
    'sensor/{server}/{token}/diskevolution',
    function (Server $server, string $token) {
        if ($server->read_token != $token) {
            abort(403);
        }

        header('Access-Control-Allow-Origin: *');
        $sensor = new \App\Sensor\DiskEvolution();
        return $sensor->points($server->lastRecords1Day());
    }
);

Tibo's avatar
Tibo committed
Route::get(
Tibo's avatar
Tibo committed
    'sensor/{server}/{token}/load',
    function (Server $server, string $token) {
        if ($server->read_token != $token) {
            abort(403);
        }
        header('Access-Control-Allow-Origin: *');
Tibo's avatar
Tibo committed
        $sensor = new \App\Sensor\LoadAvg();
        return [
            "points" => $sensor->loadPoints($server->lastRecords1Day()),
Tibo's avatar
Tibo committed
            "max" => $server->info()->cpuinfo()["threads"]];
Tibo's avatar
Tibo committed
    }
);

Route::get(
Tibo's avatar
Tibo committed
    'sensor/{server}/{token}/ifconfig',
    function (Server $server, string $token) {
        if ($server->read_token != $token) {
            abort(403);
        }
        header('Access-Control-Allow-Origin: *');
Tibo's avatar
Tibo committed
        $sensor = new \App\Sensor\Ifconfig();
        return $sensor->points($server->lastRecords1Day());
Tibo's avatar
Tibo committed
    }
);

Route::get(
    'sensor/{server}/{token}/netstat',
    function (Server $server, string $token) {
        if ($server->read_token != $token) {
            abort(403);
        }

        header('Access-Control-Allow-Origin: *');
Tibo's avatar
Tibo committed
        $sensor = new \App\Sensor\Netstat();
        return $sensor->points($server->lastRecords1Day());
Tibo's avatar
Tibo committed
);