use app\Web;
use http\QueryString;
-use http\Url;
+use http\Header;
abstract class Github implements Controller
{
"location" => "github",
"title" => "Github"
]);
- $this->app->getView()->registerFunction("check", [$this, "checkRepoHook"]);
+ $this->app->getView()->registerFunction("check", [$github, "checkRepoHook"]);
+
+ if (($header = $this->app->getRequest()->getHeader("Cache-Control", Header::class))) {
+ $params = $header->getParams();
+ if (!empty($params["no-cache"])) {
+ $this->github->setMaxAge(0);
+ } elseif (!empty($params["max-age"])) {
+ $this->github->setMaxAge($params["max-age"]["value"]);
+ }
+ }
}
protected function checkToken() {
]));
return false;
}
-
- /**
- * Check if the pharext webhook is set for the repo and return its id
- * @param object $repo
- * @return int hook id
- */
- function checkRepoHook($repo) {
- if ($repo->hooks) {
- foreach ($repo->hooks as $hook) {
- if ($hook->name === "web" && $hook->config->url === $this->github->getConfig()->hook->url) {
- return $hook;
- }
- }
- }
- return null;
- }
-
- function createLinkGenerator($links) {
- return function($which) use($links) {
- if (!isset($links[$which])) {
- if ($which !== "next" || !isset($links["last"])) {
- return null;
- } else {
- $which = "last";
- }
- }
- $url = new Url($links[$which], null, 0);
- $qry = new QueryString($url->query);
- return $qry->getInt("page", 1);
- };
- }
-
}