Package controllers.publix
Class PublixInterceptor
- java.lang.Object
-
- play.mvc.Results
-
- play.mvc.Controller
-
- controllers.publix.PublixInterceptor
-
- All Implemented Interfaces:
play.mvc.Http.HeaderNames,play.mvc.Http.Status
@Singleton public class PublixInterceptor extends play.mvc.ControllerInterceptor for Publix: handles all requests for JATOS' public API (Publix) and forwards them to one of the implementations of the API (all extend Publix). Each implementation deals with different workers (e.g. workers from MTurk, Personal Multiple workers). A study run starts with the 'run' method that takes the study code as a parameter. The study code is the ID for a StudyLink. The StudyLink determines the worker type and which Publix implementation will be called. All subsequent requests of this study run need at least the study result UUID and often the component UUID too.
-
-
Field Summary
-
Fields inherited from interface play.mvc.Http.HeaderNames
ACCEPT, ACCEPT_CHARSET, ACCEPT_ENCODING, ACCEPT_LANGUAGE, ACCEPT_RANGES, ACCESS_CONTROL_ALLOW_CREDENTIALS, ACCESS_CONTROL_ALLOW_HEADERS, ACCESS_CONTROL_ALLOW_METHODS, ACCESS_CONTROL_ALLOW_ORIGIN, ACCESS_CONTROL_EXPOSE_HEADERS, ACCESS_CONTROL_MAX_AGE, ACCESS_CONTROL_REQUEST_HEADERS, ACCESS_CONTROL_REQUEST_METHOD, AGE, ALLOW, AUTHORIZATION, CACHE_CONTROL, CONNECTION, CONTENT_DISPOSITION, CONTENT_ENCODING, CONTENT_LANGUAGE, CONTENT_LENGTH, CONTENT_LOCATION, CONTENT_MD5, CONTENT_RANGE, CONTENT_SECURITY_POLICY, CONTENT_SECURITY_POLICY_REPORT_ONLY, CONTENT_TRANSFER_ENCODING, CONTENT_TYPE, COOKIE, DATE, ETAG, EXPECT, EXPIRES, FORWARDED, FROM, HOST, IF_MATCH, IF_MODIFIED_SINCE, IF_NONE_MATCH, IF_RANGE, IF_UNMODIFIED_SINCE, LAST_MODIFIED, LINK, LOCATION, MAX_FORWARDS, ORIGIN, PRAGMA, PROXY_AUTHENTICATE, PROXY_AUTHORIZATION, RANGE, REFERER, REFERRER_POLICY, RETRY_AFTER, SERVER, SET_COOKIE, SET_COOKIE2, STRICT_TRANSPORT_SECURITY, TE, TRAILER, TRANSFER_ENCODING, UPGRADE, USER_AGENT, VARY, VIA, WARNING, WWW_AUTHENTICATE, X_CONTENT_SECURITY_POLICY_NONCE_HEADER, X_CONTENT_TYPE_OPTIONS, X_FORWARDED_FOR, X_FORWARDED_HOST, X_FORWARDED_PORT, X_FORWARDED_PROTO, X_FRAME_OPTIONS, X_PERMITTED_CROSS_DOMAIN_POLICIES, X_REQUESTED_WITH, X_XSS_PROTECTION
-
Fields inherited from interface play.mvc.Http.Status
ACCEPTED, BAD_GATEWAY, BAD_REQUEST, CONFLICT, CONTINUE, CREATED, EXPECTATION_FAILED, FAILED_DEPENDENCY, FORBIDDEN, FOUND, GATEWAY_TIMEOUT, GONE, HTTP_VERSION_NOT_SUPPORTED, IM_A_TEAPOT, INSUFFICIENT_STORAGE, INTERNAL_SERVER_ERROR, LENGTH_REQUIRED, LOCKED, METHOD_NOT_ALLOWED, MOVED_PERMANENTLY, MULTI_STATUS, MULTIPLE_CHOICES, NETWORK_AUTHENTICATION_REQUIRED, NO_CONTENT, NON_AUTHORITATIVE_INFORMATION, NOT_ACCEPTABLE, NOT_FOUND, NOT_IMPLEMENTED, NOT_MODIFIED, OK, PARTIAL_CONTENT, PAYMENT_REQUIRED, PERMANENT_REDIRECT, PRECONDITION_FAILED, PRECONDITION_REQUIRED, PROXY_AUTHENTICATION_REQUIRED, REQUEST_ENTITY_TOO_LARGE, REQUEST_HEADER_FIELDS_TOO_LARGE, REQUEST_TIMEOUT, REQUEST_URI_TOO_LONG, REQUESTED_RANGE_NOT_SATISFIABLE, RESET_CONTENT, SEE_OTHER, SERVICE_UNAVAILABLE, SWITCHING_PROTOCOLS, TEMPORARY_REDIRECT, TOO_MANY_REQUESTS, UNAUTHORIZED, UNPROCESSABLE_ENTITY, UNSUPPORTED_MEDIA_TYPE, UPGRADE_REQUIRED, USE_PROXY
-
-
Constructor Summary
Constructors Constructor Description PublixInterceptor(StudyLinkDao studyLinkDao, StudyResultDao studyResultDao, ComponentDao componentDao, javax.inject.Provider<play.Application> application)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description play.mvc.ResultabortStudy(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String message)play.mvc.ResultappendResultData(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid)play.mvc.ResultdownloadResultFile(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String filename, java.lang.String componentId)play.mvc.ResultfinishStudy(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.Boolean successful, java.lang.String message)play.mvc.ResultgetInitData(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid)play.mvc.Resultheartbeat(play.mvc.Http.Request request, java.lang.String studyResultUuid)play.mvc.Resultlog(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid)play.mvc.Resultrun(play.mvc.Http.Request request, java.lang.String studyCode)play.mvc.Resultrunx(java.lang.String code, java.lang.Long frames, java.lang.Long hSplit, java.lang.Long vSplit)Facilitates multiple study runs in parallel each in its own iframe.play.mvc.ResultsetStudySessionData(play.mvc.Http.Request request, java.lang.String studyResultUuid)play.mvc.ResultstartComponent(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid, java.lang.String message)play.mvc.ResultstudyEntry(play.mvc.Http.Request request, java.lang.String studyCode)Shows the Study Entry page prior to a study run.play.mvc.ResultsubmitResultData(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid)play.mvc.ResultuploadResultFile(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid, java.lang.String filename)-
Methods inherited from class play.mvc.Controller
changeLang, changeLang, clearLang, ctx, flash, flash, flash, lang, request, response, session, session, session, TODO, TODO
-
Methods inherited from class play.mvc.Results
badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, badRequest, contentDispositionHeader, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, created, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, forbidden, found, found, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, internalServerError, movedPermanently, movedPermanently, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, networkAuthenticationRequired, noContent, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notAcceptable, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, notFound, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, ok, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, paymentRequired, permanentRedirect, permanentRedirect, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, preconditionRequired, redirect, redirect, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, requestHeaderFieldsTooLarge, seeOther, seeOther, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, status, temporaryRedirect, temporaryRedirect, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, tooManyRequests, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unauthorized, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType, unsupportedMediaType
-
-
-
-
Constructor Detail
-
PublixInterceptor
@Inject public PublixInterceptor(StudyLinkDao studyLinkDao, StudyResultDao studyResultDao, ComponentDao componentDao, javax.inject.Provider<play.Application> application)
-
-
Method Detail
-
studyEntry
public play.mvc.Result studyEntry(play.mvc.Http.Request request, java.lang.String studyCode)Shows the Study Entry page prior to a study run. 1. Lets worker enter the study code 2. Takes the study code as a query parameter. A text shown can be customized in the study properties. It always shows a ▶ button that the worker has to press to confirm the intention of running the study.
-
runx
public play.mvc.Result runx(java.lang.String code, java.lang.Long frames, java.lang.Long hSplit, java.lang.Long vSplit) throws PublixExceptionFacilitates multiple study runs in parallel each in its own iframe. If 'frames' is 1 (or lower) it just redirects to the normal run endpoint.- Throws:
PublixException
-
run
public play.mvc.Result run(play.mvc.Http.Request request, java.lang.String studyCode) throws PublixException- Throws:
PublixException
-
startComponent
public play.mvc.Result startComponent(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid, java.lang.String message) throws PublixException- Throws:
PublixException
-
getInitData
public play.mvc.Result getInitData(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid) throws PublixException, java.io.IOException- Throws:
PublixExceptionjava.io.IOException
-
setStudySessionData
public play.mvc.Result setStudySessionData(play.mvc.Http.Request request, java.lang.String studyResultUuid) throws PublixException- Throws:
PublixException
-
heartbeat
public play.mvc.Result heartbeat(play.mvc.Http.Request request, java.lang.String studyResultUuid) throws PublixException- Throws:
PublixException
-
submitResultData
public play.mvc.Result submitResultData(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid) throws PublixException- Throws:
PublixException
-
appendResultData
public play.mvc.Result appendResultData(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid) throws PublixException- Throws:
PublixException
-
uploadResultFile
public play.mvc.Result uploadResultFile(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid, java.lang.String filename) throws PublixException- Throws:
PublixException
-
downloadResultFile
public play.mvc.Result downloadResultFile(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String filename, java.lang.String componentId) throws PublixException- Throws:
PublixException
-
abortStudy
public play.mvc.Result abortStudy(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String message) throws PublixException- Throws:
PublixException
-
finishStudy
public play.mvc.Result finishStudy(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.Boolean successful, java.lang.String message) throws PublixException- Throws:
PublixException
-
log
public play.mvc.Result log(play.mvc.Http.Request request, java.lang.String studyResultUuid, java.lang.String componentUuid) throws PublixException- Throws:
PublixException
-
-