HEX
Server: LiteSpeed
System: Linux srv1.dhviews.com 5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 24 11:27:16 EDT 2025 x86_64
User: bdedition (1723)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/bdedition/public_html/core/app/Http/Controllers/Admin/AdvertiseController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Constants\Status;
use App\Http\Controllers\Controller;
use App\Models\Advertise;
use Illuminate\Http\Request;
use App\Rules\FileTypeValidate;

class AdvertiseController extends Controller
{
    public function index(Request $request)
    {
        $pageTitle      = 'All Advertisement';
        $advertisements = Advertise::searchable(['type', 'size'])->orderByDesc('id')->paginate(getPaginate());
        return view('admin.advertise.index', compact('pageTitle', 'advertisements'));
    }

    public function store(Request $request, $id = 0)
    {
        $request->validate([
            'type'         => 'required|in:' . Status::BANNER_ADVERTISE . ',' . Status::SCRIPT_ADVERTISE,
            'size'         => 'required|in:728x90,980x90,980x120,300x250,300x600',
            'redirect_url' => 'required_if:type,' . Status::BANNER_ADVERTISE,
            'script'       => 'required_if:type,' . Status::SCRIPT_ADVERTISE,
        ]);

        if ($request->type == 'image' && $request->hasFile('image')) {
            $request->validate([
                'image'  => [$id ? 'nullable' : 'required', new FileTypeValidate(['jpeg', 'jpg', 'png', 'gif'])],
            ]);
        }
        if ($id) {
            $advertisement = Advertise::findOrFail($id);
            $notification = 'Advertisement updated successfully';
        } else {
            $advertisement = new Advertise();
            $notification = 'Advertisement created successfully';
        }

        if ($request->hasFile('image')) {
            try {
                $oldImage = $advertisement->type == Status::BANNER_ADVERTISE ? @$advertisement->content : null;
                $content = fileUploader($request->image, getFilePath('advertisement'), $request->size, $oldImage);
            } catch (\Exception $exp) {
                $notify[] = ['error', 'Couldn\'t uploaded advertisement image'];
                return back()->withNotify($notify);
            }
        }

        if ($request->type == Status::SCRIPT_ADVERTISE) {
            $content = $request->script;
        }

        $advertisement->type = $request->type;
        $advertisement->size = $request->size;
        $advertisement->content = @$content;
        $advertisement->redirect_url = $request->type == Status::BANNER_ADVERTISE ? $request->redirect_url : 'N/A';
        $advertisement->save();

        $notify[] = ['success', $notification];
        return back()->withNotify($notify);
    }

    public function status($id)
    {
        return Advertise::changeStatus($id);
    }
}