123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <?php
- use app\Hajeebtok;
- use app\Logger;
- use Pecee\SimpleRouter\SimpleRouter as Router;
- use Pecee\Http\Url;
- use Pecee\Http\Response;
- use Pecee\Http\Request;
- /**
- * Get url for a route by using either name/alias, class or method name.
- *
- * The name parameter supports the following values:
- * - Route name
- * - Controller/resource name (with or without method)
- * - Controller class name
- *
- * When searching for controller/resource by name, you can use this syntax "route.name@method".
- * You can also use the same syntax when searching for a specific controller-class "MyController@home".
- * If no arguments is specified, it will return the url for the current loaded route.
- *
- * @param string|null $name
- * @param string|array|null $parameters
- * @param array|null $getParams
- * @return \Pecee\Http\Url
- * @throws \InvalidArgumentException
- */
- function url(?string $name = null, $parameters = null, ?array $getParams = null): Url
- {
- return Router::getUrl($name, $parameters, $getParams);
- }
- /**
- * @return \Pecee\Http\Response
- */
- function response(): Response
- {
- return Router::response();
- }
- /**
- * @return \Pecee\Http\Request
- */
- function request(): Request
- {
- return Router::request();
- }
- /**
- * Get input class
- * @param string|null $index Parameter index name
- * @param string|mixed|null $defaultValue Default return value
- * @param array ...$methods Default methods
- * @return \Pecee\Http\Input\InputHandler|array|string|null
- */
- function input($index = null, $defaultValue = null, ...$methods)
- {
- if ($index !== null) {
- return request()->getInputHandler()->value($index, $defaultValue, ...$methods);
- }
- return request()->getInputHandler();
- }
- /**
- * @param string $url
- * @param int|null $code
- */
- function redirect(string $url, ?int $code = null): void
- {
- if ($code !== null) {
- response()->httpCode($code);
- }
- response()->redirect($url);
- }
- /**
- * Get current csrf-token
- * @return string|null
- */
- function csrf_token(): ?string
- {
- $baseVerifier = Router::router()->getCsrfVerifier();
- if ($baseVerifier !== null) {
- return $baseVerifier->getTokenProvider()->getToken();
- }
- return null;
- }
- /**
- * @param array $data
- * @return string
- */
- function api_json(array $data): string
- {
- header("Content-Type: application/json");
- return json_encode($data);
- }
- function signed_in(Request $request): bool
- {
- if(!empty($request->getHeader("Authorization"))) {
- $authorizationHeader = $request->getHeader("Authorization");
- } else {
- $authorizationHeader = urldecode($_COOKIE["token"]);
- }
- Logger::debug("Authorization header: $authorizationHeader");
- $token = explode(" ", $authorizationHeader)[1];
- $tokenData = Hajeebtok::$Database->Row("SELECT * FROM sessions WHERE token = :token", ["token" => $token]);
- return !empty($tokenData);
- }
- function get_token_id(Request $request): int
- {
- if(!empty($request->getHeader("Authorization"))) {
- $authorizationHeader = $request->getHeader("Authorization");
- } else {
- $authorizationHeader = urldecode($_COOKIE["token"]);
- }
- $token = explode(" ", $authorizationHeader)[1];
- $tokenData = Hajeebtok::$Database->Row("SELECT * FROM sessions WHERE token = :token", ["token" => $token]);
- if(!empty($tokenData)) return $tokenData["account_id"];
- return 0;
- }
- function CORSHelper() {
- $response = response();
- $response->header("Access-Control-Allow-Origin: *");
- $response->header("Access-Control-Allow-Headers: Authorization, Content-Type");
- }
|