package de.skuzzle.polly.core.internal.httpv2;
import java.util.List;
import de.skuzzle.polly.core.internal.users.UserImpl;
import de.skuzzle.polly.sdk.PersistenceManagerV2;
import de.skuzzle.polly.sdk.PersistenceManagerV2.Read;
import de.skuzzle.polly.sdk.PersistenceManagerV2.Write;
import de.skuzzle.polly.sdk.User;
import de.skuzzle.polly.sdk.exceptions.DatabaseException;
import de.skuzzle.polly.sdk.time.Time;
public class NewsManager {
public final static String ADD_NEWS_PERMISSION = "polly.permission.ADD_NEWS"; //$NON-NLS-1$
public final static String EDIT_NEWS_PERMISSION = "polly.permission.EDIT_NEWS"; //$NON-NLS-1$
public final static String DELETE_NEWS_PERMISSION = "polly.permission.DELETE_NEWS"; //$NON-NLS-1$
private final PersistenceManagerV2 persistence;
public NewsManager(PersistenceManagerV2 persistence) {
this.persistence = persistence;
}
public void addNewsEntry(User executor, String caption, String body)
throws DatabaseException {
try (final Write write = this.persistence.write()) {
final NewsEntry ne = new NewsEntry((UserImpl) executor, caption, body,
Time.currentTime());
write.single(ne);
}
}
public void deleteNewsEntry(int newsId) throws DatabaseException {
try (final Write write = this.persistence.write()) {
final Read read = write.read();
final NewsEntry ne = read.find(NewsEntry.class, newsId);
if (ne == null) {
throw new DatabaseException(MSG.newsUnknownId);
}
write.remove(ne);
}
}
public List<NewsEntry> getAllNews() {
return this.persistence.atomic().findList(NewsEntry.class,
NewsEntry.QUERY_GET_ALL_NEWS);
}
}