EntandoDeBundleResourceAssembler.java
package org.entando.kubernetes.service.assembler;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn;
import org.entando.kubernetes.controller.EntandoDeBundleController;
import org.entando.kubernetes.controller.ObservedNamespaceController;
import org.entando.kubernetes.model.debundle.EntandoDeBundle;
import org.springframework.hateoas.EntityModel;
import org.springframework.hateoas.Links;
import org.springframework.hateoas.server.RepresentationModelAssembler;
import org.springframework.stereotype.Component;
@Component
public class EntandoDeBundleResourceAssembler implements
RepresentationModelAssembler<EntandoDeBundle, EntityModel<EntandoDeBundle>> {
@Override
public EntityModel<EntandoDeBundle> toModel(EntandoDeBundle bundle) {
EntityModel<EntandoDeBundle> response = new EntityModel<>(bundle);
response.add(getLinks(bundle));
return response;
}
private Links getLinks(EntandoDeBundle bundle) {
String bundleName = bundle.getMetadata().getName();
String bundleNamespace = bundle.getMetadata().getNamespace();
return Links.of(
linkTo(methodOn(EntandoDeBundleController.class).get(bundleName,bundleNamespace)).withSelfRel(),
linkTo(methodOn(EntandoDeBundleController.class).list(bundleNamespace)).withRel("bundles"),
linkTo(methodOn(ObservedNamespaceController.class).getByName(bundleNamespace)).withRel("namespace")
);
}
}