wisemapping-open-source/wise-webapp/src/main/java/com/wisemapping/rest/MindmapController.java

74 lines
3.0 KiB
Java
Raw Normal View History

2012-02-13 01:57:11 +01:00
package com.wisemapping.rest;
import com.wisemapping.exceptions.WiseMappingException;
2012-02-13 01:57:11 +01:00
import com.wisemapping.model.MindMap;
import com.wisemapping.model.MindmapUser;
import com.wisemapping.model.User;
import com.wisemapping.rest.model.RestMindmap;
2012-02-20 18:42:07 +01:00
import com.wisemapping.rest.model.RestMindmapList;
import com.wisemapping.security.Utils;
2012-02-13 01:57:11 +01:00
import com.wisemapping.service.MindmapService;
import org.springframework.beans.factory.annotation.Autowired;
2012-02-13 01:57:11 +01:00
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
2012-02-13 01:57:11 +01:00
import java.io.IOException;
2012-02-20 18:42:07 +01:00
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
2012-02-13 01:57:11 +01:00
@Controller
public class MindmapController {
@Autowired
2012-02-13 01:57:11 +01:00
private MindmapService mindmapService;
@RequestMapping(method = RequestMethod.GET, value = "/maps/{id}", produces = {"application/json", "text/html", "application/xml"})
2012-02-13 01:57:11 +01:00
@ResponseBody
public ModelAndView getMindmap(@PathVariable int id) throws IOException {
2012-02-13 01:57:11 +01:00
final MindMap mindMap = mindmapService.getMindmapById(id);
final RestMindmap map = new RestMindmap(mindMap);
return new ModelAndView("mapView", "map", map);
2012-02-13 01:57:11 +01:00
}
@RequestMapping(method = RequestMethod.GET, value = "/maps", produces = {"application/json", "text/html", "application/xml"})
public ModelAndView getMindmaps() throws IOException {
final User user = com.wisemapping.security.Utils.getUser();
2012-02-20 18:42:07 +01:00
final List<MindmapUser> mapsByUser = mindmapService.getMindmapUserByUser(user);
final List<MindMap> mindmaps = new ArrayList<MindMap>();
for (MindmapUser mindmapUser : mapsByUser) {
mindmaps.add(mindmapUser.getMindMap());
}
final RestMindmapList restMindmapList = new RestMindmapList(mindmaps);
return new ModelAndView("mapsView", "list", restMindmapList);
}
@RequestMapping(method = RequestMethod.PUT, value = "/maps/{id}", consumes = {"application/xml", "application/json"}, produces = {"application/json", "text/html", "application/xml"})
public ModelAndView updateMap(@RequestBody RestMindmap restMindmap, @PathVariable int id, @RequestParam(required = false) boolean minor) throws IOException, WiseMappingException {
final MindMap mindMap = mindmapService.getMindmapById(id);
final User user = Utils.getUser();
final String properties = restMindmap.getProperties();
mindMap.setProperties(properties);
final Calendar now = Calendar.getInstance();
mindMap.setLastModificationTime(now);
mindMap.setLastModifierUser(user.getUsername());
final Calendar lastModification = Calendar.getInstance();
lastModification.setTime(new Date());
mindMap.setLastModificationTime(lastModification);
final String xml = restMindmap.getXml();
mindMap.setXmlStr(xml);
mindmapService.updateMindmap(mindMap, minor);
return new ModelAndView("responseView", "message", "Map has been updated successfully");
}
2012-02-13 01:57:11 +01:00
}