PATH:
home
/
rwabteecom
/
project_11
/
app
/
Services
/
Socials
/
Editing: DomainSocialServices.php
<?php namespace App\Services\Socials; use App\Models\DomainSocial; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\DB; class DomainSocialServices { public function index($active = false) { $domain = null; if(auth()->user()){ $domain = auth()->user()->domain; } return DomainSocial::query() ->when($active, function (Builder $query) { return $query->active(); }) ->where('domain_id', $domain->id) ->orderBy('order', 'asc') ->get(); } public function findOrFail($id, $active = false) { $domain = null; if(auth()->user()){ $domain = auth()->user()->domain; } return DomainSocial::query() ->when($active, function (Builder $query) { return $query->active(); }) ->where('domain_id', $domain->id) ->findOrFail($id); } public function findWithoutFail($id, $active = false, $domainId = false) { return DomainSocial::query() ->when($active, function (Builder $query) { return $query->active(); }) ->when($active, function ($q) use ($domainId) { return $q->where('domain_id', $domainId); }) ->find($id); } public function store($domain, $request) { return DB::transaction(function () use ($domain, $request) { return DomainSocial::query()->create([ "domain_id" => $domain->id, "social_icon_id"=> $request->icon_id, "link" => $request->link, "order" => $domain->socialIcons->count()+1 ]); }); } public function update($id, $request) { DB::transaction(function () use ($id, $request) { $page = $this->findOrFail($id); $page->update([ "title" => $request->title, "background" => $request->background, "color" => $request->color, "icon" => $request->icon, ]); }); } public function destroy($id): void { DB::transaction(function () use ($id) { $page = $this->findOrFail($id); $page->delete(); }); } public function order($domain, $request): void { DB::transaction(function () use ($domain, $request) { $orderCounter = 1; foreach($request->icons as $link){ $social = $this->findWithoutFail($link, false, $domain->id); if($social){ $social->update([ 'order' => $orderCounter ]); } $orderCounter++; } }); } public function updateStatus($domain, $requestArray) { DB::transaction(function () use ($domain, $requestArray) { $social = $this->findWithoutFail($requestArray['icon_id'], false, $domain->id); if($social){ $social->update([ 'status' => $requestArray['status'] ]); } }); } public function updateIcon($domain, $request) { DB::transaction(function () use ($domain, $request) { $social = $this->findWithoutFail($request->icon_id, false, $domain->id); if($social){ $social->update([ 'link' => $request->url ]); } }); } }
SAVE
CANCEL