95 lines
2.6 KiB
PHP
Executable File
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
|
|
]);
|
|
}
|
|
}
|