Package org.silverpeas.components.questionreply.web

## Class QuestionResource

- java.lang.Object
- - org.silverpeas.core.web.rs.RESTWebService
  - - org.silverpeas.components.questionreply.web.QuestionReplyBaseWebService
    - - org.silverpeas.components.questionreply.web.QuestionResource

- All Implemented Interfaces:
    `org.silverpeas.core.web.rs.ProtectedWebResource`, `org.silverpeas.core.web.rs.WebAuthenticationValidation`, `org.silverpeas.core.web.rs.WebAuthorizationValidation`, `org.silverpeas.core.web.SilverpeasWebResource`

      @WebService
      @Path("questionreply/{componentId}/questions")
      @Authorized
      public class QuestionResource
      extends QuestionReplyBaseWebService

  A REST Web resource representing a given question. It is a web service that provides access to a question referenced by its URL.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.silverpeas.core.web.rs.RESTWebService

      `org.silverpeas.core.web.rs.RESTWebService.WebProcess<R extends Object>, org.silverpeas.core.web.rs.RESTWebService.WebTreatment<R extends Object>`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected String` | `componentId` |

    - ### Fields inherited from class org.silverpeas.core.web.rs.RESTWebService

      `RESPONSE_HEADER_ARRAYSIZE`

    - ### Fields inherited from interface org.silverpeas.core.web.SilverpeasWebResource

      `BASE_PATH`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `QuestionResource()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected List<QuestionEntity>` | `asWebEntities​(List<Question> questions)` | Converts the specified list of questions into their corresponding web entities.
    `protected QuestionEntity` | `asWebEntity​(Question question, URI questionURI)` | Converts the question into its corresponding web entity.
    `List<QuestionEntity>` | `getAllQuestions()` |
    `List<QuestionEntity>` | `getAllQuestionsByCategory​(String categoryId)` |
    `String` | `getComponentId()` |
    `QuestionEntity` | `getQuestion​(String onQuestionId)` | Gets the JSON representation of the specified existing question.
    `List<QuestionEntity>` | `getQuestions​(Set<String> ids)` |
    `protected URI` | `identifiedBy​(URI uri)` |

    - ### Methods inherited from class org.silverpeas.components.questionreply.web.QuestionReplyBaseWebService

      `getResourceBasePath`

    - ### Methods inherited from class org.silverpeas.core.web.rs.RESTWebService

      `createWebResourceUri, fromPage, getBundle, getBundleLocation, getHighestUserRole, getHttpRequest, getHttpServletRequest, getHttpServletResponse, getLanguage, getOrganisationController, getSilverpeasContext, getUri, getUser, getUserPreferences, getUserRoles, identifiedBy, identifiedBy, initContext, initWebResourceUri, isUserDefined, process`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.silverpeas.core.web.rs.ProtectedWebResource

      `validateUserAuthorization`

    - ### Methods inherited from interface org.silverpeas.core.web.rs.WebAuthenticationValidation

      `validateUserAuthentication`

- - ### Field Detail

    - #### componentId

          @PathParam("componentId")
          protected String componentId

  - ### Constructor Detail

    - #### QuestionResource

          public QuestionResource()

  - ### Method Detail

    - #### getComponentId

          public String getComponentId()

    - #### getQuestion

          @GET
          @Path("{questionId}")
          @Produces("application/json")
          public QuestionEntity getQuestion​(@PathParam("questionId")
                                            String onQuestionId)

      Gets the JSON representation of the specified existing question. If the question doesn't exist, a 404 HTTP code is returned. If the user isn't authentified, a 401 HTTP code is returned. If the user isn't authorized to access the question, a 403 is returned. If a problem occurs when processing the request, a 503 HTTP code is returned.
      Parameters:
        `onQuestionId` - the unique identifier of the question.
      Returns:
        the response to the HTTP GET request with the JSON representation of the asked question.

    - #### getQuestions

          @GET
          @Produces("application/json")
          public List<QuestionEntity> getQuestions​(@QueryParam("ids")
                                                   Set<String> ids)

    - #### getAllQuestions

          @GET
          @Path("all")
          @Produces("application/json")
          public List<QuestionEntity> getAllQuestions()

    - #### getAllQuestionsByCategory

          @GET
          @Path("category/{categoryId}")
          @Produces("application/json")
          public List<QuestionEntity> getAllQuestionsByCategory​(@PathParam("categoryId")
                                                                String categoryId)

    - #### identifiedBy

          protected URI identifiedBy​(URI uri)

    - #### asWebEntities

          protected List<QuestionEntity> asWebEntities​(List<Question> questions)

      Converts the specified list of questions into their corresponding web entities.
      Parameters:
        `questions` - the questions to convert.
      Returns:
        a list with the corresponding question entities.

    - #### asWebEntity

          protected QuestionEntity asWebEntity​(Question question,
                                               URI questionURI)

      Converts the question into its corresponding web entity.
      Parameters:
        `question` - the question to convert.
        `questionURI` - the URI of the question.
      Returns:
        the corresponding question entity.