Merge pull request #2416 from nextcloud/cache_all_avatar_responses

Cache all avatar responses
This commit is contained in:
Lukas Reschke 2016-12-01 13:48:55 +01:00 committed by GitHub
commit de807fd882
1 changed files with 10 additions and 16 deletions

View File

@ -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;
}