public function store(CreateProblemRequest $request) { if (!$request->isFileFieldOK('statement')) { abort(409, 'No se completó el envío del archivo al servidor.'); } $problem = Problem::create($request->all()); $problem->updateStatementFromRequest($request); Flash::success('Se ha guardado el problema.'); return redirect('problems'); }
public function update(Requests\CreateProblemRequest $request, $id) { $problem = ProblemService::getProblem($id); if (!$this->amIAuthorOfProblem($problem->id)) { return abort(404); } ProblemService::updateProblem($problem->id, $request->all()); $limitTagCount = TagService::getLimitTagCount(); $tags = $request->get('tags'); if (count($tags) > $limitTagCount) { return redirect()->back()->withErrors('태그는 최대 ' . $limitTagCount . '개까지만 등록할 수 있습니다.'); } TagService::insertTags($problem->id, (array) $tags); if ($problem->status == Problem::openCode) { return redirect(action('ProblemsController@show', $problem->id)); } else { return redirect(action('ProblemsController@preview', $problem->id)); } }