public function store(Request $request) { ///validate data if it is in databse or not $data_to_val = $request->only('product_codes'); $rule = AuctionController::getRule($request); $user = JWTAuth::parseToken()->authenticate(); ///if login $validate = Validator::make($data_to_val, $rule); if ($user->role != 1) { return response()->json(['message', 'invalid Role']); } if ($validate->fails()) { return response()->json($validate->errors()->all()); } ///open new auction $auction = new Auction(); ////add finished time this is added by 1 hr $auction->finished_at = time() + 3600; $auction->buyer()->associate($user); $auction->save(); $products = []; $product_codes = $request->get('product_codes'); foreach ($product_codes as $key => $val) { $product = Product::where(['product_code' => $val])->get()->first(); $products[$key] = $product; } $auction->products()->saveMany($products); if ($auction->products->count() >= 1) { /////Generating Defualt Bid foreach ($product_codes as $val) { $product = Product::where(['product_code' => $val])->get()->first(); $product_descriptions = $product->product_descriptions; $lowest_price_description = ProductController::findLowestPriceProductDescription($product_descriptions); $bid = new Bid(['price' => $lowest_price_description->price]); $bid->seller()->associate($lowest_price_description->seller); $bid->auction()->associate($auction); $bid->save(); $bid->products()->saveMany([$product]); } //// if ($auction->bids->count() >= 1) { $auction->status = 0; //opening $auction->save(); return response()->json(['message', 'success']); } } return response()->json(['message', 'error occurred']); }
public function getProductInfo($code) { ///validate data if it is in databse or not $data_to_validate = ['product_code' => $code]; $rule = ['product_code' => 'required|exists:products,product_code']; try { $user = JWTAuth::parseToken()->authenticate(); if ($user) { $validate = Validator::make($data_to_validate, $rule); if ($validate->fails()) { return response()->json(['message', 'product not existed']); } $product = Product::where($data_to_validate)->get()->first(); $product_des = ProductController::findLowestPriceProductDescription($product->product_descriptions); $data = ['id' => $product_des->id, 'product_code' => $product->product_code, 'name' => $product_des->name, 'price' => $product_des->price]; return response()->json($data); } } catch (JWTException $e) { } return response()->json(['message', 'login please jeeez']); //return json_encode(ProductDescription::findOrFail($id)); }