All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.molgenis.api.data.v1.UriUtils Maven / Gradle / Ivy

There is a newer version: 8.4.5
Show newest version
package org.molgenis.api.data.v1;

import org.molgenis.api.ApiNamespace;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
import org.springframework.web.util.UriComponents;

class UriUtils {
  private UriUtils() {}

  /** @return /v1/ */
  static String createEntityCollectionUriPath(String entityTypeId) {
    return createEntityCollectionUriComponents(entityTypeId).getPath();
  }

  private static UriComponents createEntityCollectionUriComponents(String entityTypeId) {
    ServletUriComponentsBuilder builder = createBuilder();
    builder.path(ApiNamespace.API_PATH);
    builder.pathSegment(RestController.API_VERSION, entityTypeId);
    return builder.build();
  }

  /** @return /v1//meta */
  static String createEntityTypeMetadataUriPath(String entityTypeId) {
    return createEntityTypeMetadataUriComponents(entityTypeId).getPath();
  }

  private static UriComponents createEntityTypeMetadataUriComponents(String entityTypeId) {
    ServletUriComponentsBuilder builder = createBuilder();
    builder.path(ApiNamespace.API_PATH);
    builder.pathSegment(RestController.API_VERSION, entityTypeId, "meta");
    return builder.build();
  }

  /** @return /v1//meta/ */
  static String createEntityTypeMetadataAttributeUriPath(
      String entityTypeId, String attributeName) {
    return createEntityTypeMetadataAttributeUriComponents(entityTypeId, attributeName).getPath();
  }

  private static UriComponents createEntityTypeMetadataAttributeUriComponents(
      String entityTypeId, String attributeName) {
    ServletUriComponentsBuilder builder = createBuilder();
    builder.path(ApiNamespace.API_PATH);
    builder.pathSegment(RestController.API_VERSION, entityTypeId, "meta", attributeName);
    return builder.build();
  }

  /** @return /v1// */
  static String createEntityUriPath(String entityTypeId, Object entityId) {
    return createEntityUriComponents(entityTypeId, entityId).getPath();
  }

  private static UriComponents createEntityUriComponents(String entityTypeId, Object entityId) {
    ServletUriComponentsBuilder builder = createBuilder();
    builder.path(ApiNamespace.API_PATH);
    builder.pathSegment(RestController.API_VERSION, entityTypeId, entityId.toString());
    return builder.build();
  }

  /** @return /v1/// */
  static String createEntityAttributeUriPath(
      String entityTypeId, Object entityId, String attributeName) {
    return createEntityAttributeUriComponents(entityTypeId, entityId, attributeName).getPath();
  }

  private static UriComponents createEntityAttributeUriComponents(
      String entityTypeId, Object entityId, String attributeName) {
    ServletUriComponentsBuilder builder = createBuilder();
    builder.path(ApiNamespace.API_PATH);
    builder.pathSegment(
        RestController.API_VERSION, entityTypeId, entityId.toString(), attributeName);
    return builder.build();
  }

  private static ServletUriComponentsBuilder createBuilder() {
    ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromCurrentServletMapping();
    builder.encode();
    return builder;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy