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']); }
function addBid($price, $seller, $auction, $bundle) { $data = ['price' => $price]; $bid = new Bid($data); $bid->seller()->associate($seller); $bid->auction()->associate($auction); $bid->save(); $bid->products()->saveMany($bundle); }