Add delete map rest operation.

This commit is contained in:
Paulo Gustavo Veiga
2012-03-15 01:21:46 -03:00
parent b52da56739
commit 0e3b0754cd
11 changed files with 188 additions and 76 deletions

View File

@@ -103,7 +103,7 @@ public class AdminController extends BaseController {
userService.changePassword(user);
}
@RequestMapping(method = RequestMethod.DELETE, value = "admin/users/{id}", produces = {"application/json", "text/html", "application/xml"})
@RequestMapping(method = RequestMethod.DELETE)
@ResponseStatus(value = HttpStatus.NO_CONTENT)
public void getUserByEmail(@PathVariable long id) throws IOException, WiseMappingException {
final User user = userService.getUserBy(id);

View File

@@ -25,14 +25,13 @@ import java.util.List;
/**
* Pendings:
* Change map title
* List with filter
* Clone
* Delete map
* Discard Changed
* Public ?
* Admin operations for get/update
* Check visibility
* Change map title
* List with filter
* Clone
* Discard Changed
* Public ?
* Admin operations for get/update
* Check visibility
*/
@Controller
public class MindmapController extends BaseController {
@@ -86,6 +85,15 @@ public class MindmapController extends BaseController {
updateMindmap(minor, mindMap, user);
}
@RequestMapping(method = RequestMethod.DELETE, value = "/maps/{id}")
@ResponseStatus(value = HttpStatus.NO_CONTENT)
public void updateMap(@PathVariable int id) throws IOException, WiseMappingException {
final User user = Utils.getUser();
final MindMap mindmap = mindmapService.getMindmapById(id);
mindmapService.removeMindmap(mindmap, user);
}
@RequestMapping(method = RequestMethod.PUT, value = "/maps/{id}/xml", consumes = {"application/xml"}, produces = {"application/json", "text/html", "application/xml"})
@ResponseStatus(value = HttpStatus.NO_CONTENT)
public void updateMapXml(@RequestBody String xml, @PathVariable int id, @RequestParam(required = false) boolean minor) throws IOException, WiseMappingException {
@@ -102,7 +110,7 @@ public class MindmapController extends BaseController {
updateMindmap(minor, mindMap, user);
}
private void updateMindmap(boolean minor, MindMap mindMap, User user) throws WiseMappingException {
private void updateMindmap(boolean minor, @NotNull final MindMap mindMap, @NotNull final User user) throws WiseMappingException {
final Calendar now = Calendar.getInstance();
mindMap.setLastModificationTime(now);
mindMap.setLastModifierUser(user.getUsername());

View File

@@ -0,0 +1,101 @@
package com.wisemapping.rest.model;
import com.wisemapping.model.MindMap;
import com.wisemapping.model.User;
import org.codehaus.jackson.annotate.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
@XmlRootElement(name = "map")
@XmlAccessorType(XmlAccessType.PROPERTY)
@JsonAutoDetect(
fieldVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY,
isGetterVisibility = JsonAutoDetect.Visibility.NONE,
getterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY
)
@JsonIgnoreProperties(ignoreUnknown = true)
public class RestMindmapInfo {
@JsonIgnore
private MindMap mindmap;
public RestMindmapInfo() {
this(new MindMap());
}
public RestMindmapInfo(@NotNull MindMap mindmap) {
this.mindmap = mindmap;
}
public Calendar getCreationTime() {
return mindmap.getCreationTime();
}
public String getDescription() {
return mindmap.getDescription();
}
public String getTags() {
return mindmap.getTags();
}
public String getTitle() {
return mindmap.getTitle();
}
public int getId() {
return mindmap.getId();
}
public String getCreator() {
return mindmap.getCreator();
}
public String getLastModifierUser() {
return mindmap.getLastModifierUser();
}
public Date getLastModificationDate() {
return mindmap.getLastModificationDate();
}
public boolean isPublic() {
return mindmap.isPublic();
}
public void setId(int id) {
mindmap.setId(id);
}
public void setTitle(String title) {
mindmap.setTitle(title);
}
public void setTags(String tags) {
mindmap.setTags(tags);
}
public void setDescription(String description) {
mindmap.setDescription(description);
}
public void setCreator(String creatorUser) {
}
public void setLastModificationTime(Calendar lastModificationTime) {
}
public void setLastModifierUser(String lastModifierUser) {
}
}

View File

@@ -3,9 +3,7 @@ package com.wisemapping.rest.model;
import com.wisemapping.model.MindMap;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.jetbrains.annotations.NotNull;
import org.springframework.util.CollectionUtils;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@@ -24,21 +22,21 @@ import java.util.List;
isGetterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY)
public class RestMindmapList {
private List<RestMindmap> mindmaps;
private List<RestMindmapInfo> mindmapsInfo;
public RestMindmapList() {
this(Collections.<MindMap>emptyList());
}
public RestMindmapList(@NotNull List<MindMap> mindmaps) {
this.mindmaps = new ArrayList<RestMindmap>();
this.mindmapsInfo = new ArrayList<RestMindmapInfo>();
for (MindMap mindMap : mindmaps) {
this.mindmaps.add(new RestMindmap(mindMap));
this.mindmapsInfo.add(new RestMindmapInfo(mindMap));
}
}
public int getCount() {
return this.mindmaps.size();
return this.mindmapsInfo.size();
}
public void setCount(int count) {
@@ -46,11 +44,11 @@ public class RestMindmapList {
}
@XmlElement(name = "map")
public List<RestMindmap> getMindmaps() {
return mindmaps;
public List<RestMindmapInfo> getMindmapsInfo() {
return mindmapsInfo;
}
public void setMindmaps(List<RestMindmap> mindmaps) {
this.mindmaps = mindmaps;
public void setMindmapsInfo(List<RestMindmapInfo> mindmapsInfo) {
this.mindmapsInfo = mindmapsInfo;
}
}