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
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
}
 |