Ejemplo n.º 1
0
 public function run()
 {
     $count = Wine::where('group_id', 0)->count();
     echo "Operating wines number : {$count} wines" . PHP_EOL;
     Wine::where('group_id', 0)->chunk(100, function ($wines) {
         foreach ($wines as $wine) {
             echo "Handling: {$wine->rakuten_id}";
             $start = time();
             $request = curl_init('http://54.64.177.240:8888/api/match');
             curl_setopt($request, CURLOPT_POST, true);
             curl_setopt($request, CURLOPT_POSTFIELDS, array('img' => "@" . $wine->local_path));
             curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
             $result = json_decode(curl_exec($request));
             $matched_wines = $result->matches;
             $matched_rakuten_ids = array();
             foreach ($matched_wines as $matched_wine) {
                 $matched_id = $matched_wine->id;
                 $num_of_match = $matched_wine->numMatches;
                 if ($num_of_match < 10) {
                     continue;
                 }
                 $rakuten_paths = explode('_', $matched_id);
                 if (count($rakuten_paths) < 2) {
                     continue;
                 }
                 $matched_rakuten_ids[] = join('_', array('rakuten', $rakuten_paths[0], $rakuten_paths[1]));
             }
             if (count($matched_rakuten_ids) == 0) {
                 echo "No Matched Wines to group" . PHP_EOL;
                 continue;
             }
             echo "Num of matched wines : " . count($matched_rakuten_ids) . ". Now updating group" . PHP_EOL;
             $group_wines = Wine::where('rakuten_id', $matched_rakuten_ids)->get();
             $group_id = 0;
             foreach ($group_wines as $group_wine) {
                 if ($group_wine->group_id > 0) {
                     $group_id = $group_wine->group_id;
                     break;
                 }
             }
             if ($group_id == 0) {
                 $group_id = $wine->wine_id;
             }
             $wine->group_id = $group_id;
             $wine->save();
             foreach ($group_wines as $group_wine) {
                 $group_wine->group_id = $group_id;
                 $group_wine->save();
             }
             echo "Grouping Done. Group id is {$group_id}" . PHP_EOL;
             echo "Cost : " . (time() - $start) . " seconds." . PHP_EOL;
             curl_close($request);
         }
     });
 }
 public function run()
 {
     DB::table('wine_notes')->delete();
     $user_id = User::where('email', '*****@*****.**')->first()->user_id;
     $user_1 = User::where('email', '*****@*****.**')->first()->user_id;
     $user_2 = User::where('email', '*****@*****.**')->first()->user_id;
     $wine_1 = Wine::where('wine_id', 1)->first()->wine_unique_id;
     $wine_2 = Wine::where('wine_id', 2)->first()->wine_unique_id;
     $wine_3 = Wine::where('wine_id', 3)->first()->wine_unique_id;
     Winenote::create($data = array('id' => 1, 'wine_unique_id' => $wine_1, 'user_id' => $user_id, 'note' => 'This is note 1'));
     Winenote::create($data = array('id' => 2, 'wine_unique_id' => $wine_2, 'user_id' => $user_1, 'note' => 'This is note 2'));
     Winenote::create($data = array('id' => 3, 'wine_unique_id' => $wine_3, 'user_id' => $user_2, 'note' => 'This is note 3'));
 }
Ejemplo n.º 3
0
 public function run()
 {
     DB::table('ratings')->delete();
     $user_id = User::where('email', '*****@*****.**')->first()->user_id;
     $user_1 = User::where('email', '*****@*****.**')->first()->user_id;
     $user_2 = User::where('email', '*****@*****.**')->first()->user_id;
     $wine_1 = Wine::where('wine_id', 1)->first()->wine_unique_id;
     $wine_2 = Wine::where('wine_id', 2)->first()->wine_unique_id;
     $wine_3 = Wine::where('wine_id', 3)->first()->wine_unique_id;
     Rating::create(array('id' => '1', 'user_id' => $user_id, 'wine_unique_id' => $wine_1, 'rate' => '0.5', 'content' => 'this is rating 1', 'like_count' => '5', 'comment_count' => '5', 'is_my_wine' => '1'));
     Rating::create(array('id' => '2', 'user_id' => $user_id, 'wine_unique_id' => $wine_2, 'rate' => '1.5', 'content' => 'this is rating 2', 'like_count' => '5', 'comment_count' => '5', 'is_my_wine' => '1'));
     Rating::create(array('id' => '3', 'user_id' => $user_id, 'wine_unique_id' => $wine_3, 'rate' => '4.5', 'content' => 'this is rating 3', 'like_count' => '8', 'comment_count' => '5', 'is_my_wine' => '1'));
     Rating::create(array('id' => '4', 'user_id' => $user_1, 'wine_unique_id' => $wine_1, 'rate' => '5', 'content' => 'this is rating 7', 'like_count' => '6', 'comment_count' => '15', 'is_my_wine' => '1'));
     Rating::create(array('id' => '5', 'user_id' => $user_2, 'wine_unique_id' => $wine_2, 'rate' => '5', 'content' => 'this is rating 8', 'like_count' => '14', 'comment_count' => '8', 'is_my_wine' => '1'));
 }
 public function run()
 {
     DB::table('wishlists')->delete();
     $user_id = User::where('email', '*****@*****.**')->first()->user_id;
     $user_1 = User::where('email', '*****@*****.**')->first()->user_id;
     $user_2 = User::where('email', '*****@*****.**')->first()->user_id;
     $wine_1 = Wine::where('wine_id', 1)->first()->wine_unique_id;
     $wine_2 = Wine::where('wine_id', 2)->first()->wine_unique_id;
     $wine_3 = Wine::where('wine_id', 3)->first()->wine_unique_id;
     Wishlist::create(array('id' => '1', 'wine_unique_id' => $wine_1, 'user_id' => $user_id));
     Wishlist::create(array('id' => '2', 'wine_unique_id' => $wine_2, 'user_id' => $user_id));
     Wishlist::create(array('id' => '3', 'wine_unique_id' => $wine_3, 'user_id' => $user_id));
     Wishlist::create(array('id' => '4', 'wine_unique_id' => $wine_1, 'user_id' => $user_1));
     Wishlist::create(array('id' => '5', 'wine_unique_id' => $wine_3, 'user_id' => $user_1));
     Wishlist::create(array('id' => '6', 'wine_unique_id' => $wine_1, 'user_id' => $user_2));
     Wishlist::create(array('id' => '7', 'wine_unique_id' => $wine_3, 'user_id' => $user_2));
 }
Ejemplo n.º 5
0
 public static function deleteRating($id)
 {
     $rating = Rating::where('id', $id)->first();
     $error_code = ApiResponse::OK;
     if ($rating) {
         $rating_profile = Profile::where('user_id', $rating->user_id)->first();
         if ($rating_profile != null) {
             $rating_profile->rate_count = $rating_profile->rate_count - 1;
             $rating_profile->save();
         }
         $rating_wine = Wine::where('wine_unique_id', $rating->wine_unique_id)->first();
         if ($rating_wine != null) {
             $rating_rate = $rating_wine->average_rate * $rating_wine->rate_count;
             $rating_wine->rate_count = $rating_wine->rate_count - 1;
             if ($rating_wine->rate_count > 0) {
                 $rating_wine->average_rate = ($rating_rate - $rating->rate) / $rating_wine->rate_count;
             } else {
                 $rating_wine->average_rate = 0;
             }
             $rating_wine->save();
         }
         $rating->delete();
         $data = 'Rating Deleted';
     } else {
         $error_code = ApiResponse::UNAVAILABLE_RATING;
         $data = ApiResponse::getErrorContent(ApiResponse::UNAVAILABLE_RATING);
     }
     return array("code" => $error_code, "data" => $data);
 }
Ejemplo n.º 6
0
 public function scan()
 {
     $user_id = Session::get('user_id');
     if (!Input::hasFile('file')) {
         return Response::json(array("result" => "No file"));
     }
     $result = "";
     $file = Input::file('file');
     $destinationPath = public_path() . "/uploads/";
     $file_name = date('YmdHis') . '_' . $file->getClientOriginalName();
     $uploadSuccess = $file->move($destinationPath, $file_name);
     if ($uploadSuccess) {
         $result = Wine::scan($destinationPath . $file_name);
         if ($result != -2) {
             $wine = Wine::where('wine_id', $result)->first();
             if ($wine != null) {
                 $input = $wine->toArray();
                 $rating = Rating::createNewRating($input);
             }
         }
     }
     return Response::json(array("result" => $result));
 }
Ejemplo n.º 7
0
 public static function uploadImageWineScan($wine_unique_id)
 {
     $error_code = ApiResponse::OK;
     $user_id = Session::get('user_id');
     $wine = Wine::where('wine_unique_id', $wine_unique_id)->first();
     if ($wine) {
         if (Input::hasFile('file')) {
             $file = Input::file('file');
             $destinationPath = public_path() . '/images/' . $user_id . '/wine/' . $wine->wine_unique_id;
             $filename = date('YmdHis') . '_' . $file->getClientOriginalName();
             $extension = $file->getClientOriginalExtension();
             if (!File::isDirectory($destinationPath)) {
                 File::makeDirectory($destinationPath, $mode = 0777, true, true);
             } else {
                 File::cleanDirectory($destinationPath);
             }
             $upload_success = $file->move($destinationPath, $filename);
             $data = URL::asset('images/' . $user_id . '/wine/' . $wine_unique_id . '/' . $filename);
         } else {
             $error_code = ApiResponse::MISSING_PARAMS;
             $data = null;
         }
     } else {
         $error_code = ApiResponse::UNAVAILABLE_WINE;
         $data = ApiResponse::getErrorContent(ApiResponse::UNAVAILABLE_WINE);
     }
     return array("code" => $error_code, "data" => $data);
 }
Ejemplo n.º 8
0
 public static function deleteWinenote($wine_unique_id)
 {
     $user_id = Session::get('user_id');
     $winenote = Winenote::where('user_id', $user_id)->where('wine_unique_id', $wine_unique_id)->first();
     $error_code = ApiResponse::OK;
     if (Wine::where('wine_unique_id', $wine_unique_id)->first()) {
         if ($winenote) {
             $winenote->delete();
             $data = 'Wine note is deleted';
         } else {
             $error_code = ApiResponse::UNAVAILABLE_WINE_NOTE;
             $data = ApiResponse::getErrorContent(ApiResponse::UNAVAILABLE_WINE_NOTE);
         }
     } else {
         $error_code = ApiResponse::UNAVAILABLE_WINE;
         $data = ApiResponse::getErrorContent(ApiResponse::UNAVAILABLE_WINE);
     }
     return array("code" => $error_code, "data" => $data);
 }
Ejemplo n.º 9
0
 public function testSearchWineSuccess()
 {
     $data = array();
     $_params = $this->_params;
     $response = $this->action('POST', 'WineController@search', array(), array('data' => json_encode($_params)));
     $user_id = $this->_user_id;
     $wine = Wine::where('name', 'LIKE', '%wi%')->with('winery')->get();
     if ($wine) {
         foreach ($wine as $wines) {
             if ($wines->image_url != null) {
                 $wines->image_url = URL::asset($wines->image_url);
             }
             if ($wines->wine_flag != null) {
                 $wines->wine_flag = URL::asset($wines->wine_flag);
             }
             $ratings = Rating::where('user_id', $user_id)->where('wine_unique_id', $wines->wine_unique_id)->where('is_my_wine', 1)->first();
             if ($ratings) {
                 $data[] = $wines;
             } else {
                 $wishlist = Wishlist::where('user_id', $user_id)->where('wine_unique_id', $wines->wine_unique_id)->first();
                 if ($wishlist) {
                     $data[] = $wines;
                 }
             }
         }
     }
     $this->assertEquals(array("code" => ApiResponse::OK, "data" => $data), json_decode($response->getContent(), true));
 }