ManagementSystem/BACKEND/Modules/Admin/app/Http/Controllers/PackageController.php

95 lines
2.6 KiB
PHP
Executable File

<?php
namespace Modules\Admin\app\Http\Controllers;
use App\Helper\Cache\PackagesCacheHelper;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Modules\Admin\app\Http\Requests\PackageRequest;
use Modules\Admin\app\Models\Package;
class PackageController extends Controller
{
public function all(PackageRequest $request)
{
$package = new Package;
return response()->json([
'data' => $package->get(),
'status' => true,
]);
}
public function create(PackageRequest $request)
{
$package = Package::create($request->all());
PackagesCacheHelper::cleanCachePackages();
return response()->json([
'data' => $package,
'status' => true
]);
}
public function update(PackageRequest $request)
{
$id = $request->get('id');
$package = Package::find($id);
$package->update($request->all());
PackagesCacheHelper::cleanCachePackages();
return response()->json([
'data' => $package,
'status' => true
]);
}
public function delete(PackageRequest $request)
{
$id = $request->get('id');
Package::destroy($id);
PackagesCacheHelper::cleanCachePackages();
return response()->json([
'status' => true
]);
}
// Delete multiple packages
public function deletes(PackageRequest $request)
{
$packages = $request->get('packages');
$ids = collect($packages)->pluck('id');
Package::whereIn('id', $ids)->delete();
PackagesCacheHelper::cleanCachePackages();
return response()->json([
'data' => $ids,
'status' => true
]);
}
// Update multiple packages
public function updates(PackageRequest $request)
{
$packages = $request->get('packages');
$ids = collect($packages)->pluck('id');
foreach ($packages as $packageRequest) {
// convert to object|array to array
$packageRequest = collect($packageRequest)->toArray();
// handle array
$package = Package::find($packageRequest['id']);
if ($package) {
// exclude id field
unset($package['id']);
$package->update($packageRequest);
}
}
PackagesCacheHelper::cleanCachePackages();
return response()->json([
'data' => Package::whereIn('id', $ids)->get(),
'status' => true
]);
}
}