예제 #1
0
  @RequestMapping(
      value = "/jobs",
      method = {RequestMethod.POST})
  public String createNewJob(HttpServletRequest request, ModelMap model) {
    User user = (User) request.getSession().getAttribute("user");
    if (user == null) {
      model.addAttribute("errorMsg", "User has no permission");
      return "login";
    }
    String closingDate = request.getParameter("closingDate");
    String salary = request.getParameter("salary");
    String positionType = request.getParameter("positionType");
    String location = request.getParameter("location");
    String description = request.getParameter("description");

    Job j = new Job();
    j.setClosingDate(closingDate);
    j.setSalary(Integer.parseInt(salary));
    j.setPositionType(positionType);
    j.setLocation(location);
    j.setDescription(description);
    if (!validateInput(closingDate, salary, positionType, location, description, null, null)) {
      model.addAttribute("errorMsg", "Invalid form data");
      model.addAttribute("job", j);
      return "addJob";
    }
    try {
      Job newJob =
          JobsDao.instance.create(
              ORSKEY,
              user.getShortKey(),
              closingDate,
              salary,
              positionType,
              location,
              description,
              RecruitmentStatus.CREATED.toString(),
              null);
      return "redirect:/jobs/" + newJob.get_jobId();
    } catch (Exception e) {
      e.printStackTrace();
      model.addAttribute("errorMsg", e.getMessage());
      return "error";
    }
  }
예제 #2
0
  @RequestMapping(
      value = "/jobs/{jobId}/update",
      method = {RequestMethod.POST})
  public String updateJob(@PathVariable String jobId, HttpServletRequest request, ModelMap model) {
    User user = (User) request.getSession().getAttribute("user");
    if (user == null) {
      model.addAttribute("errorMsg", "User has no permission");
      return "login";
    }
    String closingDate = request.getParameter("closingDate");
    String salary = request.getParameter("salary");
    String positionType = request.getParameter("positionType");
    String location = request.getParameter("location");
    String description = request.getParameter("description");
    String status = request.getParameter("status");
    String assignedTeam = request.getParameter("assignedTeam");

    Job updatedJob = JobsDao.instance.getById(jobId);
    if (closingDate != null) {
      updatedJob.setClosingDate(closingDate);
    }
    if (salary != null) {
      updatedJob.setSalary(Integer.parseInt(salary));
    }
    if (positionType != null) {
      updatedJob.setPositionType(positionType);
    }
    if (location != null) {
      updatedJob.setLocation(location);
    }
    if (description != null) {
      updatedJob.setDescription(description);
    }
    if (status != null) {
      updatedJob.setStatus(RecruitmentStatus.valueOf(status));
    }
    if (assignedTeam != null) {
      if (assignedTeam.isEmpty()) {
        assignedTeam = null;
      } else { // if hiring team is assigned and auto-check is done, proceed to next recruitment
               // stage
        DetailedJob j = new DetailedJob(JobsDao.instance.getById(jobId));
        j.setApplications(
            ORSKEY,
            user.getShortKey(),
            (ArrayList<Application>)
                ApplicationsDao.instance.getByJob(ORSKEY, user.getShortKey(), jobId));
        if (j.allApplicationsAutoChecked()) {
          updatedJob.setStatus(RecruitmentStatus.IN_REVIEW);
          // update status for all applications of the job
          List<Application> applications =
              ApplicationsDao.instance.getByJob(ORSKEY, user.getShortKey(), jobId);
          for (Application a : applications) {
            a.setStatus(ApplicationStatus.IN_REVIEW);
            ApplicationsDao.instance.update(a);
          }
        }
      }
      updatedJob.setAssignedTeam(assignedTeam);
    }
    if (!validateInput(
        closingDate, salary, positionType, location, description, status, assignedTeam)) {
      model.addAttribute("errorMsg", "Invalid form data");
      model.addAttribute("job", updatedJob);
      return "redirect:/jobs/" + jobId + "/edit";
    }
    try {
      JobsDao.instance.update(ORSKEY, user.getShortKey(), updatedJob);
      return "redirect:/jobs/" + jobId;
    } catch (Exception e) {
      e.printStackTrace();
      model.addAttribute("errorMsg", e.getMessage());
      return "error";
    }
  }