package demo;
import java.util.Collection;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/{userId}/bookmarks")
public class BookmarkRestController {
private final BookmarkRepository bookmarkRepository;
public BookmarkRestController(BookmarkRepository bookmarkRepository) {
this.bookmarkRepository = bookmarkRepository;
}
@RequestMapping(method = RequestMethod.GET)
public Collection<Bookmark> getBookmarks(@PathVariable String userId) {
return this.bookmarkRepository.findByUserId(userId);
}
@RequestMapping(value = "/{bookmarkId}", method = RequestMethod.GET)
public Bookmark getBookmark(@PathVariable String userId,
@PathVariable Long bookmarkId) {
return this.bookmarkRepository.findByUserIdAndId(userId, bookmarkId);
}
@RequestMapping(method = RequestMethod.POST)
public Bookmark createBookmark(@PathVariable String userId,
@RequestBody Bookmark bookmark) {
Bookmark bookmarkInstance = new Bookmark(userId, bookmark.getHref(),
bookmark.getDescription(), bookmark.getLabel());
return this.bookmarkRepository.save(bookmarkInstance);
}
}