app/models/api/nightly_crashes.php (23 lines of code) (raw):

<?php declare(strict_types=1); use Cache\Cache; use ReleaseInsights\{Json, URL, Utils}; $buildid = Utils::getBuildID((int) ($_GET['buildid'] ?? 1)); $cache_id = URL::Socorro->value . 'SuperSearch/?build_id=' . (string) $buildid . '&_facets=signature&product=Firefox'; // If we can't retrieve cached data, we create and cache it. // We cache because we want to avoid http request latency if (! $data = Cache::getKey($cache_id, 1)) { $data = Json::toArray(Utils::getFile($cache_id)); // No data returned, don't cache. if (empty($data)) { return []; } $total_crashes = $data['total']; $signatures = $data['facets']['signature']; $data = [ 'buildid' => (string) $buildid, 'total' => $total_crashes, 'signatures' => $signatures, ]; // We don't cache today because we may miss the second nightly build if (date('Ymd', $buildid) !== date('Ymd')) { Cache::setKey($cache_id, $data); } } return $data;