Beispiel #1
0
 /**
  * Create a new short link
  * @param  Request $request request object
  * @return json Response
  */
 public function create(Request $request)
 {
     if (empty($request) || empty(trim($request->url))) {
         $result = $this->getResult(self::ERROR, self::BAD_REQUEST, null, 'Invalid parameter sent');
         return response()->json($result, self::BAD_REQUEST);
     }
     if (!filter_var($request->url, FILTER_VALIDATE_URL)) {
         $result = $this->getResult(self::ERROR, self::BAD_REQUEST, null, 'Please provide a valid URL');
         return response()->json($result, self::BAD_REQUEST);
     }
     $url = $request->url;
     $link = Links::whereUrl($url)->first();
     if (!$link) {
         $code = "";
         $link = Links::create(['url' => $request->url, 'code' => $code]);
         $code = base_convert($link->id + rand(10000, 100000), 10, 36);
         $link = Links::whereUrl($url)->update(['code' => $code]);
     }
     $code = isset($code) ? $code : $link->code;
     $data = ['link' => ['hash' => $code, 'url' => env('BASE_URL') . "/" . $code, 'long_url' => $url]];
     $result = $this->getResult(self::SUCCESS, self::CREATED, $data);
     return response()->json($result, self::CREATED);
 }