private static String serializeRequest()

in teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/transport/PresignedUrlRequestSerializer.java [149:173]


  private static String serializeRequest(@NotNull final PresignedUrlListRequestDto request, final boolean isVersion2) {
    final Element document = new Element(OBJECT_KEYS);
    if (isVersion2) {
      document.setAttribute(PRE_SIGN_V2, "true");
    }
    if (request.getCustomTtl() != null) {
      document.setAttribute(CUSTOM_TTL, String.valueOf(request.getCustomTtl()));
    }
    if (request.getMultipartContentType() != null) {
      document.setAttribute(S3_UPLOAD_CONTENT_TYPE, request.getMultipartContentType());
    }
    request.getPresignedUrlRequests().stream().filter(Objects::nonNull).forEach(s3ObjectKey -> {
      final Element element = XmlUtil.addTextChild(document, OBJECT_KEY, s3ObjectKey.getObjectKey());
      element.setAttribute(NUMBER_OF_PARTS, String.valueOf(s3ObjectKey.getDigests() != null ? s3ObjectKey.getDigests().size() : s3ObjectKey.getNumberOfParts()));
      if (s3ObjectKey.getDigests() != null) {
        for (String digest : s3ObjectKey.getDigests()) {
          XmlUtil.addTextChild(element, DIGEST, digest);
        }
      }
      if (s3ObjectKey.getUploadId() != null) {
        element.setAttribute(UPLOAD_ID, s3ObjectKey.getUploadId());
      }
    });
    return XmlUtil.toString(document);
  }