Current File : /home/getxxhzo/app.genicards.com/app/Http/Controllers/ECardsController.php
<?php

namespace App\Http\Controllers;

use App\Http\Requests\CreateEcardRequest;
use App\Models\Vcard;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;
use SimpleSoftwareIO\QrCode\Facades\QrCode;

class ECardsController extends Controller
{
    public function index(): View|Factory|Application
    {
        $tenantId = Auth::user()->tenant_id;
        $vCards = Vcard::whereTenantId($tenantId)->pluck('name', 'id');

        return view('virtual-backgrounds.index', compact('vCards'));
    }

    public function getVcardData(Request $request): JsonResponse
    {
        $input = $request->all();
        $vcard = Vcard::with('socialLink')->findOrFail($input['vcardId']);

        $data = [
            'id' => $vcard['id'],
            'first_name' => $vcard['first_name'],
            'last_name' => $vcard['last_name'],
            'email' => $vcard['email'],
            'occupation' => $vcard['occupation'],
            'location' => $vcard['location'],
            'region_code' => $vcard['region_code'],
            'phone' => $vcard['phone'],
            'website' => $vcard['socialLink']['website'],
        ];

        return response()->json(['data' => $data, 'success' => true]);
    }

    public function downloadEcard(CreateEcardRequest $request): RedirectResponse
    {
        $input = $request->all();

        $path = asset('uploads/ecard');

        if (! Storage::exists($path)) {
            Storage::disk('public')->makeDirectory('uploads/ecard');
        }

        $zipFile = public_path('virtual_backgrounds/virtual-backgrounds.zip');
        if (File::exists($zipFile)) {
            File::delete($zipFile);
        }

        if ($input['e-card-id'] == 1) {
            $data = retriveH1Card($input);
        }
        if ($input['e-card-id'] == 2) {
            $data = retriveH2Card($input);
        }
        if ($input['e-card-id'] == 3) {
            $data = retriveH3Card($input);
        }
        if ($input['e-card-id'] == 4) {
            $data = retriveH4Card($input);
        }
        if ($input['e-card-id'] == 5) {
            $data = retriveH5Card($input);
        }
        if ($input['e-card-id'] == 6) {
            $data = retriveH6Card($input);
        }
        if ($input['e-card-id'] == 7) {
            $data = retriveH7Card($input);
        }
        if ($input['e-card-id'] == 8) {
            $data = retriveH8Card($input);
        }
        if ($input['e-card-id'] == 9) {
            $data = retriveH9Card($input);
        }
        if ($input['e-card-id'] == 10) {
            $data = retriveH10Card($input);
        }
        if ($input['e-card-id'] == 11) {
            $data = retriveH11Card($input);
        }
        if ($input['e-card-id'] == 12) {
            $data = retriveH12Card($input);
        }
        if ($input['e-card-id'] == 13) {
            $data = retriveH13Card($input);
        }

        // delete images after generate zip file
        $vcardId = $input['vcard_id'];
        $qrCodeImage = public_path('ecard/'.$vcardId.'-qr.png');
        $frontImage = public_path('virtual_backgrounds/Front.jpg');
        $backImage = public_path('virtual_backgrounds/Back.jpg');
        $frontImage1 = public_path('uploads/ecard/'.$vcardId .'/Front.png');
        $backImage1 = public_path('uploads/ecard/'.$vcardId.'/Back.png');
        $directory = public_path('uploads/ecard/'.$vcardId);


        if (File::exists($qrCodeImage)) {
            File::delete($qrCodeImage);
        }
        if (File::exists($frontImage)) {
            File::delete($frontImage);
        }
        if (File::exists($backImage)) {
            File::delete($backImage);
        }
        if (File::exists($frontImage1)) {
            File::delete($frontImage1);
        }
        if (File::exists($backImage1)) {
            File::delete($backImage1);
            File::deleteDirectory($directory);
        }

        return redirect(asset($data[0]));
    }

    public function getEcard(Request $request): \Illuminate\View\View
    {
        return view();
    }

    public function create($ecard): \Illuminate\View\View
    {
        $vcards = Vcard::whereTenantId(getLogInTenantId())->where('status', Vcard::ACTIVE)->pluck('name', 'id')->toArray();

        return view('virtual-backgrounds.create', compact('vcards', 'ecard'));
    }

    public function store(Request $request, $cardImageId)
    {
    }

    public function custom(): View|Factory|Application
    {
        $tenantId = Auth::user()->tenant_id;
        $vcards = Vcard::whereTenantId($tenantId)->pluck('name', 'id');

        return view('virtual-backgrounds.custom', compact('vcards'));
    }

    public function qrCode(Request $request) {
        $link = $request->input('link');
        $qrcode = QrCode::size(100)->generate($link);
        return $qrcode;
    }

}