Java Examples for io.swagger.annotations.ApiResponse

The following java examples will help you to understand the usage of io.swagger.annotations.ApiResponse. These source code samples are taken from different open source projects.

Example 1
Project: anythingworks-master  File: RestRequestInfoService.java View source code
@GET
@Path("/requestinfo")
@ApiOperation(value = "Ping the server", notes = "Shows information about the request as seen by the server, including the request method, user agent, and so on. This way a client can be confident about what the server actually gets through all the possible interceptors and proxies.", response = RequestInfo.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Returns the RequestInfo object.") })
public Response info(@QueryParam(value = "apiKey") final String apiKey, @QueryParam(value = "envelope") final boolean envelope, @Context final HttpHeaders httpHeaders, @Context final Request request) {
    RequestInfo result = execute(new BaseCommand<Void, RequestInfo>() {

        @Override
        public RequestInfo call(@NotNull Optional<Void> arg, @NotNull ExecutionContext ec) throws Exception {
            RequestInfo.Builder builder = new RequestInfo.Builder();
            builder.method(request.getMethod());
            builder.uri(((ContainerRequest) request).getRequestUri().toString());
            List<String> requestHeader = httpHeaders.getRequestHeader("user-agent");
            if (requestHeader != null && !requestHeader.isEmpty()) {
                builder.userAgent(requestHeader.get(0));
            }
            //TODO add more, that's not all yet.
            return builder.build();
        }
    }).orNull();
    Object entity = possiblyWrapInEnvelope(envelope, result);
    return Response.ok().entity(entity).build();
}
Example 2
Project: kylo-master  File: FeedsController.java View source code
@GET
@Path("{id}/actions/allowed")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation("Gets the list of actions permitted for the given username and/or groups.")
@ApiResponses({ @ApiResponse(code = 200, message = "Returns the actions.", response = ActionGroup.class), @ApiResponse(code = 404, message = "A feed with the given ID does not exist.", response = RestResponseStatus.class) })
public ActionGroup getAllowedActions(@PathParam("id") String feedIdStr, @QueryParam("user") Set<String> userNames, @QueryParam("group") Set<String> groupNames) {
    LOG.debug("Get allowed actions for feed: {}", feedIdStr);
    Set<? extends Principal> users = Arrays.stream(this.actionsTransform.asUserPrincipals(userNames)).collect(Collectors.toSet());
    Set<? extends Principal> groups = Arrays.stream(this.actionsTransform.asGroupPrincipals(groupNames)).collect(Collectors.toSet());
    return this.securityService.getAllowedFeedActions(feedIdStr, Stream.concat(users.stream(), groups.stream()).collect(Collectors.toSet())).orElseThrow(() -> new WebApplicationException("A feed with the given ID does not exist: " + feedIdStr, Status.NOT_FOUND));
}
Example 3
Project: che-master  File: ProjectService.java View source code
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Creates new project", response = ProjectConfigDto.class)
@ApiResponses({ @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 403, message = "Operation is forbidden"), @ApiResponse(code = 409, message = "Project with specified name already exist in workspace"), @ApiResponse(code = 500, message = "Server error") })
@GenerateLink(rel = LINK_REL_CREATE_PROJECT)
public /**
     * NOTE: parentPath is added to make a module
     */
ProjectConfigDto createProject(@ApiParam(value = "Add to this project as module", required = false) @Context UriInfo uriInfo, @Description("descriptor of project") ProjectConfigDto projectConfig) throws ConflictException, ForbiddenException, ServerException, NotFoundException {
    Map<String, String> options = new HashMap<>();
    MultivaluedMap<String, String> map = uriInfo.getQueryParameters();
    for (String key : map.keySet()) {
        options.put(key, map.get(key).get(0));
    }
    String pathToProject = projectConfig.getPath();
    String pathToParent = pathToProject.substring(0, pathToProject.lastIndexOf("/"));
    if (!pathToParent.equals("/")) {
        VirtualFileEntry parentFileEntry = projectManager.getProjectsRoot().getChild(pathToParent);
        if (parentFileEntry == null) {
            throw new NotFoundException("The parent folder with path " + pathToParent + " does not exist.");
        }
    }
    final RegisteredProject project = projectManager.createProject(projectConfig, options);
    final ProjectConfigDto configDto = asDto(project);
    eventService.publish(new ProjectCreatedEvent(workspace, project.getPath()));
    return injectProjectLinks(configDto);
}
Example 4
Project: Gaffer-master  File: StatusService.java View source code
@GET
@ApiOperation(value = "Returns the status of the service", response = SystemStatus.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 500, message = "Something wrong in Server") })
public SystemStatus status() {
    try {
        if (null != graphFactory.getGraph()) {
            return new SystemStatus("The system is working normally.");
        }
    } catch (final Exception e) {
        throw new GafferRuntimeException("Unable to create graph.", e, Status.INTERNAL_SERVER_ERROR);
    }
    return new SystemStatus("Unable to create graph.");
}
Example 5
Project: coner-master  File: EventRegistrationsResource.java View source code
@POST
@UnitOfWork
@ApiOperation(value = "Add a new registration")
@ApiResponses({ @ApiResponse(code = HttpStatus.CREATED_201, message = ApiResponseConstants.Created.MESSAGE, responseHeaders = { @ResponseHeader(name = ApiResponseConstants.Created.Headers.NAME, description = ApiResponseConstants.Created.Headers.DESCRIPTION, response = String.class) }), @ApiResponse(code = HttpStatus.NOT_FOUND_404, response = ErrorMessage.class, message = "No event with given ID"), @ApiResponse(code = HttpStatus.UNPROCESSABLE_ENTITY_422, response = ValidationErrorMessage.class, message = "Failed validation") })
public Response addRegistration(@PathParam("eventId") @ApiParam(value = "Event ID", required = true) String eventId, @Valid @ApiParam(value = "Registration", required = true) AddRegistrationRequest request) throws AddEntityException, EntityNotFoundException {
    RegistrationAddPayload addPayload = registrationMapper.toDomainAddPayload(request, eventId);
    Registration domainEntity = eventRegistrationService.add(addPayload);
    RegistrationApiEntity registration = registrationMapper.toApiEntity(domainEntity);
    return Response.created(UriBuilder.fromPath("/events/{eventId}/registrations/{registrationId}").build(eventId, registration.getId())).build();
}
Example 6
Project: hello-world-master  File: TcAuthenticationController.java View source code
/**
     * 0 ==> 登陆成功;
     * 1 ==> 验证码已过期;
     * 2 ==> 验证码输入错误;
     * 3 ==> 账号不存在;
     * 4 ==> 账号被锁定;
     * 5 ==> 账号密码错误;
     */
@ApiOperation(value = "登陆", notes = "登陆")
@ApiResponse(code = 200, message = "成功")
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ResponseEntity<TcR<Integer>> login(@RequestParam(value = "username") String username, @RequestParam(value = "password") String rsaEncryptedPassword, @RequestParam(value = "rememberMe", defaultValue = "false") Boolean rememberMe, @RequestParam(value = "verificationCode") String verificationCode, HttpServletResponse response) {
    // verify verification code
    String verificationCodeInCache = tcAuthenticationService.getVerificationCodeInCache();
    if (Objects.isNull(verificationCodeInCache)) {
        return ResponseEntity.ok(TcR.code(1, "验证码已过期!"));
    }
    boolean verificationCodeMatch = tcAuthenticationService.isVerificationCodeMatch(verificationCodeInCache, verificationCode);
    if (!verificationCodeMatch) {
        return ResponseEntity.ok(TcR.code(2, "验证码输入错误!"));
    }
    // login
    String password = tcAuthenticationService.decryptRSAEncryptedPassword(rsaEncryptedPassword);
    UsernamePasswordToken token = new UsernamePasswordToken(username, password);
    token.setRememberMe(rememberMe);
    try {
        SecurityUtils.getSubject().login(token);
    } catch (UnknownAccountException e) {
        return ResponseEntity.ok(TcR.code(3, "账号不存在!"));
    } catch (LockedAccountException e) {
        return ResponseEntity.ok(TcR.code(4, "账号被锁定!"));
    } catch (IncorrectCredentialsException e) {
        return ResponseEntity.ok(TcR.code(5, "账号密码错误!"));
    }
    // set xsrf cookie
    TcXsrfTokenFilter.addXsrfCookie(response);
    // set session
    tcSessionService.initSessionAfterLogin();
    // find menus
    // String accountId = tcSessionService.getAccountId();
    // TcP<List<ToMenu>> menus = tcAuthenticationApi.findMenus(accountId);
    // TODO: 2016/11/26
    // mq TODO
    log.info("session id -> [{}] login success", SecurityUtils.getSubject().getSession().getId());
    // successful
    return ResponseEntity.ok(TcR.code(0, "登陆成功!"));
}
Example 7
Project: strongbox-master  File: ConfigurationManagementController.java View source code
@ApiOperation(value = "Upload a strongbox.xml and reload the server's configuration.")
@ApiResponses(value = { @ApiResponse(code = 200, message = "The configuration was updated successfully."), @ApiResponse(code = 500, message = "An error occurred.") })
@PreAuthorize("hasAuthority('CONFIGURATION_UPLOAD')")
@RequestMapping(value = "/xml", method = RequestMethod.PUT, produces = MediaType.TEXT_PLAIN_VALUE, consumes = MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity setConfigurationXML(@ApiParam(value = "The strongbox.xml configuration file", required = true) @RequestBody String serializedConfiguration) throws IOException, AuthenticationException, JAXBException {
    GenericParser<Configuration> parser = new GenericParser<>(Configuration.class);
    Configuration configuration = parser.deserialize(serializedConfiguration);
    try {
        configurationManagementService.setConfiguration(configuration);
        logger.info("Received new configuration over REST.");
        return ResponseEntity.ok("The configuration was updated successfully.");
    } catch (IOExceptionJAXBException |  e) {
        logger.error(e.getMessage(), e);
        return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
    }
}
Example 8
Project: roda-master  File: RepresentationsResource.java View source code
@GET
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@ApiOperation(value = "List Representations", notes = "Gets a list of representations.", response = Representations.class, responseContainer = "List")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Successful response", response = Representations.class, responseContainer = "List"), @ApiResponse(code = 404, message = "Not found", response = ApiResponseMessage.class) })
public Response listRepresentations(@ApiParam(value = "Index of the first element to return", defaultValue = "0") @QueryParam(RodaConstants.API_QUERY_KEY_START) String start, @ApiParam(value = "Maximum number of elements to return", defaultValue = RodaConstants.DEFAULT_PAGINATION_STRING_VALUE) @QueryParam(RodaConstants.API_QUERY_KEY_LIMIT) String limit, @ApiParam(value = "Choose format in which to get the representation", allowableValues = RodaConstants.API_LIST_MEDIA_TYPES, defaultValue = RodaConstants.API_QUERY_VALUE_ACCEPT_FORMAT_JSON) @QueryParam(RodaConstants.API_QUERY_KEY_ACCEPT_FORMAT) String acceptFormat) throws RODAException {
    String mediaType = ApiUtils.getMediaType(acceptFormat, request);
    // get user
    User user = UserUtility.getApiUser(request);
    // delegate action to controller
    boolean justActive = false;
    Pair<Integer, Integer> pagingParams = ApiUtils.processPagingParams(start, limit);
    IndexResult<IndexedRepresentation> result = Browser.find(IndexedRepresentation.class, Filter.NULL, Sorter.NONE, new Sublist(pagingParams.getFirst(), pagingParams.getSecond()), null, user, justActive, new ArrayList<>());
    return Response.ok(ApiUtils.indexedResultToRODAObjectList(IndexedRepresentation.class, result), mediaType).build();
}
Example 9
Project: pinot-master  File: TablesResource.java View source code
@GET
@Path("/tables")
@Produces(MediaType.APPLICATION_JSON)
//swagger annotations
@ApiOperation(value = "List tables", notes = "List all the tables on this server")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Success", response = TablesList.class), @ApiResponse(code = 500, message = "Server initialization error", response = ErrorInfo.class) })
public TablesList listTables() {
    InstanceDataManager dataManager = checkGetInstanceDataManager();
    Collection<TableDataManager> tableDataManagers = dataManager.getTableDataManagers();
    List<String> tables = new ArrayList<>(tableDataManagers.size());
    for (TableDataManager tableDataManager : tableDataManagers) {
        tables.add(tableDataManager.getTableName());
    }
    return new TablesList(tables);
}
Example 10
Project: candlepin-master  File: ConsumerResource.java View source code
@ApiOperation(notes = "Retrieves a list of the Consumers", value = "list", response = Consumer.class, responseContainer = "list")
@ApiResponses({ @ApiResponse(code = 400, message = ""), @ApiResponse(code = 404, message = "") })
@GET
@Produces(MediaType.APPLICATION_JSON)
@Wrapped(element = "consumers")
@Paginate
@SuppressWarnings("checkstyle:indentation")
public CandlepinQuery<Consumer> list(@QueryParam("username") String userName, @QueryParam("type") Set<String> typeLabels, @QueryParam("owner") String ownerKey, @QueryParam("uuid") List<String> uuids, @QueryParam("hypervisor_id") List<String> hypervisorIds, @QueryParam("fact") @CandlepinParam(type = KeyValueParameter.class) List<KeyValueParameter> attrFilters, @Context PageRequest pageRequest) {
    if (userName == null && (typeLabels == null || typeLabels.isEmpty()) && ownerKey == null && (uuids == null || uuids.isEmpty()) && (hypervisorIds == null || hypervisorIds.isEmpty()) && (attrFilters == null || attrFilters.isEmpty())) {
        throw new BadRequestException(i18n.tr("Must specify at least one search criteria."));
    }
    Owner owner = null;
    if (ownerKey != null) {
        owner = ownerCurator.lookupByKey(ownerKey);
        if (owner == null) {
            throw new NotFoundException(i18n.tr("owner with key: {0} was not found.", ownerKey));
        }
    }
    List<ConsumerType> types = consumerTypeValidator.findAndValidateTypeLabels(typeLabels);
    return this.consumerCurator.searchOwnerConsumers(owner, userName, types, uuids, hypervisorIds, attrFilters, Collections.<String>emptyList(), Collections.<String>emptyList(), Collections.<String>emptyList());
}
Example 11
Project: cartographer-master  File: RepositoryResource.java View source code
@ApiOperation("Get Repo Content Result.")
@ApiResponses({ @ApiResponse(code = 200, response = RepoContentResult.class, message = "Repo Content Result") })
@Path("/content")
@Produces({ "application/json", "application/indy*+json" })
@POST
public RepoContentResult getRepoContent(final RepositoryContentRequest request, @Context final UriInfo uriInfo) {
    Response response = null;
    try {
        final String baseUri = uriInfo.getAbsolutePathBuilder().path("api").build().toString();
        return controller.getRepoContent(request, baseUri);
    } catch (final CartoRESTException e) {
        logger.error(e.getMessage(), e);
        response = formatResponse(e);
    }
    return null;
}
Example 12
Project: SmartHome-master  File: SitemapResource.java View source code
@GET
@Path("/{sitemapname: [a-zA-Z_0-9]*}")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Get sitemap by name.", response = SitemapDTO.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK") })
public Response getSitemapData(@Context HttpHeaders headers, @HeaderParam(HttpHeaders.ACCEPT_LANGUAGE) @ApiParam(value = "language") String language, @PathParam("sitemapname") @ApiParam(value = "sitemap name") String sitemapname, @QueryParam("type") String type, @QueryParam("jsoncallback") @DefaultValue("callback") String callback) {
    final Locale locale = LocaleUtil.getLocale(language);
    logger.debug("Received HTTP GET request at '{}' for media type '{}'.", new Object[] { uriInfo.getPath(), type });
    Object responseObject = getSitemapBean(sitemapname, uriInfo.getBaseUriBuilder().build(), locale);
    return Response.ok(responseObject).build();
}
Example 13
Project: killbill-master  File: AccountResource.java View source code
@TimedResource
@GET
@Path("/{accountId:" + UUID_PATTERN + "}")
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Retrieve an account by id", response = AccountJson.class)
@ApiResponses(value = { @ApiResponse(code = 400, message = "Invalid account id supplied"), @ApiResponse(code = 404, message = "Account not found") })
public Response getAccount(@PathParam("accountId") final String accountId, @QueryParam(QUERY_ACCOUNT_WITH_BALANCE) @DefaultValue("false") final Boolean accountWithBalance, @QueryParam(QUERY_ACCOUNT_WITH_BALANCE_AND_CBA) @DefaultValue("false") final Boolean accountWithBalanceAndCBA, @QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode, @javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
    final TenantContext tenantContext = context.createContext(request);
    final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), tenantContext);
    final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(account.getId(), auditMode.getLevel(), tenantContext);
    final AccountJson accountJson = getAccount(account, accountWithBalance, accountWithBalanceAndCBA, accountAuditLogs, tenantContext);
    return Response.status(Status.OK).entity(accountJson).build();
}
Example 14
Project: hawkular-inventory-master  File: RestResources.java View source code
@POST
@javax.ws.rs.Path("/{environmentId}/resources")
@ApiOperation("Creates a new resource")
@ApiResponses({ @ApiResponse(code = 201, message = "Resource successfully created"), @ApiResponse(code = 400, message = "Invalid input data", response = ApiError.class), @ApiResponse(code = 404, message = "Tenant or environment doesn't exist", response = ApiError.class), @ApiResponse(code = 409, message = "Resource already exists", response = ApiError.class), @ApiResponse(code = 500, message = "Server error", response = ApiError.class) })
public Response addResource(@PathParam("environmentId") String environmentId, @ApiParam(required = true) Resource.Blueprint resource, @Context UriInfo uriInfo) {
    String tenantId = getTenantId();
    CanonicalPath env = CanonicalPath.of().tenant(tenantId).environment(environmentId).get();
    if (!security.canCreate(Resource.class).under(env)) {
        return Response.status(FORBIDDEN).build();
    }
    Resource entity = inventory.inspect(env, Environments.Single.class).resources().create(resource).entity();
    return ResponseUtil.created(entity, uriInfo, resource.getId()).build();
}
Example 15
Project: graylog2-server-master  File: StreamResource.java View source code
@PUT
@Timed
@Path("/{streamId}")
@ApiOperation(value = "Update a stream")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiResponses(value = { @ApiResponse(code = 404, message = "Stream not found."), @ApiResponse(code = 400, message = "Invalid ObjectId.") })
@AuditEvent(type = AuditEventTypes.STREAM_UPDATE)
public StreamResponse update(@ApiParam(name = "streamId", required = true) @PathParam("streamId") String streamId, @ApiParam(name = "JSON body", required = true) @Valid @NotNull UpdateStreamRequest cr) throws NotFoundException, ValidationException {
    checkPermission(RestPermissions.STREAMS_EDIT, streamId);
    checkNotDefaultStream(streamId, "The default stream cannot be edited.");
    final Stream stream = streamService.load(streamId);
    if (!Strings.isNullOrEmpty(cr.title())) {
        stream.setTitle(cr.title());
    }
    if (!Strings.isNullOrEmpty(cr.description())) {
        stream.setDescription(cr.description());
    }
    if (cr.matchingType() != null) {
        try {
            stream.setMatchingType(Stream.MatchingType.valueOf(cr.matchingType()));
        } catch (IllegalArgumentException e) {
            throw new BadRequestException("Invalid matching type '" + cr.matchingType() + "' specified. Should be one of: " + Arrays.toString(Stream.MatchingType.values()));
        }
    }
    final Boolean removeMatchesFromDefaultStream = cr.removeMatchesFromDefaultStream();
    if (removeMatchesFromDefaultStream != null) {
        stream.setRemoveMatchesFromDefaultStream(removeMatchesFromDefaultStream);
    }
    // id if it's null/empty in the update request.
    if (!Strings.isNullOrEmpty(cr.indexSetId())) {
        stream.setIndexSetId(cr.indexSetId());
    }
    final Optional<IndexSet> indexSet = indexSetRegistry.get(stream.getIndexSetId());
    if (!indexSet.isPresent()) {
        throw new BadRequestException("Index set with ID <" + stream.getIndexSetId() + "> does not exist!");
    } else if (!indexSet.get().getConfig().isWritable()) {
        throw new BadRequestException("Assigned index set must be writable!");
    }
    streamService.save(stream);
    clusterEventBus.post(StreamsChangedEvent.create(stream.getId()));
    return streamToResponse(stream);
}
Example 16
Project: teiid-embedded-master  File: CustomersResource.java View source code
@GET
@Path("/status")
@ApiOperation(value = "get customer status", notes = "get customer status as xml/json")
@ApiResponses({ @ApiResponse(code = 404, message = "Customer not found") })
public CustomerStatus size() {
    CustomerStatus status = new CustomerStatus();
    status.setSize(data.getCustomerList().size());
    HeapSize jvm = new HeapSize();
    jvm.setMaxMemory(Runtime.getRuntime().maxMemory());
    jvm.setFreeMemory(Runtime.getRuntime().freeMemory());
    jvm.setAllocatedMemory(Runtime.getRuntime().totalMemory());
    status.setHeap(jvm);
    return status;
}
Example 17
Project: arsnova-backend-master  File: SessionController.java View source code
@ApiOperation(value = "Creates a new Session and returns the Session's data", nickname = "postNewSession")
@ApiResponses(value = { @ApiResponse(code = 201, message = HTML_STATUS_201), @ApiResponse(code = 503, message = HTML_STATUS_503) })
@RequestMapping(value = "/", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public Session postNewSession(@ApiParam(value = "current session", required = true) @RequestBody final Session session, final HttpServletResponse response) {
    if (session != null && session.isCourseSession()) {
        final List<Course> courses = new ArrayList<>();
        final Course course = new Course();
        course.setId(session.getCourseId());
        courses.add(course);
        final int sessionCount = sessionService.countSessions(courses);
        if (sessionCount > 0) {
            final String appendix = " (" + (sessionCount + 1) + ")";
            session.setName(session.getName() + appendix);
            session.setShortName(session.getShortName() + appendix);
        }
    }
    final Session newSession = sessionService.saveSession(session);
    if (newSession == null) {
        response.setStatus(HttpStatus.SERVICE_UNAVAILABLE.value());
        return null;
    }
    return newSession;
}
Example 18
Project: catwatch-master  File: ContributorsApi.java View source code
@ApiOperation(value = "Contributor", notes = "The Contributors endpoint returns all information like name, url, commits count, \nprojects count of all the Contributors for the selected filter. \n", response = Contributor.class, responseContainer = "List")
@ApiResponses(value = { @ApiResponse(code = 200, message = "An array of Contributors of selected Github organization"), @ApiResponse(code = 0, message = "Unexpected error") })
@RequestMapping(value = "", method = RequestMethod.GET)
@ResponseBody
public List<Contributor> contributorsGet(//
@ApiParam(value = "List of github.com organizations to scan(comma seperated)", required = true) //
@RequestParam(value = Constants.API_REQUEST_PARAM_ORGANIZATIONS, required = true) String //
organizations, //
@ApiParam(value = "Number of items to retrieve. Default is 5.") //
@RequestParam(value = Constants.API_REQUEST_PARAM_LIMIT, required = false) Integer //
limit, //
@ApiParam(value = "Offset the list of returned results by this amount. Default is zero.") //
@RequestParam(value = Constants.API_REQUEST_PARAM_OFFSET, required = false) Integer //
offset, //
@ApiParam(value = "Date from which to start fetching records from database(default = current_date)") //
@RequestParam(value = Constants.API_REQUEST_PARAM_STARTDATE, required = false) String //
startDate, //
@ApiParam(value = "Date till which records will be fetched from database(default = current_date)") //
@RequestParam(value = Constants.API_REQUEST_PARAM_ENDDATE, required = false) String //
endDate, @ApiParam(value = "parameter by which result should be sorted. '-' means descending order (default is count of commit)") //
@RequestParam(value = Constants.API_REQUEST_PARAM_SORTBY, required = false) String //
sortBy, //
@ApiParam(value = "query paramater for search query (this will be contributor names prefix)") //
@RequestParam(value = Constants.API_REQUEST_PARAM_Q, required = false) String //
q) {
    validate(organizations, offset, limit, sortBy, startDate, endDate);
    if (startDate != null && endDate != null && repository.findPreviousSnapShotDate(iso8601(endDate)) != null && repository.findPreviousSnapShotDate(iso8601(startDate)) != null) {
        return contributorsGet_timeSpan(organizations, limit, offset, startDate, endDate, sortBy, q);
    } else if (//
    startDate == null && endDate == null && repository.findPreviousSnapShotDate(from(now())) != null) {
        return contributorsGet_noTimeSpan(organizations, limit, offset, endDate, sortBy, q);
    } else {
        throw new UnsupportedOperationException("this parameter configuration is not implemented yet" + " .. start date, end date required atm");
    }
}
Example 19
Project: Pulsar-master  File: PersistentTopics.java View source code
@GET
@Path("/{property}/{cluster}/{namespace}")
@ApiOperation(value = "Get the list of destinations under a namespace.", response = String.class, responseContainer = "List")
@ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have admin permission"), @ApiResponse(code = 404, message = "Namespace doesn't exist") })
public List<String> getList(@PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace) {
    validateAdminAccessOnProperty(property);
    // Validate that namespace exists, throws 404 if it doesn't exist
    try {
        policiesCache().get(path("policies", property, cluster, namespace));
    } catch (KeeperException.NoNodeException e) {
        log.warn("[{}] Failed to get topic list {}/{}/{}: Namespace does not exist", clientAppId(), property, cluster, namespace);
        throw new RestException(Status.NOT_FOUND, "Namespace does not exist");
    } catch (Exception e) {
        log.error("[{}] Failed to get topic list {}/{}/{}", clientAppId(), property, cluster, namespace, e);
        throw new RestException(e);
    }
    List<String> destinations = Lists.newArrayList();
    try {
        String path = String.format("/managed-ledgers/%s/%s/%s/%s", property, cluster, namespace, domain());
        for (String destination : managedLedgerListCache().get(path)) {
            if (domain().equals(DestinationDomain.persistent.toString())) {
                destinations.add(DestinationName.get(domain(), property, cluster, namespace, decode(destination)).toString());
            }
        }
    } catch (KeeperException.NoNodeException e) {
    } catch (Exception e) {
        log.error("[{}] Failed to get destination list for namespace {}/{}/{}", clientAppId(), property, cluster, namespace, e);
        throw new RestException(e);
    }
    destinations.sort(null);
    return destinations;
}
Example 20
Project: swagger-maven-plugin-master  File: AbstractReader.java View source code
protected void updateApiResponse(Operation operation, ApiResponses responseAnnotation) {
    for (ApiResponse apiResponse : responseAnnotation.value()) {
        Map<String, Property> responseHeaders = parseResponseHeaders(apiResponse.responseHeaders());
        Class<?> responseClass = apiResponse.response();
        Response response = new Response().description(apiResponse.message()).headers(responseHeaders);
        if (responseClass.equals(Void.class)) {
            if (operation.getResponses() != null) {
                Response apiOperationResponse = operation.getResponses().get(String.valueOf(apiResponse.code()));
                if (apiOperationResponse != null) {
                    response.setSchema(apiOperationResponse.getSchema());
                }
            }
        } else {
            Map<String, Model> models = ModelConverters.getInstance().read(responseClass);
            for (String key : models.keySet()) {
                final Property schema = new RefProperty().asDefault(key);
                if (apiResponse.responseContainer().equals("List")) {
                    response.schema(new ArrayProperty(schema));
                } else {
                    response.schema(schema);
                }
                swagger.model(key, models.get(key));
            }
            models = ModelConverters.getInstance().readAll(responseClass);
            for (Map.Entry<String, Model> entry : models.entrySet()) {
                swagger.model(entry.getKey(), entry.getValue());
            }
            if (response.getSchema() == null) {
                Map<String, Response> responses = operation.getResponses();
                if (responses != null) {
                    Response apiOperationResponse = responses.get(String.valueOf(apiResponse.code()));
                    if (apiOperationResponse != null) {
                        response.setSchema(apiOperationResponse.getSchema());
                    }
                }
            }
        }
        if (apiResponse.code() == 0) {
            operation.defaultResponse(response);
        } else {
            operation.response(apiResponse.code(), response);
        }
    }
}
Example 21
Project: hawkular-alerts-master  File: TriggersHandler.java View source code
@GET
@Path("/")
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Get triggers with optional filtering.", notes = "If not criteria defined, it fetches all triggers stored in the system.", response = Trigger.class, responseContainer = "List")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Successfully fetched list of triggers."), @ApiResponse(code = 400, message = "Bad request/Invalid Parameters.", response = ApiError.class), @ApiResponse(code = 500, message = "Internal server error.", response = ApiError.class) })
@QueryParamValidation(name = "findTriggers")
public Response findTriggers(@ApiParam(required = false, value = "Filter out triggers for unspecified triggerIds. ", allowableValues = "Comma separated list of trigger IDs.") @QueryParam("triggerIds") final String triggerIds, @ApiParam(required = false, value = "Filter out triggers for unspecified tags.", allowableValues = "Comma separated list of tags, each tag of format 'name\\|value'. + \n" + "Specify '*' for value to match all values.") @QueryParam("tags") final String tags, @ApiParam(required = false, value = "Return only thin triggers. Currently Ignored.") @QueryParam("thin") final Boolean thin, @Context final UriInfo uri) {
    try {
        ResponseUtil.checkForUnknownQueryParams(uri, queryParamValidationMap.get("findTriggers"));
        Pager pager = RequestUtil.extractPaging(uri);
        TriggersCriteria criteria = buildCriteria(triggerIds, tags, thin);
        Page<Trigger> triggerPage = definitions.getTriggers(tenantId, criteria, pager);
        log.debugf("Triggers: %s", triggerPage);
        if (isEmpty(triggerPage)) {
            return ResponseUtil.ok(triggerPage);
        }
        return ResponseUtil.paginatedOk(triggerPage, uri);
    } catch (Exception e) {
        return ResponseUtil.onException(e, log);
    }
}
Example 22
Project: ff4j-master  File: MonitoringResource.java View source code
/**
     * Provide core information on store and available sub resources.
     */
@GET
@Path("/{uid}")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Display <b>Monitoring</b> for a <b><u>single</u></b> feature", notes = "Each feature will display a pieChart and a barChart for hits", response = FeatureMonitoringApiBean.class)
@ApiResponses({ @ApiResponse(code = 200, message = "Status of current ff4j monitoring bean", response = FeatureMonitoringApiBean.class), @ApiResponse(code = 404, message = "Feature not found", response = String.class) })
public Response getFeatureMonitoring(@ApiParam(required = true, name = "uid", value = "Unique identifier of feature") @PathParam("uid") String uid, @ApiParam(required = false, name = "start", value = "Start of window <br>(default is today 00:00)") @QueryParam(PARAM_START) Long start, @ApiParam(required = false, name = "end", value = "End  of window <br>(default is tomorrow 00:00)") @QueryParam(PARAM_END) Long end) {
    if (!ff4j.getFeatureStore().exist(uid)) {
        String errMsg = new FeatureNotFoundException(uid).getMessage();
        return Response.status(Response.Status.NOT_FOUND).entity(errMsg).build();
    }
    // Today
    Calendar c = Calendar.getInstance();
    c.set(Calendar.HOUR_OF_DAY, 0);
    c.set(Calendar.MINUTE, 0);
    c.set(Calendar.SECOND, 0);
    if (start == null) {
        start = c.getTimeInMillis();
    }
    // Tomorrow 00:00
    Calendar c2 = Calendar.getInstance();
    c2.setTime(new Date(System.currentTimeMillis() + 1000 * 3600 * 24));
    c2.set(Calendar.HOUR_OF_DAY, 0);
    c2.set(Calendar.MINUTE, 0);
    c2.set(Calendar.SECOND, 0);
    if (end == null) {
        end = c2.getTimeInMillis();
    }
    // Build response
    FeatureMonitoringApiBean fmab = new FeatureMonitoringApiBean(uid);
    int hitcount = 0;
    for (PieSectorApiBean sec : fmab.getEventsPie().getSectors()) {
        hitcount += sec.getValue();
    }
    fmab.setHitCount(hitcount);
    return Response.ok().entity(fmab).build();
}
Example 23
Project: jagger-master  File: TestEnvironmentRestController.java View source code
@PutMapping(value = "/{envId}", consumes = APPLICATION_JSON_VALUE)
@ApiOperation(value = "Updates Test Environment by envId.", notes = "This operation can be performed only if '" + TestEnvUtils.SESSION_COOKIE + "' cookie is " + "present and valid. To obtain this cookie POST to /envs must be performed firstly. " + "This cookie is valid only for Test Environment with " + "envId which was specified in POST request body.")
@ApiResponses(value = { @ApiResponse(code = 202, message = "Update is successful."), @ApiResponse(code = 404, message = "Test Environment with provided envId or sessionId is not found."), @ApiResponse(code = 400, message = TestEnvUtils.SESSION_COOKIE + " cookie is not present.") })
public ResponseEntity<?> updateTestEnvironment(@CookieValue(TestEnvUtils.SESSION_COOKIE) String sessionId, @PathVariable String envId, @RequestBody TestEnvironmentEntity testEnv, final HttpServletResponse response) {
    if (!testEnvService.exists(envId))
        throw ResourceNotFoundException.getTestEnvResourceNfe();
    if (!testEnvService.existsWithSessionId(envId, sessionId))
        throw new TestEnvironmentSessionNotFoundException(envId, sessionId);
    validateTestEnv(testEnv);
    testEnv.setEnvironmentId(envId);
    testEnv.setSessionId(sessionId);
    TestEnvironmentEntity updated = testEnvService.update(testEnv);
    if (updated.getStatus() == PENDING) {
        getTestExecutionToExecute(updated).ifPresent( execution -> response.addHeader(TestEnvUtils.EXECUTION_ID_HEADER, execution.getId().toString()));
    }
    response.addCookie(getSessionCookie(updated));
    return ResponseEntity.accepted().build();
}
Example 24
Project: hawkular-metrics-master  File: CounterHandler.java View source code
@POST
@Path("/")
@ApiOperation(value = "Create counter metric.", notes = "This operation also causes the rate to be calculated and " + "persisted periodically after raw count data is persisted. Clients are not required to explicitly create " + "a metric before storing data. Doing so however allows clients to prevent naming collisions and to " + "specify tags and data retention.")
@ApiResponses(value = { @ApiResponse(code = 201, message = "Metric created successfully"), @ApiResponse(code = 400, message = "Missing or invalid payload", response = ApiError.class), @ApiResponse(code = 409, message = "Counter metric with given id already exists", response = ApiError.class), @ApiResponse(code = 500, message = "Metric creation failed due to an unexpected error", response = ApiError.class) })
public void createMetric(@Suspended final AsyncResponse asyncResponse, @ApiParam(required = true) Metric<Long> metric, @ApiParam(value = "Overwrite previously created metric configuration if it exists. " + "Only data retention and tags are overwriten; existing data points are unnafected. Defaults to false.", required = false) @DefaultValue("false") @QueryParam("overwrite") Boolean overwrite, @Context UriInfo uriInfo) {
    if (metric.getType() != null && MetricType.UNDEFINED != metric.getType() && MetricType.COUNTER != metric.getType()) {
        asyncResponse.resume(badRequest(new ApiError("Metric type does not match " + MetricType.COUNTER.getText())));
    }
    metric = new Metric<>(new MetricId<>(getTenant(), COUNTER, metric.getId()), metric.getTags(), metric.getDataRetention());
    URI location = uriInfo.getBaseUriBuilder().path("/counters/{id}").build(metric.getMetricId().getName());
    metricsService.createMetric(metric, overwrite).subscribe(new MetricCreatedObserver(asyncResponse, location));
}
Example 25
Project: geode-master  File: QueryAccessController.java View source code
/**
   * list all parametrized Queries created in a Gemfire data node
   * 
   * @return result as a JSON document.
   */
@RequestMapping(method = RequestMethod.GET, produces = { MediaType.APPLICATION_JSON_UTF8_VALUE })
@ApiOperation(value = "list all parametrized queries", notes = "List all parametrized queries by id/name", response = void.class)
@ApiResponses({ @ApiResponse(code = 200, message = "OK."), @ApiResponse(code = 401, message = "Invalid Username or Password."), @ApiResponse(code = 403, message = "Insufficient privileges for operation."), @ApiResponse(code = 500, message = "if GemFire throws an error or exception") })
@ResponseBody
@ResponseStatus(HttpStatus.OK)
@PreAuthorize("@securityService.authorize('DATA', 'READ')")
public ResponseEntity<?> list() {
    logger.debug("Listing all parametrized Queries in GemFire...");
    final Region<String, String> parametrizedQueryRegion = getQueryStore(PARAMETERIZED_QUERIES_REGION);
    String queryListAsJson = JSONUtils.formulateJsonForListQueriesCall(parametrizedQueryRegion);
    final HttpHeaders headers = new HttpHeaders();
    headers.setLocation(toUri("queries"));
    return new ResponseEntity<>(queryListAsJson, headers, HttpStatus.OK);
}
Example 26
Project: kaa-master  File: GroupController.java View source code
//TODO move to ProfileController?
/**
   * Gets the endpoint profile by endpoint group id.
   *
   * @param endpointGroupId the endpoint group id
   * @param limit           the limit
   * @param offset          the offset
   * @param request         the request
   * @return the endpoint profiles page dto
   * @throws KaaAdminServiceException the kaa admin service exception
   */
@ApiOperation(value = "Get endpoint profiles based on endpoint group id", notes = "Returns the endpoint profiles based on endpoint group id. " + "Only users with the TENANT_DEVELOPER or TENANT_USER role are allowed " + "to request this information. Default limit value equals \"20\", " + "default offset value equals \"0\". Maximum limit value is \"500\".")
@ApiResponses(value = { @ApiResponse(code = 400, message = "Invalid endpointGroupId/limit/offset supplied"), @ApiResponse(code = 401, message = "The user is not authenticated or invalid credentials were provided"), @ApiResponse(code = 403, message = "The authenticated user does not have the " + "required role (TENANT_DEVELOPER or TENANT_USER) or the Tenant ID " + "of the application does not match the Tenant ID of the authenticated user"), @ApiResponse(code = 404, message = "Endpoint group with the specified endpointGroupId does not exist"), @ApiResponse(code = 500, message = "An unexpected error occurred on the server side") })
@RequestMapping(value = "endpointProfileByGroupId", method = RequestMethod.GET, produces = APPLICATION_JSON_VALUE)
@ResponseBody
public EndpointProfilesPageDto getEndpointProfileByEndpointGroupId(@ApiParam(name = "endpointGroupId", value = "The id of the endpoint group.", required = true) @RequestParam("endpointGroupId") String endpointGroupId, @ApiParam(name = "limit", value = "The maximum number of shown profiles. (optional parameter)", defaultValue = DEFAULT_LIMIT, required = false) @RequestParam(value = "limit", defaultValue = DEFAULT_LIMIT, required = false) String limit, @ApiParam(name = "offset", value = "The offset from beginning of profiles list. (Optional parameter)", defaultValue = DEFAULT_OFFSET, required = false) @RequestParam(value = "offset", defaultValue = DEFAULT_OFFSET, required = false) String offset, HttpServletRequest request) throws KaaAdminServiceException {
    EndpointProfilesPageDto endpointProfilesPageDto = groupService.getEndpointProfileByEndpointGroupId(endpointGroupId, limit, offset);
    if (endpointProfilesPageDto.hasEndpointProfiles()) {
        PageLinkDto pageLinkDto = createNext(endpointProfilesPageDto.getPageLinkDto(), request);
        endpointProfilesPageDto.setNext(pageLinkDto.getNext());
    }
    return endpointProfilesPageDto;
}
Example 27
Project: swagger-core-master  File: Reader.java View source code
private Swagger read(Class<?> cls, String parentPath, String parentMethod, boolean isSubresource, String[] parentConsumes, String[] parentProduces, Map<String, Tag> parentTags, List<Parameter> parentParameters, Set<Class<?>> scannedResources) {
    Map<String, Tag> tags = new LinkedHashMap<String, Tag>();
    List<SecurityRequirement> securities = new ArrayList<SecurityRequirement>();
    String[] consumes = new String[0];
    String[] produces = new String[0];
    final Set<Scheme> globalSchemes = EnumSet.noneOf(Scheme.class);
    Api api = ReflectionUtils.getAnnotation(cls, Api.class);
    boolean hasPathAnnotation = (ReflectionUtils.getAnnotation(cls, javax.ws.rs.Path.class) != null);
    boolean hasApiAnnotation = (api != null);
    boolean isApiHidden = hasApiAnnotation && api.hidden();
    // class readable only if annotated with ((@Path and @Api) or isSubresource ) - and @Api not hidden
    boolean classReadable = ((hasPathAnnotation && hasApiAnnotation) || isSubresource) && !isApiHidden;
    // with scanAllResources true in config and @Api not hidden scan only if it has also @Path annotation or is subresource
    boolean scanAll = !isApiHidden && config.isScanAllResources() && (hasPathAnnotation || isSubresource);
    // readable if classReadable or scanAll
    boolean readable = classReadable || scanAll;
    if (!readable) {
        return swagger;
    }
    // api readable only if @Api present; cannot be hidden because checked in classReadable.
    boolean apiReadable = hasApiAnnotation;
    if (apiReadable) {
        // the value will be used as a tag for 2.0 UNLESS a Tags annotation is present
        Set<String> tagStrings = extractTags(api);
        for (String tagString : tagStrings) {
            Tag tag = new Tag().name(tagString);
            tags.put(tagString, tag);
        }
        for (String tagName : tags.keySet()) {
            swagger.tag(tags.get(tagName));
        }
        if (!api.produces().isEmpty()) {
            produces = ReaderUtils.splitContentValues(new String[] { api.produces() });
        }
        if (!api.consumes().isEmpty()) {
            consumes = ReaderUtils.splitContentValues(new String[] { api.consumes() });
        }
        globalSchemes.addAll(parseSchemes(api.protocols()));
        for (Authorization auth : api.authorizations()) {
            if (auth.value() != null && !auth.value().isEmpty()) {
                SecurityRequirement security = new SecurityRequirement();
                security.setName(auth.value());
                for (AuthorizationScope scope : auth.scopes()) {
                    if (scope.scope() != null && !scope.scope().isEmpty()) {
                        security.addScope(scope.scope());
                    }
                }
                securities.add(security);
            }
        }
    }
    if (readable) {
        if (isSubresource) {
            if (parentTags != null) {
                tags.putAll(parentTags);
            }
        }
        // merge consumes, produces
        if (consumes.length == 0 && cls.getAnnotation(Consumes.class) != null) {
            consumes = ReaderUtils.splitContentValues(cls.getAnnotation(Consumes.class).value());
        }
        if (produces.length == 0 && cls.getAnnotation(Produces.class) != null) {
            produces = ReaderUtils.splitContentValues(cls.getAnnotation(Produces.class).value());
        }
        // look for method-level annotated properties
        // handle sub-resources by looking at return type
        final List<Parameter> globalParameters = new ArrayList<Parameter>();
        // look for constructor-level annotated properties
        globalParameters.addAll(ReaderUtils.collectConstructorParameters(cls, swagger));
        // look for field-level annotated properties
        globalParameters.addAll(ReaderUtils.collectFieldParameters(cls, swagger));
        // build class/interface level @ApiResponse list
        ApiResponses classResponseAnnotation = ReflectionUtils.getAnnotation(cls, ApiResponses.class);
        List<ApiResponse> classApiResponses = new ArrayList<ApiResponse>();
        if (classResponseAnnotation != null) {
            classApiResponses.addAll(Arrays.asList(classResponseAnnotation.value()));
        }
        // parse the method
        final javax.ws.rs.Path apiPath = ReflectionUtils.getAnnotation(cls, javax.ws.rs.Path.class);
        JavaType classType = TypeFactory.defaultInstance().constructType(cls);
        BeanDescription bd = new ObjectMapper().getSerializationConfig().introspect(classType);
        Method methods[] = cls.getMethods();
        for (Method method : methods) {
            AnnotatedMethod annotatedMethod = bd.findMethod(method.getName(), method.getParameterTypes());
            if (ReflectionUtils.isOverriddenMethod(method, cls)) {
                continue;
            }
            javax.ws.rs.Path methodPath = ReflectionUtils.getAnnotation(method, javax.ws.rs.Path.class);
            String operationPath = getPath(apiPath, methodPath, parentPath);
            Map<String, String> regexMap = new LinkedHashMap<String, String>();
            operationPath = PathUtils.parsePath(operationPath, regexMap);
            if (operationPath != null) {
                if (isIgnored(operationPath)) {
                    continue;
                }
                final ApiOperation apiOperation = ReflectionUtils.getAnnotation(method, ApiOperation.class);
                String httpMethod = extractOperationMethod(apiOperation, method, SwaggerExtensions.chain());
                Operation operation = null;
                if (apiOperation != null || config.isScanAllResources() || httpMethod != null || methodPath != null) {
                    operation = parseMethod(cls, method, annotatedMethod, globalParameters, classApiResponses);
                }
                if (operation == null) {
                    continue;
                }
                if (parentParameters != null) {
                    for (Parameter param : parentParameters) {
                        operation.parameter(param);
                    }
                }
                for (Parameter param : operation.getParameters()) {
                    if (regexMap.get(param.getName()) != null) {
                        String pattern = regexMap.get(param.getName());
                        param.setPattern(pattern);
                    }
                }
                if (apiOperation != null) {
                    for (Scheme scheme : parseSchemes(apiOperation.protocols())) {
                        operation.scheme(scheme);
                    }
                }
                if (operation.getSchemes() == null || operation.getSchemes().isEmpty()) {
                    for (Scheme scheme : globalSchemes) {
                        operation.scheme(scheme);
                    }
                }
                String[] apiConsumes = consumes;
                if (parentConsumes != null) {
                    Set<String> both = new LinkedHashSet<String>(Arrays.asList(apiConsumes));
                    both.addAll(new LinkedHashSet<String>(Arrays.asList(parentConsumes)));
                    if (operation.getConsumes() != null) {
                        both.addAll(new LinkedHashSet<String>(operation.getConsumes()));
                    }
                    apiConsumes = both.toArray(new String[both.size()]);
                }
                String[] apiProduces = produces;
                if (parentProduces != null) {
                    Set<String> both = new LinkedHashSet<String>(Arrays.asList(apiProduces));
                    both.addAll(new LinkedHashSet<String>(Arrays.asList(parentProduces)));
                    if (operation.getProduces() != null) {
                        both.addAll(new LinkedHashSet<String>(operation.getProduces()));
                    }
                    apiProduces = both.toArray(new String[both.size()]);
                }
                final Class<?> subResource = getSubResourceWithJaxRsSubresourceLocatorSpecs(method);
                if (subResource != null && !scannedResources.contains(subResource)) {
                    scannedResources.add(subResource);
                    read(subResource, operationPath, httpMethod, true, apiConsumes, apiProduces, tags, operation.getParameters(), scannedResources);
                    // remove the sub resource so that it can visit it later in another path
                    // but we have a room for optimization in the future to reuse the scanned result
                    // by caching the scanned resources in the reader instance to avoid actual scanning
                    // the the resources again
                    scannedResources.remove(subResource);
                }
                // can't continue without a valid http method
                httpMethod = (httpMethod == null) ? parentMethod : httpMethod;
                if (httpMethod != null) {
                    if (apiOperation != null) {
                        for (String tag : apiOperation.tags()) {
                            if (!"".equals(tag)) {
                                operation.tag(tag);
                                swagger.tag(new Tag().name(tag));
                            }
                        }
                        operation.getVendorExtensions().putAll(BaseReaderUtils.parseExtensions(apiOperation.extensions()));
                    }
                    if (operation.getConsumes() == null) {
                        for (String mediaType : apiConsumes) {
                            operation.consumes(mediaType);
                        }
                    }
                    if (operation.getProduces() == null) {
                        for (String mediaType : apiProduces) {
                            operation.produces(mediaType);
                        }
                    }
                    if (operation.getTags() == null) {
                        for (String tagString : tags.keySet()) {
                            operation.tag(tagString);
                        }
                    }
                    // Only add global @Api securities if operation doesn't already have more specific securities
                    if (operation.getSecurity() == null) {
                        for (SecurityRequirement security : securities) {
                            operation.security(security);
                        }
                    }
                    Path path = swagger.getPath(operationPath);
                    if (path == null) {
                        path = new Path();
                        swagger.path(operationPath, path);
                    }
                    path.set(httpMethod, operation);
                    readImplicitParameters(method, operation);
                    readExternalDocs(method, operation);
                }
            }
        }
    }
    return swagger;
}
Example 28
Project: teiid-master  File: RestASMBasedWebArchiveBuilder.java View source code
private void buildRestService(String vdbName, String vdbVersion, String modelName, Procedure procedure, String method, String uri, ClassWriter cw, String contentType, String charSet, boolean passthroughAuth) {
    List<ProcedureParameter> params = new ArrayList<ProcedureParameter>(procedure.getParameters().size());
    boolean usingReturn = false;
    boolean hasLobInput = false;
    for (ProcedureParameter p : procedure.getParameters()) {
        if (p.getType() == Type.In || p.getType() == Type.InOut) {
            params.add(p);
        } else if (p.getType() == Type.ReturnValue && procedure.getResultSet() == null) {
            usingReturn = true;
        }
        if (!hasLobInput) {
            String runtimeType = p.getRuntimeType();
            hasLobInput = DataTypeManager.isLOB(runtimeType);
        }
    }
    int paramsSize = params.size();
    MethodVisitor mv;
    boolean useMultipart = false;
    if (method.toUpperCase().equals("POST") && hasLobInput) {
        useMultipart = true;
    }
    AnnotationVisitor av0;
    {
        StringBuilder paramSignature = new StringBuilder();
        paramSignature.append("(");
        for (int i = 0; i < paramsSize; i++) {
            paramSignature.append("Ljava/lang/String;");
        }
        paramSignature.append(")");
        if (useMultipart) {
            mv = cw.visitMethod(ACC_PUBLIC, procedure.getName() + contentType.replace('/', '_'), "(Lorg/jboss/resteasy/plugins/providers/multipart/MultipartFormDataInput;)Ljavax/ws/rs/core/StreamingOutput;", null, new String[] { "javax/ws/rs/WebApplicationException" });
        } else {
            mv = cw.visitMethod(ACC_PUBLIC, procedure.getName() + contentType.replace('/', '_'), paramSignature + "Ljavax/ws/rs/core/StreamingOutput;", null, new String[] { "javax/ws/rs/WebApplicationException" });
        }
        {
            av0 = mv.visitAnnotation("Ljavax/ws/rs/Produces;", true);
            {
                AnnotationVisitor av1 = av0.visitArray("value");
                av1.visit(null, contentType);
                av1.visitEnd();
            }
            av0.visitEnd();
        }
        {
            av0 = mv.visitAnnotation("Ljavax/ws/rs/" + method.toUpperCase() + ";", true);
            av0.visitEnd();
        }
        {
            av0 = mv.visitAnnotation("Ljavax/ws/rs/Path;", true);
            av0.visit("value", uri);
            av0.visitEnd();
        }
        {
            av0 = mv.visitAnnotation("Ljavax/annotation/security/PermitAll;", true);
            av0.visitEnd();
        }
        {
            av0 = mv.visitAnnotation("Lio/swagger/annotations/ApiOperation;", true);
            av0.visit("value", procedure.getName());
            av0.visitEnd();
        }
        {
            av0 = mv.visitAnnotation("Lio/swagger/annotations/ApiResponses;", true);
            ApiResponse[] array = new ApiResponse[] {};
            AnnotationVisitor av1 = av0.visitArray("value");
            for (int i = 0; i < array.length; i++) {
                av1.visit("value", array[i]);
            }
            av1.visitEnd();
            av0.visitEnd();
        }
        if (useMultipart) {
            av0 = mv.visitAnnotation("Ljavax/ws/rs/Consumes;", true);
            {
                AnnotationVisitor av1 = av0.visitArray("value");
                av1.visit(null, "multipart/form-data");
                av1.visitEnd();
            }
            av0.visitEnd();
        }
        if (!useMultipart) {
            // post only accepts Form inputs, not path params
            HashSet<String> pathParms = getPathParameters(uri);
            for (int i = 0; i < paramsSize; i++) {
                String paramType = "Ljavax/ws/rs/FormParam;";
                if (method.toUpperCase().equals("GET")) {
                    paramType = "Ljavax/ws/rs/QueryParam;";
                }
                if (pathParms.contains(params.get(i).getName())) {
                    paramType = "Ljavax/ws/rs/PathParam;";
                }
                av0 = mv.visitParameterAnnotation(i, paramType, true);
                av0.visit("value", params.get(i).getName());
                av0.visitEnd();
                av0 = mv.visitParameterAnnotation(i, "Lio/swagger/annotations/ApiParam;", true);
                av0.visit("value", params.get(i).getName());
                av0.visitEnd();
            }
        }
        mv.visitCode();
        Label l0 = new Label();
        Label l1 = new Label();
        Label l2 = new Label();
        mv.visitTryCatchBlock(l0, l1, l2, "java/sql/SQLException");
        mv.visitLabel(l0);
        if (!useMultipart) {
            mv.visitTypeInsn(NEW, "java/util/LinkedHashMap");
            mv.visitInsn(DUP);
            mv.visitMethodInsn(INVOKESPECIAL, "java/util/LinkedHashMap", "<init>", "()V");
            mv.visitVarInsn(ASTORE, paramsSize + 1);
            for (int i = 0; i < paramsSize; i++) {
                mv.visitVarInsn(ALOAD, paramsSize + 1);
                mv.visitLdcInsn(params.get(i).getName());
                mv.visitVarInsn(ALOAD, i + 1);
                mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Map", "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
                mv.visitInsn(POP);
            }
            mv.visitVarInsn(ALOAD, 0);
            mv.visitLdcInsn(vdbName);
            mv.visitLdcInsn(vdbVersion);
            mv.visitLdcInsn(procedure.getSQLString());
            mv.visitVarInsn(ALOAD, paramsSize + 1);
            mv.visitLdcInsn(charSet == null ? "" : charSet);
            mv.visitInsn(passthroughAuth ? ICONST_1 : ICONST_0);
            mv.visitInsn(usingReturn ? ICONST_1 : ICONST_0);
            mv.visitMethodInsn(INVOKEVIRTUAL, "org/teiid/jboss/rest/" + modelName, "execute", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/LinkedHashMap;Ljava/lang/String;ZZ)Ljavax/ws/rs/core/StreamingOutput;");
            mv.visitLabel(l1);
            mv.visitInsn(ARETURN);
            mv.visitLabel(l2);
            mv.visitFrame(F_SAME1, 0, null, 1, new Object[] { "java/sql/SQLException" });
            mv.visitVarInsn(ASTORE, paramsSize + 1);
            mv.visitTypeInsn(NEW, "javax/ws/rs/WebApplicationException");
            mv.visitInsn(DUP);
            mv.visitVarInsn(ALOAD, paramsSize + 1);
            mv.visitFieldInsn(GETSTATIC, "javax/ws/rs/core/Response$Status", "INTERNAL_SERVER_ERROR", "Ljavax/ws/rs/core/Response$Status;");
            mv.visitMethodInsn(INVOKESPECIAL, "javax/ws/rs/WebApplicationException", "<init>", "(Ljava/lang/Throwable;Ljavax/ws/rs/core/Response$Status;)V");
            mv.visitInsn(ATHROW);
            mv.visitMaxs(7, paramsSize + 2);
            mv.visitEnd();
        } else {
            mv.visitVarInsn(ALOAD, 0);
            mv.visitLdcInsn(vdbName);
            mv.visitLdcInsn(vdbVersion);
            mv.visitLdcInsn(procedure.getSQLString());
            mv.visitVarInsn(ALOAD, 1);
            mv.visitLdcInsn(charSet == null ? "" : charSet);
            mv.visitInsn(passthroughAuth ? ICONST_1 : ICONST_0);
            mv.visitInsn(usingReturn ? ICONST_1 : ICONST_0);
            mv.visitMethodInsn(INVOKEVIRTUAL, "org/teiid/jboss/rest/" + modelName, "executePost", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jboss/resteasy/plugins/providers/multipart/MultipartFormDataInput;Ljava/lang/String;ZZ)Ljavax/ws/rs/core/StreamingOutput;");
            mv.visitLabel(l1);
            mv.visitInsn(ARETURN);
            mv.visitLabel(l2);
            mv.visitFrame(Opcodes.F_SAME1, 0, null, 1, new Object[] { "java/sql/SQLException" });
            mv.visitVarInsn(ASTORE, 2);
            mv.visitTypeInsn(NEW, "javax/ws/rs/WebApplicationException");
            mv.visitInsn(DUP);
            mv.visitVarInsn(ALOAD, 2);
            mv.visitFieldInsn(GETSTATIC, "javax/ws/rs/core/Response$Status", "INTERNAL_SERVER_ERROR", "Ljavax/ws/rs/core/Response$Status;");
            mv.visitMethodInsn(INVOKESPECIAL, "javax/ws/rs/WebApplicationException", "<init>", "(Ljava/lang/Throwable;Ljavax/ws/rs/core/Response$Status;)V");
            mv.visitInsn(ATHROW);
            mv.visitMaxs(8, 3);
            mv.visitEnd();
        }
    }
}
Example 29
Project: REST-OCD-Services-master  File: ServiceClass.java View source code
//////////////////////////////////////////////////////////////////////////
//////////// GRAPHS
//////////////////////////////////////////////////////////////////////////
/**
     * Imports a graph.
     * @param nameStr The name for the graph.
     * @param creationTypeStr The creation type the graph was created by.
     * @param graphInputFormatStr The name of the graph input format.
     * @param doMakeUndirectedStr Optional query parameter. Defines whether directed edges shall be turned into undirected edges (TRUE) or not.
     * @param startDateStr Optional query parameter. For big graphs start date is the date from which the file will start parse.
     * @param endDateStr Optional query parameter. For big graphs end date is the date till which the file will parse.
     * @param indexPathStr Optional query parameter. Set index directory.
     * @param filePathStr Optional query parameter. For testing purpose, file location of local file can be given.
     * @param contentStr The graph input.
     * @return A graph id xml.
     * Or an error xml.
     */
@POST
@Path("graphs")
@Produces(MediaType.TEXT_XML)
@Consumes(MediaType.TEXT_PLAIN)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Success"), @ApiResponse(code = 401, message = "Unauthorized") })
@ApiOperation(value = "User validation", notes = "Imports a graph.")
public String createGraph(@DefaultValue("unnamed") @QueryParam("name") String nameStr, @DefaultValue("UNDEFINED") @QueryParam("creationType") String creationTypeStr, @DefaultValue("GRAPH_ML") @QueryParam("inputFormat") String graphInputFormatStr, @DefaultValue("FALSE") @QueryParam("doMakeUndirected") String doMakeUndirectedStr, @DefaultValue("2004-01-01") @QueryParam("startDate") String startDateStr, @DefaultValue("2004-01-20") @QueryParam("endDate") String endDateStr, @DefaultValue("indexes") @QueryParam("indexPath") String indexPathStr, @DefaultValue("ocd/test/input/stackexAcademia.xml") @QueryParam("filePath") String filePathStr, @ContentParam String contentStr) {
    try {
        String username = ((UserAgent) getActiveAgent()).getLoginName();
        GraphInputFormat format;
        CustomGraph graph;
        try {
            format = GraphInputFormat.valueOf(graphInputFormatStr);
        } catch (Exception e) {
            requestHandler.log(Level.WARNING, "user: " + username, e);
            return requestHandler.writeError(Error.PARAMETER_INVALID, "Specified input format does not exist.");
        }
        GraphCreationType benchmarkType;
        try {
            benchmarkType = GraphCreationType.valueOf(creationTypeStr);
        } catch (Exception e) {
            requestHandler.log(Level.WARNING, "user: " + username, e);
            return requestHandler.writeError(Error.PARAMETER_INVALID, "Specified input format does not exist.");
        }
        try {
            int subDirName = 0;
            File indexPathDir = new File(indexPathStr);
            if (indexPathDir.exists()) {
                for (String subDir : indexPathDir.list()) {
                    if (Integer.parseInt(subDir) == subDirName) {
                        subDirName++;
                    }
                }
            }
            indexPathStr = indexPathStr + File.separator + String.valueOf(subDirName);
        } catch (Exception e) {
            requestHandler.log(Level.WARNING, "user: " + username, e);
            return requestHandler.writeError(Error.INTERNAL, "Index path exception.");
        }
        try {
            Map<String, String> param = new HashMap<String, String>();
            if (format == GraphInputFormat.NODE_CONTENT_EDGE_LIST || format == GraphInputFormat.XML) {
                param.put("startDate", startDateStr);
                param.put("endDate", endDateStr);
                if (format == GraphInputFormat.XML) {
                    param.put("indexPath", indexPathStr);
                    param.put("filePath", filePathStr);
                } else {
                    param.put("path", indexPathStr);
                }
            }
            graph = requestHandler.parseGraph(contentStr, format, param);
        } catch (Exception e) {
            requestHandler.log(Level.WARNING, "user: " + username, e);
            return requestHandler.writeError(Error.PARAMETER_INVALID, "Input graph does not correspond to the specified format.");
        }
        boolean doMakeUndirected;
        try {
            doMakeUndirected = requestHandler.parseBoolean(doMakeUndirectedStr);
        } catch (Exception e) {
            requestHandler.log(Level.WARNING, "user: " + username, e);
            return requestHandler.writeError(Error.PARAMETER_INVALID, "Do make undirected ist not a boolean value.");
        }
        graph.setUserName(username);
        graph.setName(URLDecoder.decode(nameStr, "UTF-8"));
        GraphCreationLog log = new GraphCreationLog(benchmarkType, new HashMap<String, String>());
        log.setStatus(ExecutionStatus.COMPLETED);
        graph.setCreationMethod(log);
        GraphProcessor processor = new GraphProcessor();
        processor.determineGraphTypes(graph);
        if (doMakeUndirected) {
            Set<GraphType> graphTypes = graph.getTypes();
            if (graphTypes.remove(GraphType.DIRECTED)) {
                processor.makeCompatible(graph, graphTypes);
            }
        }
        EntityManager em = requestHandler.getEntityManager();
        EntityTransaction tx = em.getTransaction();
        try {
            tx.begin();
            em.persist(graph);
            tx.commit();
        } catch (RuntimeException e) {
            if (tx != null && tx.isActive()) {
                tx.rollback();
            }
            throw e;
        }
        em.close();
        return requestHandler.writeId(graph);
    } catch (Exception e) {
        requestHandler.log(Level.SEVERE, "", e);
        return requestHandler.writeError(Error.INTERNAL, "Internal system error.");
    }
}
Example 30
Project: netphony-topology-master  File: ConfigApi.java View source code
@POST
@Path("/virtualizer/")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@io.swagger.annotations.ApiOperation(value = "Create virtualizer by ID", notes = "Create operation of resource: virtualizer", response = void.class, tags = {})
@io.swagger.annotations.ApiResponses(value = { @io.swagger.annotations.ApiResponse(code = 200, message = "Successful operation", response = void.class), @io.swagger.annotations.ApiResponse(code = 400, message = "Internal Error", response = void.class) })
public Response createVirtualizerById(@ApiParam(value = "virtualizerbody object", required = true) VirtualizerSchema virtualizer, @Context SecurityContext securityContext) throws NotFoundException {
    return delegate.createVirtualizerById(virtualizer, securityContext);
}
Example 31
Project: siddhi-master  File: SiddhiApi.java View source code
@POST
@Path("/artifact/deploy")
@Consumes({ "text/plain" })
@Produces({ "application/json" })
@io.swagger.annotations.ApiOperation(value = "", notes = "Deploys the execution plan. Request **executionPlan** " + "explains the Siddhi Query ", response = Success.class, tags = {})
@io.swagger.annotations.ApiResponses(value = { @io.swagger.annotations.ApiResponse(code = 200, message = "Successful response", response = Success.class), @io.swagger.annotations.ApiResponse(code = 200, message = "Unexpected error", response = Success.class) })
public Response siddhiArtifactDeployPost(@ApiParam(value = "Siddhi Execution Plan", required = true) String body) throws NotFoundException {
    return delegate.siddhiArtifactDeployPost(body);
}
Example 32
Project: fullstop-master  File: ViolationTypesController.java View source code
@RequestMapping(method = GET)
@ApiResponses(@ApiResponse(code = 200, message = "The list of all available violation types", response = ViolationType.class, responseContainer = "List"))
public List<ViolationType> getAll() {
    return violationTypeRepository.findAll().stream().map(entityToDto::convert).collect(toList());
}
Example 33
Project: ORCID-Source-master  File: IdentifierApiServiceImplV2_0.java View source code
/**
     * @return Available external-id types in the ORCID registry
     */
@GET
@Produces(value = { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Path("")
@ApiOperation(value = "Fetch identifier type map.  Defaults to English descriptions", authorizations = { @Authorization(value = "orcid_two_legs", scopes = { @AuthorizationScope(scope = ScopeConstants.READ_PUBLIC, description = "you need this") }) })
@ApiResponses(value = { @ApiResponse(code = 200, message = "") })
public Response viewIdentifierTypes(@ApiParam() @QueryParam("locale") String locale) {
    if (locale == null || locale.isEmpty())
        locale = "en";
    return serviceDelegator.getIdentifierTypes(locale);
}
Example 34
Project: camelinaction2-master  File: RestOrderService.java View source code
/**
     * The GET order by id operation
     */
@GET
@Path("/{id}")
@ApiOperation(value = "Get order", response = Order.class)
@ApiResponses({ @ApiResponse(code = 200, response = String.class, message = "The found order"), @ApiResponse(code = 404, response = String.class, message = "Cannot find order with the id") })
public Response getOrder(@ApiParam(value = "The id of the order", required = true) @PathParam("id") int orderId) {
    Order order = orderService.getOrder(orderId);
    if (order != null) {
        return Response.ok(order).build();
    } else {
        return Response.status(Response.Status.NOT_FOUND).build();
    }
}
Example 35
Project: typescript-generator-master  File: SwaggerTest.java View source code
@ApiResponses({ @ApiResponse(code = 400, message = "", response = TestError.class) })
@GET
public Response testOperationError() {
    return Response.status(Response.Status.BAD_REQUEST).build();
}
Example 36
Project: gondor-master  File: ClusterController.java View source code
@RequestMapping(value = "", method = RequestMethod.POST, consumes = { MediaType.APPLICATION_JSON_VALUE })
@ResponseStatus(value = HttpStatus.OK)
@ApiOperation(value = "create  cluster", consumes = MediaType.APPLICATION_JSON_VALUE)
@ApiResponses(value = { @ApiResponse(code = 200, message = "") })
public void createCluster(@ApiParam(value = "cluster", required = true) @RequestBody Cluster cluster) {
    LOG.trace("Method: createCluster called.");
    clusterManager.createCluster(cluster);
}
Example 37
Project: cerebro-master  File: CerebroController.java View source code
//SOURCES
@RequestMapping(value = "/datasources/locations", method = RequestMethod.GET)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Returns the datasource backend location(s)") })
public Collection<URI> sources() {
    return graphiteSources.getIpportsByUrl().keySet();
}