@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { Repository repository = context.getRepository(); Parameters parameters = context.getRequest().getParameters(); log.debug("[searchV1] repository: {} parameters: {}", repository.getName(), parameters); return NpmResponses.ok(repository.facet(NpmSearchFacet.class).searchV1(parameters)); } };
/** * Path + query parameters provide a unique enough request key for known formats. * If a format needs to add more context then they should customize this method. * * @return key that uniquely identifies this upstream request from other contexts * * @since 3.4 */ protected String getRequestKey(final Context context) { return context.getRequest().getPath() + '?' + context.getRequest().getParameters(); }
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { Repository repository = context.getRepository(); Parameters parameters = context.getRequest().getParameters(); log.debug("[searchIndex] repository: {} parameters: {}", repository.getName(), parameters); return NpmResponses.ok(repository.facet(NpmSearchIndexFacet.class).searchIndex(indexSince(parameters))); } };
@Override protected Response doGet(@Nonnull final Context context, @Nonnull final DispatchedRepositories dispatched) throws Exception { checkNotNull(context); checkNotNull(dispatched); Request request = context.getRequest(); Parameters parameters = request.getParameters(); String text = npmSearchParameterExtractor.extractText(parameters); NpmSearchResponse response; if (text.isEmpty()) { response = npmSearchResponseFactory.buildEmptyResponse(); } else { response = searchMembers(context, dispatched, parameters); } String content = npmSearchResponseMapper.writeString(response); return HttpResponses.ok(new StringPayload(content, ContentTypes.APPLICATION_JSON)); }
public Builder copy(final Request request) { checkNotNull(request); attributes = request.getAttributes(); headers = request.getHeaders(); action = request.getAction(); path = request.getPath(); parameters = request.getParameters(); payload = request.getPayload(); multipart = request.isMultipart(); multiparts = request.getMultiparts(); return this; }
Parameters parameters = context.getRequest().getParameters(); if (parameters != null) { return ViewUtils.buildUrlWithParameters(url, parameters);
@Override protected Content getCachedContent(final Context context) throws IOException { ProxyTarget proxyTarget = context.getAttributes().require(ProxyTarget.class); if (proxyTarget.equals(ProxyTarget.SEARCH_V1_RESULTS)) { return null; // we do not cache search results } else if (ProxyTarget.PACKAGE == proxyTarget) { return getPackageRoot(packageId(matcherState(context))); } else if (ProxyTarget.TARBALL == proxyTarget) { TokenMatcher.State state = matcherState(context); return getTarball(packageId(state), tarballName(state)); } else if (ProxyTarget.SEARCH_INDEX == proxyTarget) { Content fullIndex = getRepositoryRoot(); if (fullIndex == null) { return null; } return NpmSearchIndexFilter.filterModifiedSince( fullIndex, NpmHandlers.indexSince(context.getRequest().getParameters())); } throw new IllegalStateException(); }
@Override protected Content store(final Context context, final Content content) throws IOException { ProxyTarget proxyTarget = context.getAttributes().require(ProxyTarget.class); if (proxyTarget.equals(ProxyTarget.SEARCH_V1_RESULTS)) { return content; // we do not cache search results } StorageFacet storageFacet = facet(StorageFacet.class); try (TempBlob tempBlob = storageFacet.createTempBlob(content, NpmFacetUtils.HASH_ALGORITHMS)) { if (ProxyTarget.PACKAGE == proxyTarget) { return putPackageRoot(packageId(matcherState(context)), tempBlob, content); } else if (ProxyTarget.TARBALL == proxyTarget) { TokenMatcher.State state = matcherState(context); return putTarball(packageId(state), tarballName(state), tempBlob, content, context); } else if (ProxyTarget.SEARCH_INDEX == proxyTarget) { Content fullIndex = putRepositoryRoot(tempBlob, content); return NpmSearchIndexFilter.filterModifiedSince( fullIndex, NpmHandlers.indexSince(context.getRequest().getParameters())); } throw new IllegalStateException(); } }