<?php
namespace App\Http\Controllers\Cache;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Frontend\EventsController;
use App\Http\Controllers\Frontend\FrontendController;
use App\Http\Controllers\Frontend\HomeController;
use App\Http\Controllers\Frontend\UploadController;
use App\Traits\UserTrait;
use App\User;
class CacheController extends Controller
{
public static $CONFIG_KEY = 'CacheController_last_updated_at';
public function homepage()
{
cache()->forget(HomeController::$CACHE_KEY);
$homeController = new HomeController();
return $homeController->indexGetData();
}
public function radio()
{
$frontendController = new FrontendController();
cache()->forget($frontendController->radioGetCacheKey());
return $frontendController->radio();
}
public function events()
{
$eventsController = new EventsController();
cache()->forget($eventsController->eventsGetCacheKey());
return $eventsController->events();
}
public function browseCreations()
{
$uploadController = new UploadController();
$all = $uploadController->browseCreationsCacheKey();
$rooms = $uploadController->browseCreationsCacheKey('room');
$picture = $uploadController->browseCreationsCacheKey('picture');
$video = $uploadController->browseCreationsCacheKey('video');
$tutorial = $uploadController->browseCreationsCacheKey('tutorial');
$guide = $uploadController->browseCreationsCacheKey('guide');
cache()->forget($all);
cache()->forget($rooms);
cache()->forget($picture);
cache()->forget($video);
cache()->forget($tutorial);
cache()->forget($guide);
$uploadController->browseCreationsAJAX('all');
$uploadController->browseCreationsAJAX('room');
$uploadController->browseCreationsAJAX('picture');
$uploadController->browseCreationsAJAX('video');
$uploadController->browseCreationsAJAX('tutorial');
$uploadController->browseCreationsAJAX('guide');
}
public function users()
{
$count = 0;
User::chunk(30, function($users) use(&$count) {
foreach($users as $user) {
cache(array(
UserTrait::getCacheKey('id', $user->id) => $user
), UserTrait::$CACHE_REMEMBER);
$count++;
}
});
return $count;
}
public function done()
{
cache([
CacheController::$CONFIG_KEY => time()
], 60 * 24);
}
public static function getLastUpdatedAt()
{
return config(CacheController::$CONFIG_KEY);
}
}
Comments