コード例 #1
0
 public Map<String, String> toParamsMap(JSONObject json) throws JSONException {
   Map<String, String> retMap = new HashMap<String, String>();
   Iterator<String> keysItr = json.keys();
   while (keysItr.hasNext()) {
     String key = keysItr.next();
     String value = (String) json.get(key);
     retMap.put(key, value);
   }
   return retMap;
 }
コード例 #2
0
  public void serializeHistoryCursor(
      Collection<TrackHistory> historyCursor, HttpServletResponse httpServletResponse) {
    try {
      final ServletOutputStream httpOutputStream = httpServletResponse.getOutputStream();
      final BufferedWriter outputStream =
          new BufferedWriter(new OutputStreamWriter(httpOutputStream));
      outputStream.write("{");
      outputStream.write("\"count\":");
      outputStream.write("" + historyCursor.size());

      if (historyCursor.size() > 0) {
        Gson gson = new Gson();

        outputStream.write(",");
        outputStream.write("\"tracks\":[");

        for (Iterator<TrackHistory> iterator = historyCursor.iterator(); iterator.hasNext(); ) {
          TrackHistory next = iterator.next();
          outputStream.write(gson.toJson(toWebTrack(next)));
          if (iterator.hasNext()) {
            outputStream.write(",");
          }
          outputStream.flush();
        }

        /*
                        while (historyCursor.hasNext())
                        {
                            outputStream.write(gson.toJson(toWebTrack(historyCursor.next())));
                            if (historyCursor.hasNext())
                            {
                                outputStream.write(",");
                            }
                            outputStream.flush();
                        }
        */
        outputStream.write("]");
      }
      outputStream.write("}");
      outputStream.flush();
      outputStream.close();
      httpOutputStream.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
コード例 #3
0
  /** POST /purchaseOrders -> Create a new purchaseOrder. */
  @RequestMapping(
      value = "/purchaseOrders",
      method = RequestMethod.POST,
      produces = MediaType.APPLICATION_JSON_VALUE)
  @Timed
  public ResponseEntity<?> createPurchaseOrder(@RequestBody List<PurchaseOrder> purchaseOrders)
      throws URISyntaxException, JsonProcessingException {

    log.debug("REST request to save PurchaseOrder : {}", purchaseOrders);
    if (purchaseOrders.size() == 0) {
      return ResponseEntity.badRequest()
          .headers(HeaderUtil.createFailureAlert("purchaseOrder", "noitems", "No items selected"))
          .body("{\"error\":\"NoItems\"}");
    }
    // if (purchaseOrder.getId() != null) {
    //
    // }
    User loggedUser = userRepository.findOneByLogin(SecurityUtils.getCurrentUserLogin()).get();
    List<PurchaseOrder> initializedOrders = new ArrayList<PurchaseOrder>();
    List<PurchaseOrder> result = new ArrayList<PurchaseOrder>();
    String concatId = "";

    Iterator<PurchaseOrder> it = purchaseOrders.iterator();
    while (it.hasNext()) {
      PurchaseOrder order = it.next();
      order.setState(OrderStatus.Initial);

      order.setCreationDate(ZonedDateTime.now());

      ArtWorkPiece work = artWorkPieceRepository.findOne(order.getArtWorkPiece().getId());
      if (work.getCommercialState() != CommercialState.ForSale
          || work.getApprovalState() != ApprovalState.Approved) {
        loggedUser = userRepository.findOneByLogin(SecurityUtils.getCurrentUserLogin()).get();
        ObjectMapper mapper = new ObjectMapper();
        Set<WorkPiece> cart = loggedUser.getShoppingCart();
        String cartJSON = mapper.writeValueAsString(cart);
        return ResponseEntity.badRequest()
            .headers(
                HeaderUtil.createFailureAlert(
                    "purchaseOrder",
                    "WorkNotForSale",
                    "An artwork not for sale is trying to be selled"))
            .body("{\"error\":\"WorkNotForSale\",\"cart\":" + cartJSON + "}");
      }

      User artist = userRepository.findOneByLogin(work.getProfile().getUser().getLogin()).get();
      User client = loggedUser;
      order.setArtWorkPiece(work);
      order.setArtist(artist);
      order.setClient(client);

      Address origin;

      if (order.getArtist().getAddresses().size() > 0) {
        origin = order.getArtist().getAddresses().stream().findFirst().get();
      } else {
        loggedUser = userRepository.findOneByLogin(SecurityUtils.getCurrentUserLogin()).get();
        return ResponseEntity.badRequest()
            .headers(
                HeaderUtil.createFailureAlert(
                    "purchaseOrder", "ArtistAddressNotFound", "The artist has no address."))
            .body("{\"error\":\"ArtistAddressNotFound\"}");
      }

      Address destination = order.getDestination();
      Address billing = order.getBilling();
      origin.setId(null);
      destination.setId(null);
      billing.setId(null);
      origin = addressRepository.save(origin);
      destination = addressRepository.save(destination);
      billing = addressRepository.save(billing);
      order.setAddress(origin);
      order.setDestination(destination);
      order.setBilling(billing);

      BigDecimal price = new BigDecimal(work.getPrice());
      Long random = System.currentTimeMillis();

      BigDecimal shippingCost =
          rateWebServiceClient.send(
              random.toString(),
              origin.getCountry().getCountryCode(),
              origin.getZipPostalCode(),
              destination.getCountry().getCountryCode(),
              destination.getZipPostalCode(),
              work.getHeight().toString(),
              work.getWidth().toString(),
              (work.getDepth() != null ? work.getDepth().toString() : "1"),
              work.getPrice().toString());
      work.setShippingCost(shippingCost);
      order.setShippingCosts(shippingCost);
      BigDecimal total = price.add(shippingCost);
      order.setTotal(total);

      initializedOrders.add(order);
    }

    Iterator<PurchaseOrder> itInitialized = initializedOrders.iterator();
    ArrayList<String> createdIds = new ArrayList<>();
    while (itInitialized.hasNext()) {
      PurchaseOrder order = itInitialized.next();
      PurchaseOrder saved = purchaseOrderRepository.save(order);
      result.add(saved);
      createdIds.add(saved.getId().toString());
      concatId += "_" + saved.getId().toString();

      ArtWorkPiece artwork = order.getArtWorkPiece();
      loggedUser.getShoppingCart().remove(artwork);
      artwork.setCommercialState(CommercialState.Sold);
      artWorkPieceRepository.save(artwork);
    }

    // loggedUser.setShoppingCart(null);
    userRepository.save(loggedUser);

    String location = payPalResource.checkout(createdIds);
    ResponseEntity error = checkErrors(location);
    if (error != null) {
      return error;
    }

    return ResponseEntity.created(new URI("/api/purchaseOrders/" + concatId))
        .headers(HeaderUtil.createEntityCreationAlert("purchaseOrder", concatId))
        .body("{\"location\":\"" + location + "\"}");
  }