package it.demo.twitterlike.server.web.api.support;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;
import it.demo.twitterlike.server.domain.Message;
import it.demo.twitterlike.server.web.api.MessageRestController;
import it.demo.twitterlike.server.web.api.UserRestController;
import it.demo.twitterlike.server.web.api.domain.MessageResource;
import org.springframework.hateoas.ResourceAssembler;
import org.springframework.stereotype.Component;
@Component
public class MessageResourceAssembler implements
ResourceAssembler<Message, MessageResource> {
@Override
public MessageResource toResource(Message entity) {
MessageResource resource = new MessageResource(entity);
resource.add(linkTo(
methodOn(MessageRestController.class).getMessageById(
entity.getId())).withSelfRel());
resource.add(linkTo(
methodOn(UserRestController.class).getUserById(
entity.getAuthor().getLogin())).withRel(
MessageResource.LINK_NAME_AUTHOR));
return resource;
}
}