HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/honger7.komma.pro/app/KommaApp/Services/ServiceService.php
<?php
/**
 * Created by PhpStorm.
 * User: mike
 * Date: 18/05/17
 * Time: 22:02
 */

namespace App\KommaApp\Services;
use Illuminate\Support\Facades\Cache;

class ServiceService
{
    private $services = [];

    /**
     * Get all services
     */
    public function all()
    {
        if(empty($this->services))
            $this->services = Cache::remember('services',1440,function(){
               return Service::all();
            });

        return $this->services;
    }

    /**
     * Return service by slug
     *
     * @param $slug
     */
    public function serviceBySlug($slug)
    {
        return Cache::remember('service.' . $slug,1440,function() use ($slug)
        {
            return Service::where('slug',$slug)->first();
        });
    }

    /**
     * Return next service by current slug
     *
     * @param $slug
     */
    public function nextServiceBySlug($slug)
    {
        // Get current service
        $currentService = $this->serviceBySlug($slug);

        // Find next service by next id
        // Todo: refactor when data comes from KMS
        return Cache::remember('nextService.' . $slug,1440,function() use ($currentService)
        {
            return Service::where('id','>',$currentService->id)->first();
        });
    }
}