/** * Create a data group * * @param doi * @param webAddress * @param title * @return */ @POST @Authenticated @Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Produces(MediaType.APPLICATION_JSON) public Response mint( @FormParam("doi") String doi, @FormParam("webAddress") String webAddress, @FormParam("graph") String graph, @FormParam("title") String title, @FormParam("resourceType") String resourceTypeString, @FormParam("resourceTypesMinusDataset") Integer resourceTypesMinusDataset, @FormParam("finalCopy") @DefaultValue("false") Boolean finalCopy) { // If resourceType is specified by an integer, then use that to set the String resourceType. // If the user omits try { if (resourceTypesMinusDataset != null && resourceTypesMinusDataset > 0) { resourceTypeString = new ResourceTypes().get(resourceTypesMinusDataset).uri; } } catch (IndexOutOfBoundsException e) { throw new BadRequestException( "BCID System Unable to set resource type", "There was an error retrieving the resource type uri. Did you provide a valid resource type?"); } if (resourceTypeString == null || resourceTypeString.isEmpty()) { throw new BadRequestException("ResourceType is required"); } // Mint the Bcid if (title == null || title.isEmpty()) { title = resourceTypeString; } Bcid.BcidBuilder builder = new Bcid.BcidBuilder(resourceTypeString) .ezidRequest(Boolean.valueOf(settingsManager.retrieveValue("ezidRequests"))) .doi(doi) .title(title) .graph(graph) .finalCopy(finalCopy); if (!StringUtils.isEmpty(webAddress)) { UriComponents webAddressComponents = UriComponentsBuilder.fromUriString(webAddress).build(); builder.webAddress(webAddressComponents.toUri()); } Bcid bcid = builder.build(); bcidService.create(bcid, user.getUserId()); // TODO return the bcid object here return Response.ok("{\"identifier\": \"" + bcid.getIdentifier() + "\"}").build(); }
/* * (non-Javadoc) * @see org.springframework.hateoas.MethodLinkBuilderFactory#linkTo(java.lang.Object) */ @Override public ControllerLinkBuilder linkTo(Object invocationValue) { Assert.isInstanceOf(LastInvocationAware.class, invocationValue); LastInvocationAware invocations = (LastInvocationAware) invocationValue; MethodInvocation invocation = invocations.getLastInvocation(); Iterator<Object> classMappingParameters = invocations.getObjectParameters(); Method method = invocation.getMethod(); String mapping = DISCOVERER.getMapping(method); UriComponentsBuilder builder = ControllerLinkBuilder.getBuilder().path(mapping); UriTemplate template = new UriTemplate(mapping); Map<String, Object> values = new HashMap<String, Object>(); Iterator<String> names = template.getVariableNames().iterator(); while (classMappingParameters.hasNext()) { values.put(names.next(), classMappingParameters.next()); } for (BoundMethodParameter parameter : PATH_VARIABLE_ACCESSOR.getBoundParameters(invocation)) { values.put(parameter.getVariableName(), parameter.asString()); } for (BoundMethodParameter parameter : REQUEST_PARAM_ACCESSOR.getBoundParameters(invocation)) { Object value = parameter.getValue(); String key = parameter.getVariableName(); if (value instanceof Collection) { for (Object element : (Collection<?>) value) { builder.queryParam(key, element); } } else { builder.queryParam(key, parameter.asString()); } } UriComponents components = applyUriComponentsContributer(builder, invocation).buildAndExpand(values); return new ControllerLinkBuilder(UriComponentsBuilder.fromUri(components.toUri())); }
public CellLine getCellLine(String biosampleId) throws RestClientException { UriComponents uriComponents = UriComponentsBuilder.newInstance() .scheme("https") .host(apiHost) .pathSegment("api", "v0", "cell-lines", biosampleId) .build(); log.trace("URI = " + uriComponents.toUriString()); HttpHeaders headers = new HttpHeaders(); headers.set("Authorization", "ApiKey " + apiUsername + ":" + apiKey); HttpEntity<String> entity = new HttpEntity<String>("parameters", headers); ResponseEntity<CellLine> responce = restTemplate.exchange(uriComponents.toUri(), HttpMethod.GET, entity, CellLine.class); log.trace("HTTP code = " + responce.getStatusCode()); return responce.getBody(); }
public GoogleSearchResponse search(String searchString, String referer) { try { if (ValidatorUtil.isNull(referer)) { referer = "http://longfalcon.net"; } String v = "1.0"; String userip = "192.168.0.1"; HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.set("Referer", referer); HttpEntity<?> requestEntity = new HttpEntity(httpHeaders); UriComponents uriComponents = UriComponentsBuilder.fromUriString(_SEARCH_URL) .queryParam("v", v) .queryParam("q", searchString) .queryParam("userip", userip) .build(); ResponseEntity<GoogleSearchResponse> responseEntity = restTemplate.exchange( uriComponents.toUri(), HttpMethod.GET, requestEntity, GoogleSearchResponse.class); HttpStatus statusCode = responseEntity.getStatusCode(); if (statusCode.is2xxSuccessful() || statusCode.is3xxRedirection()) { return responseEntity.getBody(); } else { _log.error( String.format( "Search request: \n%s\n failed with HTTP code %s : %s", uriComponents.toString(), statusCode.toString(), statusCode.getReasonPhrase())); return null; } } catch (Exception e) { _log.error(e); } return null; }