/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { $key = $request->get('key'); if (is_null($key)) { throw new Exception("No API Key specified.", 401); } if (!User::getUserByKey($key)) { throw new InvalidApiKeyException("Access denied.", 403); } return $next($request); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { $key = $request->get('key'); if (is_null($key)) { return abort(401, 'No API Key specified.'); } if (!User::getUserByKey($key)) { return abort(403, 'Access denied.'); } return $next($request); }
/** * Create Screenshot. * * @return Illuminate\Http\Response */ public function createScreenshot(Request $request) { $url = $request->get('url', 'http://screeenly.com'); $user = $this->user->getUserByKey($request->get('key')); // Validate Input $validator = $this->app->make('Screeenly\\Screenshot\\ScreenshotValidator'); $validator->validate($request->all()); // Check if Host is available $checkHost = $this->app->make('Screeenly\\Services\\CheckHostService'); $checkHost->ping($url); // Actually Capture the Screenshot $screenshot = $this->app->make('Screeenly\\Screenshot\\Screenshot'); $filename = $screenshot->generateFilename(); $screenshot->setStoragePath($filename); $screenshot->setHeight($request->get('height')); $screenshot->setWidth($request->get('width', 1024)); $screenshot->capture($url); $log = $this->log->store($screenshot, $user); $this->setRateLimitHeader($request); $result = ['path' => $screenshot->assetPath, 'base64' => 'data:image/jpg;base64,' . $screenshot->bas64, 'base64_raw' => $screenshot->bas64]; return $this->response->json($result, 201, $this->header); }