/*
* Copyright (c) 2016 Felix Husse under MIT License
* see LICENSE file
*/
package de.fatalix.bookery.view.common;
import com.vaadin.cdi.UIScoped;
import de.fatalix.bookery.bl.AppUserService;
import de.fatalix.bookery.bl.BookService;
import de.fatalix.bookery.bl.WatchListService;
import de.fatalix.bookery.bl.model.AppUser;
import de.fatalix.bookery.solr.model.BookEntry;
import java.io.IOException;
import javax.inject.Inject;
import javax.mail.MessagingException;
import org.apache.log4j.Logger;
import org.apache.solr.client.solrj.SolrServerException;
/**
*
* @author Fatalix
*/
@UIScoped
public class BookDetailPresenter {
@Inject private Logger logger;
@Inject private BookService bookService;
@Inject private AppUserService userService;
@Inject private WatchListService watchListService;
public BookEntry getBookDetail(String id) throws SolrServerException {
return bookService.getBookDetail(id);
}
public void shareBookWithKindle(BookEntry bookEntry, String username) throws SolrServerException, MessagingException, IOException {
AppUser appUser = userService.getAppUser(username);
bookService.sendBookToKindle(bookEntry.getId(), appUser);
}
public byte[] getEbookFile(String bookId) throws SolrServerException {
return bookService.getEBookFile(bookId);
}
public BookEntry updateShared(BookEntry bookEntry, String username) throws SolrServerException, IOException {
return bookService.updateShared(bookEntry, username);
}
public BookEntry updateLike(BookEntry bookEntry,String username) throws SolrServerException, IOException {
return bookService.updateLike(bookEntry, username);
}
public void addRemoveFromWatchList(BookEntry bookEntry, String username) {
if (!isOnWatchList(bookEntry, username)) {
watchListService.addToWatchList(username, bookEntry.getId());
}
else {
watchListService.removeFromWatchList(username, bookEntry.getId());
}
}
public boolean isOnWatchList(BookEntry bookEntry, String username) {
return watchListService.isOnWatchList(username, bookEntry.getId());
}
}