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