From 29ae462e117144e1c07e3c3205d5c010cfb21fb2 Mon Sep 17 00:00:00 2001 From: Daniel Brendel Date: Fri, 5 Apr 2024 22:26:37 +0200 Subject: [PATCH] DB Caching for SteamServer --- app/controller/api.php | 2 +- app/modules/SteamCache.php | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/controller/api.php b/app/controller/api.php index 5ff35db..c4ca2f4 100644 --- a/app/controller/api.php +++ b/app/controller/api.php @@ -47,7 +47,7 @@ class ApiController extends BaseController { try { $addr = $request->params()->query('addr', null); - $data = SteamServer::querySteamData(env('STEAM_API_KEY'), $addr); + $data = SteamCache::cachedSteamServer(env('STEAM_API_KEY'), $addr); HitsModel::addHit(HitsModel::HITTYPE_MODULE_SERVER); diff --git a/app/modules/SteamCache.php b/app/modules/SteamCache.php index 61976df..093f403 100644 --- a/app/modules/SteamCache.php +++ b/app/modules/SteamCache.php @@ -69,4 +69,20 @@ class SteamCache { return SteamGroup::querySteamData($group); } } + + public static function cachedSteamServer($key, $addr) + { + $cache_driver = env('CACHE_DRIVER', null); + $cache_duration = env('CACHE_DURATION', 123); + + if ($cache_driver === 'db') { + return json_decode(CacheModel::remember('steam_server_' . $addr, $cache_duration, function() use ($key, $addr) { + return json_encode(SteamServer::querySteamData($key, $addr)); + })); + } else if ($cache_driver === 'redis') { + + } else { + return SteamServer::querySteamData($key, $addr); + } + } }