@RequestMapping(value = "/product/{prod}", method = RequestMethod.DELETE)
  @Transactional
  public ResponseEntity<ProductResult> doIt(
      @PathVariable("prod") String product, Authentication auth) {

    if (!ApplicationSecurity.isRoot(auth)) {
      return new ResponseEntity<ProductResult>(HttpStatus.FORBIDDEN);
    }

    Product reqProduct = new Product(product, null);
    List<String> errors = DomainValidator.checkForErrors(reqProduct);

    if (!errors.isEmpty()) {
      return new ResponseEntity<ProductResult>(
          new ProductResult(reqProduct, errors), HttpStatus.BAD_REQUEST);
    }

    if (!products.exists(reqProduct.getName())) {
      return new ResponseEntity<ProductResult>(
          new ProductResult(reqProduct, Product.NOT_FOUND), HttpStatus.NOT_FOUND);
    }

    products.delete(reqProduct.getName());
    components.deleteByKeyProduct(reqProduct.getName());
    properties.deleteByKeyProduct(reqProduct.getName());
    userProducts.deleteByKeyProduct(reqProduct.getName());
    return new ResponseEntity<ProductResult>(HttpStatus.OK);
  }
Exemplo n.º 2
0
  @RequestMapping(value = "/upload", method = RequestMethod.POST)
  public @ResponseBody void uploadProduct(
      @RequestParam(value = "pic", required = false) MultipartFile pic,
      @RequestParam(value = "id", required = false) Integer id,
      @RequestParam("name") String name,
      @RequestParam("description") String description,
      @RequestParam("type") String type,
      @RequestParam("category") String category,
      @RequestParam("price") double price,
      @RequestParam("unit") String unit,
      HttpServletResponse response) {
    if (type == null
        || name == null
        || pic == null
        || description == null
        || category == null
        || price == 0
        || unit == null) {
      response.setStatus(HttpStatus.NOT_ACCEPTABLE.value());
      return;
    }
    Product product;
    if (id != null) {
      product = productService.getById(id);
    } else {
      product = new Product();
    }
    product.setName(name);
    product.setDescription(description);
    product.setType(Type.valueOf(type));
    product.setCategory(Category.valueOf(category));
    product.setPrice(price);
    product.setUnit(unit);
    // for Linux
    String dstFilePath =
        "/" + PathUtil.getWebInfPath() + "/product_images/" + product.generatePicurlHash() + ".jpg";
    // for Windows
    //        String dstFilePath = PathUtil.getWebInfPath() + "/product_images/" +
    // product.generatePicurlHash() + ".jpg";
    System.out.println("dstFilePath =" + dstFilePath);
    if (pic != null) {
      product.setPicurl("product_images/" + product.generatePicurlHash() + ".jpg");

      File picFile = new File(dstFilePath);

      try {
        pic.transferTo(picFile);
      } catch (IllegalStateException e) {
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
    product.setDataChangeLastTime(new Timestamp(System.currentTimeMillis()));
    if (id != null) {
      productService.update(product);
    } else {
      productService.save(product);
    }
  }