path(), 'api/v2') === 0 ? 'apiV2.' : null) ?? 'none'; return strpos($routeName, 'apiV2.') === 0; } /** * Tells if the request is within apiV1 routes * * @param Request $request * @return boolean */ public static function isRequestForApiV1(Request $request): bool { // Small hack to ensure to know if route is From APIv1 $routePrefix = (strpos(static::getRoutePrefix($request), 'api/v1') ? 'v1' : null) ?? (strpos($request->path(), 'api/v1') === 0 ? 'v1' : null) ?? 'none'; return strpos($routePrefix, 'v1') === 0; } /** * Try to get current route name * * @param Request $request * @return string|null */ public static function getRouteName(Request $request) { return Route::currentRouteName() ?? ($request->route() ? $request->route()->getName() : null); } /** * Try to get current route prefix * * @param Request $request * @return string|null */ public static function getRoutePrefix(Request $request) { return (Route::getCurrentRoute() ? Route::getCurrentRoute()->getPrefix() : null) ?? ($request->route() ? $request->route()->getPrefix() : null); } /** * Try to get route from request * * @param Request $request * @return \Illuminate\Routing\Route|null */ public static function getRoute(Request $request) { return Route::getRoutes()->getByName(static::getRouteName($request)); } /** * Get composer.json infos * * @return array */ public static function getPackageInfo(): array { if (!static::$packageInfos) { static::$packageInfos = \json_decode(\file_get_contents(__DIR__ . '/../../composer.json'), true); } return static::$packageInfos; } /** * Undocumented function * * @param Request $request * @return string|null */ public static function getBearerTokenFromRequest(Request $request): ?string { $header = $request->header('Authorization', ''); if (Str::contains($header, 'Bearer ')) { $auths = \explode(',', $header); foreach ($auths as $auth) { if (Str::contains($auth, 'Bearer ')) { return Str::substr($auth, 7); } } } return null; } }