package de.twenty11.skysail.server.ext.notes.resources;
import java.util.Arrays;
import java.util.List;
import org.restlet.data.Form;
import org.restlet.resource.Get;
import de.twenty11.skysail.common.responses.FormResponse;
import de.twenty11.skysail.common.responses.SkysailResponse;
import de.twenty11.skysail.common.responses.SuccessResponse;
import de.twenty11.skysail.server.core.restlet.ListServerResource;
import de.twenty11.skysail.server.ext.notes.NotesApplication;
import de.twenty11.skysail.server.ext.notes.domain.Folder;
import de.twenty11.skysail.server.ext.notes.domain.Note;
public class NotesResource extends ListServerResource<Note> {
private NotesApplication app;
public NotesResource() {
app = (NotesApplication) getApplication();
}
@Override
public String getMessage(String key) {
return "Listing notes";
}
@Get("htmlform")
public FormResponse<Note> createForm() {
FormResponse<Note> formResponse = new FormResponse<Note>(new Note(null, "", ""),
NotesApplication.getPostNewNotePath());
formResponse.setMessage("Add a new note");
return formResponse;
}
@Override
public List<Note> getData() {
return app.getNotesRepository().getComponents();
}
@Override
public List<Note> getData(Form form) {
Note note = new Note(null, form.getFirstValue(Note.TITLE), form.getFirstValue(Note.CONTENT));
note.setOwner(app.getCurrentUser());
return Arrays.asList(note);
}
@Override
public SkysailResponse<?> addEntity(List<Note> entities) {
for (Note note : entities) {
app.getNotesRepository().add(note);
}
return new SuccessResponse<Folder>(null);
}
}