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 auction1() { //Buyer 1 Product $data = ['name' => 'buyer', 'email' => '*****@*****.**', 'password' => Hash::make('buyer'), 'role' => '1']; $user = User::firstOrCreate($data); $user->save(); $product = Product::firstOrNew(['product_code' => '12345']); $product1 = Product::firstOrNew(['product_code' => '12346']); $product2 = Product::firstOrNew(['product_code' => '12347']); $product3 = Product::firstOrNew(['product_code' => '12348']); $product4 = Product::firstOrNew(['product_code' => '12349']); $data = ['finished_at' => time() + 3600]; $auction = new Auction($data); $auction->buyer()->associate($user); $auction->save(); $products = [$product, $product1, $product2, $product3, $product4]; $auction->products()->saveMany($products); }