/*******************************************************************************
* Copyright (c) 2014 antoniomariasanchez at gmail.com.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* antoniomaria - initial API and implementation
******************************************************************************/
package net.sf.gazpachoquest.api;
import java.io.Serializable;
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.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import net.sf.gazpachoquest.dto.QuestionnaireDefinitionDTO;
import net.sf.gazpachoquest.dto.QuestionnairePageDTO;
import net.sf.gazpachoquest.dto.answers.Answer;
import net.sf.gazpachoquest.types.Language;
import net.sf.gazpachoquest.types.NavigationAction;
import net.sf.gazpachoquest.types.RenderingMode;
@Path("/questionnaires")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface QuestionnaireResource extends Serializable {
@GET
@Path("/{questionnaireId}/definition")
QuestionnaireDefinitionDTO getDefinition(@PathParam("questionnaireId") Integer questionnaireId);
@GET
@Path("/{questionnaireId}/page")
QuestionnairePageDTO getPage(@PathParam("questionnaireId") Integer questionnaireId,
@QueryParam("mode") RenderingMode mode, @QueryParam("preferredLanguage") Language language,
@QueryParam("action") NavigationAction action);
@POST
@Path("/{questionnaireId}/answer")
void saveAnswer(Answer answer, @PathParam("questionnaireId") Integer questionnaireId,
@QueryParam("questionCode") String questionCode);
}