SolutionResource.java :  » Wiki-Engine » ocwiki » org » ocwiki » controller » rest » Java Open Source

Java Open Source » Wiki Engine » ocwiki 
ocwiki » org » ocwiki » controller » rest » SolutionResource.java
package org.ocwiki.controller.rest;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.MediaType;

import org.ocwiki.controller.rest.bean.RevisionBean;
import org.ocwiki.controller.rest.bean.SolutionBean;
import org.ocwiki.controller.rest.bean.SolutionMapper;
import org.ocwiki.controller.rest.util.ObjectResult;
import org.ocwiki.data.MultichoiceQuestion;
import org.ocwiki.data.Resource;
import org.ocwiki.data.Solution;
import org.ocwiki.data.TextArticle;
import org.ocwiki.data.User;
import org.ocwiki.db.dao.ResourceDAO;
import org.ocwiki.db.dao.SolutionDAO;
import org.ocwiki.util.SessionUtils;

@Path(SolutionResource.PATH)
public class SolutionResource extends AbstractResource {

  public static final String PATH = "/solutions";
  
  @GET
  @Path("/{id: \\d+}")
  public ObjectResult<SolutionBean> get(@PathParam("id") long id){
    Resource<Solution> resource = ResourceDAO.fetchById(id);
    assertResourceFound(resource);
    SolutionBean bean = SolutionMapper.get().toBean(resource.getArticle());
    return new ObjectResult<SolutionBean>(bean);
  }
  
  @POST
  public ObjectResult<TextArticle> create(TextArticle text,Resource<MultichoiceQuestion> res){
    User user = SessionUtils.getUser(getSession());
    ResourceDAO.create(user, TextArticle.class, text);
    return new ObjectResult<TextArticle>(text);
  }
  
  @POST
  @Path("/{id: \\d+}")
  @Consumes(MediaType.APPLICATION_JSON)
  public ObjectResult<SolutionBean> update(@PathParam("id") long resourceId,
      RevisionBean<SolutionBean> data){
    WebServiceUtils.assertValid(data.getArticle() != null, "i tng rng");
    Resource<Solution> resource = getResourceSafe(resourceId, Solution.class);
    WebServiceUtils.assertValid(resource.getArticle().getId() == data
        .getArticle().getId(), "old version");
    Solution solution = SolutionMapper.get().toEntity(data.getArticle());
    solution.setId(0); // coi la doi tuong moi
    SolutionDAO.persist(solution);

    saveNewRevision(resource, solution, data.getSummary(), data.isMinor());
    
    SolutionBean bean = SolutionMapper.get().toBean(solution);    
    return new ObjectResult<SolutionBean>(bean);
  }
  
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.