@Transactional(readOnly = false)
  @RequestMapping(
      value = "/edit",
      method = {RequestMethod.POST, RequestMethod.GET})
  public void editor(
      @RequestParam String oper,
      @RequestParam(required = false) Long id,
      Contact contacts,
      BindingResult result,
      HttpServletResponse response)
      throws IOException {
    if (result.hasErrors()) {
      response.sendError(400, result.toString());
      return;
    }
    switch (oper) {
      case "add":
        contactRepository.save(contacts);
        response.setStatus(200);
        break;
      case "edit":
        Contact fromDB = contactRepository.getOne(contacts.getContactId());
        if (fromDB != null) {
          if (contacts.getVersion() >= fromDB.getVersion()) {
            contactRepository.save(contacts);
            response.setStatus(200);
          } else {
            response.sendError(406, "ANOTHER TRANSACTION MODIFICATION");
          }
        } else {
          response.sendError(406, "NO CONTACT TYPE FOUND");
        }

        break;
      case "del":
        if (id != null) {
          contactRepository.delete(id);
          response.setStatus(200);
        }
        break;
      default:
        response.sendError(406, "UNKNOWN OPERATION");
    }
  }