Merge pull request #1 from PeterSurda/note-api

Note api
This commit is contained in:
Ne00n 2024-07-01 03:28:23 +02:00 committed by GitHub
commit 8f4215c608
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 73 additions and 1 deletions

View file

@ -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;
@ -190,7 +191,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);
}
@ -500,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);
}
}

View file

@ -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";

View file

@ -39,6 +39,7 @@
<option value="5">SEMI-DEDI</option>
<option value="6">VMware</option>
<option value="7">NAT</option>
<option value="8">COLO</option>
</select></div>
</div>
<div class="col-12 col-lg-3 mb-4">

View file

@ -39,6 +39,9 @@
<option value="7" {{ ($server_data->server_type === 7) ? 'selected' : '' }}>
NAT
</option>
<option value="7" {{ ($server_data->server_type === 8) ? 'selected' : '' }}>
COLO
</option>
</select></div>
</div>
<div class="col-12 col-lg-3 mb-4">

View file

@ -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');