From 162b708dbfd6be8a0c72deaf8c2a7a0d931b0eaf Mon Sep 17 00:00:00 2001 From: Peter Surda Date: Fri, 7 Jun 2024 07:30:32 +0200 Subject: [PATCH 1/3] Fix API /os --- app/Http/Controllers/ApiController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ApiController.php b/app/Http/Controllers/ApiController.php index 4a31c7d..6c84c52 100644 --- a/app/Http/Controllers/ApiController.php +++ b/app/Http/Controllers/ApiController.php @@ -190,7 +190,8 @@ class ApiController extends Controller protected function getAllOs() { - $os = OS::allOS()->toJson(JSON_PRETTY_PRINT); + $os = OS::allOS(); + $os = json_encode($os, JSON_PRETTY_PRINT); return response($os, 200); } From c66312c6f2090d9c43b963fdc7877289c1731551 Mon Sep 17 00:00:00 2001 From: Peter Surda Date: Sat, 8 Jun 2024 08:04:08 +0200 Subject: [PATCH 2/3] Add colocated server type --- app/Models/Server.php | 5 +++++ resources/views/servers/create.blade.php | 1 + resources/views/servers/edit.blade.php | 3 +++ 3 files changed, 9 insertions(+) diff --git a/app/Models/Server.php b/app/Models/Server.php index 0116f7e..7416617 100644 --- a/app/Models/Server.php +++ b/app/Models/Server.php @@ -106,6 +106,11 @@ class Server extends Model return "VMware"; } elseif ($type === 7) { return "NAT"; + } elseif ($type === 8) { + if (!$short) { + return "Colocated"; + } + return "COLO"; } else { if (!$short) { return "Semi-dedicated"; diff --git a/resources/views/servers/create.blade.php b/resources/views/servers/create.blade.php index 0e20a0a..63598da 100644 --- a/resources/views/servers/create.blade.php +++ b/resources/views/servers/create.blade.php @@ -39,6 +39,7 @@ +
diff --git a/resources/views/servers/edit.blade.php b/resources/views/servers/edit.blade.php index 4bd4645..c56fdb3 100644 --- a/resources/views/servers/edit.blade.php +++ b/resources/views/servers/edit.blade.php @@ -39,6 +39,9 @@ +
From 6b50978097b6fea71bf50758697ab26859f3bf41 Mon Sep 17 00:00:00 2001 From: Peter Surda Date: Thu, 20 Jun 2024 15:01:09 +0800 Subject: [PATCH 3/3] Add Notes API --- app/Http/Controllers/ApiController.php | 56 ++++++++++++++++++++++++++ routes/api.php | 6 +++ 2 files changed, 62 insertions(+) diff --git a/app/Http/Controllers/ApiController.php b/app/Http/Controllers/ApiController.php index 6c84c52..5bd13a4 100644 --- a/app/Http/Controllers/ApiController.php +++ b/app/Http/Controllers/ApiController.php @@ -7,6 +7,7 @@ use App\Models\IPs; use App\Models\Labels; use App\Models\Misc; use App\Models\NetworkSpeed; +use App\Models\Note; use App\Models\OS; use App\Models\Pricing; use App\Models\Providers; @@ -501,4 +502,59 @@ class ApiController extends Controller return response($yabs, 200); } + protected function getAllNotes() + { + $notes = Note::allNotes()->toJson(JSON_PRETTY_PRINT); + return response($notes, 200); + } + + protected function getNote($id) + { + $note = Note::note($id)->toJson(JSON_PRETTY_PRINT); + return response($note, 200); + } + + protected function storeNote(Request $request) + { + $request->validate([ + 'service_id' => 'required|string|size:8', + 'note' => 'required|string' + ]); + + try { + $note_id = Str::random(8); + $note = Note::create([ + 'id' => $note_id, + 'service_id' => $request->service_id, + 'note' => $request->note + ]); + } catch (\Exception $e) { + if ($e->getCode() === "23000") { + return response("A note already exists for this service", 409); + } else { + return response("Error inserting note", 500); + } + } + + Cache::forget('all_notes'); + + return response()->json(array('result' => 'success', 'note_id' => $note_id), 201); + } + + public function updateNote(Request $request) + { + $request->validate([ + 'service_id' => 'required|string|size:8', + 'note' => 'required|string' + ]); + $note = Note::note($request->id); + $note->update([ + 'service_id' => $request->service_id, + 'note' => $request->note + ]); + Cache::forget('all_notes'); + Cache::forget("note.$note->service_id"); + return response()->json(array('result' => 'success', 'note_id' => $note->id), 200); + } + } diff --git a/routes/api.php b/routes/api.php index c943d66..acb0235 100644 --- a/routes/api.php +++ b/routes/api.php @@ -77,3 +77,9 @@ Route::middleware('auth:api')->get('dns/{domainName}/{type}', 'App\Http\Controll Route::middleware('throttle:4')->post('yabs/{server}/{key}', 'App\Http\Controllers\ApiController@storeYabs')->name('api.store-yabs'); Route::middleware('auth:api')->get('yabs/', 'App\Http\Controllers\ApiController@getAllYabs'); Route::middleware('auth:api')->get('yabs/{id}', 'App\Http\Controllers\ApiController@getYabs'); + + +Route::middleware('auth:api')->get('notes', 'App\Http\Controllers\ApiController@getAllNotes'); +Route::middleware('auth:api')->get('notes/{id}', 'App\Http\Controllers\ApiController@getNote'); +Route::middleware('auth:api')->post('notes', 'App\Http\Controllers\ApiController@storeNote'); +Route::middleware('auth:api')->put('notes/{id}', 'App\Http\Controllers\ApiController@updateNote');