You've already forked Atomcms-edit
Refactor HotelApiController into 6 focused controllers + FurniEditorController Eloquent migration
This commit is contained in:
@@ -1,12 +1,16 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Game\Furniture\CatalogItem;
|
||||
use App\Models\Game\Furniture\CatalogPage;
|
||||
use App\Models\Game\Furniture\ItemBase;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class FurniEditorController extends Controller
|
||||
@@ -25,10 +29,10 @@ class FurniEditorController extends Controller
|
||||
'user_id' => Auth::id(),
|
||||
]);
|
||||
|
||||
return response()->json(['error' => "{$action} mislukt"], 500);
|
||||
return response()->json(['error' => "{$action} failed"], 500);
|
||||
}
|
||||
|
||||
private function formatItemData(\stdClass $item): array
|
||||
private function formatItemData(ItemBase $item): array
|
||||
{
|
||||
return [
|
||||
'id' => $item->id,
|
||||
@@ -59,17 +63,17 @@ class FurniEditorController extends Controller
|
||||
];
|
||||
}
|
||||
|
||||
private function formatCatalogItemData(\stdClass $r): array
|
||||
private function formatCatalogItemData(CatalogItem $item): array
|
||||
{
|
||||
return [
|
||||
'id' => $r->id,
|
||||
'catalogName' => $r->catalog_name,
|
||||
'costCredits' => $r->cost_credits,
|
||||
'costPoints' => $r->cost_points,
|
||||
'pointsType' => $r->points_type,
|
||||
'pageId' => $r->page_id,
|
||||
'pageName' => $r->page_id
|
||||
? DB::table('catalog_pages')->where('id', $r->page_id)->value('caption') ?? ''
|
||||
'id' => $item->id,
|
||||
'catalogName' => $item->catalog_name,
|
||||
'costCredits' => $item->cost_credits,
|
||||
'costPoints' => $item->cost_points,
|
||||
'pointsType' => $item->points_type,
|
||||
'pageId' => $item->page_id,
|
||||
'pageName' => $item->page_id
|
||||
? CatalogPage::where('id', $item->page_id)->value('caption') ?? ''
|
||||
: '',
|
||||
];
|
||||
}
|
||||
@@ -84,7 +88,7 @@ class FurniEditorController extends Controller
|
||||
$page = max(1, (int) $request->input('page', 1));
|
||||
$limit = min(50, max(1, (int) $request->input('limit', 20)));
|
||||
|
||||
$query = DB::table('items_base');
|
||||
$query = ItemBase::query();
|
||||
|
||||
if ($q !== '' && $q !== '0') {
|
||||
$query->where(function ($w) use ($q) {
|
||||
@@ -105,7 +109,7 @@ class FurniEditorController extends Controller
|
||||
->skip(($page - 1) * $limit)
|
||||
->take($limit)
|
||||
->get()
|
||||
->map(fn ($r) => [
|
||||
->map(fn (ItemBase $r) => [
|
||||
'id' => $r->id,
|
||||
'spriteId' => $r->sprite_id,
|
||||
'itemName' => $r->item_name,
|
||||
@@ -128,7 +132,7 @@ class FurniEditorController extends Controller
|
||||
'page' => $page,
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return $this->handleApiError('Zoeken', $e);
|
||||
return $this->handleApiError('Search', $e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,15 +146,14 @@ class FurniEditorController extends Controller
|
||||
return response()->json(['error' => 'Missing id'], 400);
|
||||
}
|
||||
|
||||
$item = DB::table('items_base')->where('id', $id)->first();
|
||||
$item = ItemBase::where('id', $id)->first();
|
||||
if (! $item) {
|
||||
return response()->json(['error' => 'Item not found'], 404);
|
||||
}
|
||||
|
||||
$catalog = DB::table('catalog_items')
|
||||
->whereRaw('FIND_IN_SET(?, item_ids)', [$id])
|
||||
$catalog = CatalogItem::whereRaw('FIND_IN_SET(?, item_ids)', [$id])
|
||||
->get()
|
||||
->map(fn ($r) => $this->formatCatalogItemData($r));
|
||||
->map(fn (CatalogItem $r) => $this->formatCatalogItemData($r));
|
||||
|
||||
return response()->json([
|
||||
'item' => array_merge($this->formatItemData($item), [
|
||||
@@ -161,7 +164,7 @@ class FurniEditorController extends Controller
|
||||
'furniDataEntry' => null,
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return $this->handleApiError('Item laden', $e);
|
||||
return $this->handleApiError('Load item', $e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,7 +185,7 @@ class FurniEditorController extends Controller
|
||||
return response()->json(['error' => 'No fields to update'], 400);
|
||||
}
|
||||
|
||||
DB::table('items_base')->where('id', $id)->update($update);
|
||||
ItemBase::where('id', $id)->update($update);
|
||||
|
||||
Log::info('[Audit] FurniEditor update', [
|
||||
'user_id' => Auth::id(),
|
||||
@@ -192,7 +195,7 @@ class FurniEditorController extends Controller
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
} catch (\Exception $e) {
|
||||
return $this->handleApiError('Actie', $e);
|
||||
return $this->handleApiError('Update', $e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,7 +206,7 @@ class FurniEditorController extends Controller
|
||||
try {
|
||||
$data = $request->json()->all();
|
||||
|
||||
$id = DB::table('items_base')->insertGetId($this->buildInsertData($data));
|
||||
$id = ItemBase::insertGetId($this->buildInsertData($data));
|
||||
|
||||
Log::info('[Audit] FurniEditor create', [
|
||||
'user_id' => Auth::id(),
|
||||
@@ -212,7 +215,7 @@ class FurniEditorController extends Controller
|
||||
|
||||
return response()->json(['id' => $id]);
|
||||
} catch (\Exception $e) {
|
||||
return $this->handleApiError('Actie', $e);
|
||||
return $this->handleApiError('Create', $e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,7 +229,7 @@ class FurniEditorController extends Controller
|
||||
return response()->json(['error' => 'Missing id'], 400);
|
||||
}
|
||||
|
||||
DB::table('items_base')->where('id', $id)->delete();
|
||||
ItemBase::where('id', $id)->delete();
|
||||
|
||||
Log::warning('[Audit] FurniEditor delete', [
|
||||
'user_id' => Auth::id(),
|
||||
@@ -235,7 +238,7 @@ class FurniEditorController extends Controller
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
} catch (\Exception $e) {
|
||||
return $this->handleApiError('Actie', $e);
|
||||
return $this->handleApiError('Delete', $e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,7 +247,7 @@ class FurniEditorController extends Controller
|
||||
$this->checkAdmin();
|
||||
|
||||
try {
|
||||
$rows = DB::table('items_base')
|
||||
$rows = ItemBase::query()
|
||||
->select('interaction_type')
|
||||
->groupBy('interaction_type')
|
||||
->orderBy('interaction_type')
|
||||
@@ -252,7 +255,7 @@ class FurniEditorController extends Controller
|
||||
|
||||
return response()->json(['interactions' => $rows]);
|
||||
} catch (\Exception $e) {
|
||||
return $this->handleApiError('Actie', $e);
|
||||
return $this->handleApiError('Interactions', $e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,14 +269,14 @@ class FurniEditorController extends Controller
|
||||
return response()->json(['error' => 'Missing spriteId'], 400);
|
||||
}
|
||||
|
||||
$item = DB::table('items_base')->where('sprite_id', $spriteId)->first();
|
||||
$item = ItemBase::where('sprite_id', $spriteId)->first();
|
||||
if (! $item) {
|
||||
return response()->json(['error' => 'Item not found'], 404);
|
||||
}
|
||||
|
||||
return response()->json(['id' => $item->id]);
|
||||
} catch (\Exception $e) {
|
||||
return $this->handleApiError('Actie', $e);
|
||||
return $this->handleApiError('By sprite', $e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user