/** * @Get("/food") * @Middleware("admin") * * Returns number of orders for each food for the specified week * */ public function getFoodOrdersForWeek() { $week = \Input::get('week'); $orderedFood = []; Food::all()->each(function ($food) use($week, &$orderedFood) { $arrayFood = $food->toArray(); $arrayFood['num_orders'] = Menu::getNumOrdersForWeekAndFood($week, $food); $orderedFood[] = $arrayFood; }); return $orderedFood; }
public static function createMenusForWeek($week) { $now = Carbon::now('Europe/Belgrade')->toDateTimeString(); $weekMon = Carbon::createFromTimeStamp((int) $week); $weekDays = ['mon' => $weekMon, 'tue' => $weekMon->copy()->addDays(1), 'wed' => $weekMon->copy()->addDays(2), 'thu' => $weekMon->copy()->addDays(3), 'fri' => $weekMon->copy()->addDays(4)]; $defaultFoods = Food::where('default', true)->get(); $newMenus = []; foreach ($weekDays as $dayAbbr => $day) { $newMenu = Menu::create(['date' => $day, 'week' => $week, 'published' => false, 'created_at' => $now, 'updated_at' => $now]); foreach ($defaultFoods as $defaultFood) { MenuFood::create(['food_id' => $defaultFood->id, 'menu_id' => $newMenu->id]); } $newMenus[] = $newMenu->id; } return self::with(['menuFoods', 'menuFoods.menu', 'menuFoods.food'])->find($newMenus); }
/** * @Put("/{id}/toggle-default") * @Middleware("admin") * * Admin makes a food default or not. * */ public function toggleDefault($id) { $food = Food::findOrFail($id); $food->toggleDefault(); return $food; }