Interface ResponseFactory

All Known Implementing Classes:
ResponseFactoryImpl

public interface ResponseFactory
A component for building commonly used types of REST responses
Since:
v6.1
  • Method Summary

    Modifier and Type
    Method
    Description
    javax.ws.rs.core.Response
    badRequest(String i18nKey, String... args)
    Constructs a "bad request" (400) HTTP reposne without caching.
    javax.ws.rs.core.Response
    created(URI self, Object entity)
    Constructs CREATED response with cache control set to never
    javax.ws.rs.core.Response
    errorResponse(ErrorCollection errorCollection)
    Creates an appropriate REST error response out of error collection.
    javax.ws.rs.core.Response
    forbidden(String i18nKey, String... args)
    Constructs "forbidden" (403) HTTP response without caching.
    javax.ws.rs.core.Response
    Given a list of errors generate a http response
    javax.ws.rs.core.Response
    Given a list of errors generate a http response
    javax.ws.rs.core.Response
    Constructs "no content" (204) HTTP response with cache control set to never
    javax.ws.rs.core.Response
    notFound(String i18nKey, String... args)
    Constructs "not found" (404) HTTP response without caching.
    javax.ws.rs.core.Response
    Creates a response that tells the user they can't use a feature when they are not logged in
    javax.ws.rs.core.Response
    okNoCache(Object entity)
    Constructs OK response with cache control set to never
    javax.ws.rs.core.Response
    Transforms a service result to "no content" (204) HTTP response with cache control set to never if the result is valid, or error response is invalid.
    <T> io.atlassian.fugue.Either<javax.ws.rs.core.Response,T>
    toResponse(io.atlassian.fugue.Either<ErrorCollection,T> either)
    Maps ErrorCollection in an Either to a Response.
    <T> io.atlassian.fugue.Either<javax.ws.rs.core.Response,T>
    Returns a proper error response if the outcome is invalid, or the outcome value otherwise.
  • Method Details

    • notLoggedInResponse

      javax.ws.rs.core.Response notLoggedInResponse()
      Creates a response that tells the user they can't use a feature when they are not logged in
      Returns:
      401 HTTP response with appropriate message.
    • errorResponse

      javax.ws.rs.core.Response errorResponse(ErrorCollection errorCollection)
      Creates an appropriate REST error response out of error collection.
      Parameters:
      errorCollection - errors that will be sent back to the user and from which the HTTP response status will be figured out
      Returns:
      REST response with JSON-ized error collection and appropriate status
    • okNoCache

      javax.ws.rs.core.Response okNoCache(Object entity)
      Constructs OK response with cache control set to never
      Parameters:
      entity - object that will be sent in the response
      Returns:
      OK response holding the entity
    • created

      javax.ws.rs.core.Response created(URI self, Object entity)
      Constructs CREATED response with cache control set to never
      Parameters:
      self - URI to the newly created entity
      entity - object that will be sent in the response
      Returns:
      CREATED response holding the entity
    • noContent

      javax.ws.rs.core.Response noContent()
      Constructs "no content" (204) HTTP response with cache control set to never
      Returns:
      no content HTTP response
    • badRequest

      javax.ws.rs.core.Response badRequest(String i18nKey, String... args)
      Constructs a "bad request" (400) HTTP reposne without caching.
      Parameters:
      i18nKey - key of the i18n message which is included in the response.
      args - arguments to be added to the internationalised message.
      Returns:
      bad request HTTP response with translated message.
    • notFound

      javax.ws.rs.core.Response notFound(String i18nKey, String... args)
      Constructs "not found" (404) HTTP response without caching.
      Parameters:
      i18nKey - key of the i18n message which is included in the response.
      Returns:
      not found HTTP response.
    • forbidden

      javax.ws.rs.core.Response forbidden(String i18nKey, String... args)
      Constructs "forbidden" (403) HTTP response without caching.
      Parameters:
      i18nKey - key of the i18n message which is included in the response.
      Returns:
      forbidden HTTP response.
    • generateFieldErrorResponse

      javax.ws.rs.core.Response generateFieldErrorResponse(ErrorCollection errors)
      Given a list of errors generate a http response
      Parameters:
      errors - generated
      Returns:
      http response for the worst error
    • generateErrorResponse

      javax.ws.rs.core.Response generateErrorResponse(ErrorCollection errors)
      Given a list of errors generate a http response
      Parameters:
      errors - generated
      Returns:
      http response for the worst error
    • validateOutcome

      <T> io.atlassian.fugue.Either<javax.ws.rs.core.Response,T> validateOutcome(ServiceOutcome<T> outcome)
      Returns a proper error response if the outcome is invalid, or the outcome value otherwise.
      Type Parameters:
      T - service outcome value type
      Parameters:
      outcome - service outcome
      Returns:
      either error response or the service outcome value
    • serviceResultToNoContentResponse

      javax.ws.rs.core.Response serviceResultToNoContentResponse(ServiceResult serviceResult)
      Transforms a service result to "no content" (204) HTTP response with cache control set to never if the result is valid, or error response is invalid.
      Parameters:
      serviceResult - service result to validate
      Returns:
      either an error response corresponding the the service result error, or 204.
    • toResponse

      <T> io.atlassian.fugue.Either<javax.ws.rs.core.Response,T> toResponse(io.atlassian.fugue.Either<ErrorCollection,T> either)
      Maps ErrorCollection in an Either to a Response.
      Type Parameters:
      T - type of right value
      Parameters:
      either - either to map the left value in
      Returns:
      mapped either