From 5c602f32177e553fdb86c2f1ef5a6a85beb98913 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Wed, 30 Nov 2016 08:38:13 +0100 Subject: Cache all avatar responses * Cache for 30 minutes * Also cache when avatar can't be found Signed-off-by: Roeland Jago Douma --- core/Controller/AvatarController.php | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) (limited to 'core/Controller/AvatarController.php') diff --git a/core/Controller/AvatarController.php b/core/Controller/AvatarController.php index 5e3d563cf2c..5a3d6309149 100644 --- a/core/Controller/AvatarController.php +++ b/core/Controller/AvatarController.php @@ -133,16 +133,6 @@ class AvatarController extends Controller { $resp = new FileDisplayResponse($avatar, Http::STATUS_OK, ['Content-Type' => $avatar->getMimeType()]); - - // Let cache this! - $resp->addHeader('Pragma', 'public'); - // Cache for 15 minutes - $resp->cacheFor(900); - - $expires = new \DateTime(); - $expires->setTimestamp($this->timeFactory->getTime()); - $expires->add(new \DateInterval('PT15M')); - $resp->addHeader('Expires', $expires->format(\DateTime::RFC2822)); } catch (NotFoundException $e) { $user = $this->userManager->get($userId); $resp = new JSONResponse([ @@ -150,20 +140,24 @@ class AvatarController extends Controller { 'displayname' => $user->getDisplayName(), ], ]); - // Don't cache this - $resp->cacheFor(0); - $resp->setLastModified(new \DateTime('now', new \DateTimeZone('GMT'))); } catch (\Exception $e) { $resp = new JSONResponse([ 'data' => [ 'displayname' => '', ], ]); - // Don't cache this - $resp->cacheFor(0); - $resp->setLastModified(new \DateTime('now', new \DateTimeZone('GMT'))); } + // Let cache this! + $resp->addHeader('Pragma', 'public'); + // Cache for 30 minutes + $resp->cacheFor(1800); + + $expires = new \DateTime(); + $expires->setTimestamp($this->timeFactory->getTime()); + $expires->add(new \DateInterval('PT30M')); + $resp->addHeader('Expires', $expires->format(\DateTime::RFC1123)); + return $resp; } -- cgit v1.2.3