private Operation findOperationById(OpenApi3 model, String operationId) { for (Path path : model.getPaths().values()) { for (Operation op : path.getOperations().values()) { if (operationId.equals(op.getOperationId())) { return op; } } } return null; }
public String getRequestType(final Operation operation) { String _xblockexpression = null; { RequestBody _requestBody = operation.getRequestBody(); boolean _tripleNotEquals = (_requestBody != null); if (_tripleNotEquals) { return this.typesProvider.computeType(operation.getRequestBody()); } StringConcatenation _builder = new StringConcatenation(); _xblockexpression = _builder.toString(); } return _xblockexpression; } }
values.put(k, operation.getRequestBody().getContentMediaTypes().get(k).getSchema()); }; IterableExtensions.<String>take(operation.getRequestBody().getContentMediaTypes().keySet(), 1).forEach(_function); final Consumer<Parameter> _function_1 = (Parameter it) -> { values.put(it.getName(), it); }; this._xtendHelper.<Parameter>andAlso(this._xtendHelper.<Parameter>safe(path.getParameters()), this._xtendHelper.<Parameter>safe(operation.getParameters())).forEach(_function_1); StringConcatenation _builder = new StringConcatenation(); _builder.append("\"request\": {"); } else { _builder.append(" "); CharSequence _generateRequestParameter_1 = this.generateRequestParameter(operation.getRequestBody(), ((Schema) next)); _builder.append(_generateRequestParameter_1, " "); _builder.newLineIfNotEmpty();
_builder.append("\t"); _builder.append("\"name\": \""); String _escapeEcmaScript = StringEscapeUtils.escapeEcmaScript(operation.getOperationId()); _builder.append(_escapeEcmaScript, "\t"); _builder.append("\","); _builder.newLine(); Set<Map.Entry<String, Response>> _entrySet = this._xtendHelper.<String, Response>sortedWith(this._xtendHelper.<String, Response>safe(operation.getResponses()), OpenApi3DiagramData.STATUS_CODE_COMPARATOR).entrySet(); boolean _hasElements = false; for(final Map.Entry<String, Response> entry : _entrySet) {
private void checkParameters(Link link, Operation op) { // TODO Q: parameter name is not sufficient to identify param in // operation; will // allow if it's unique, warn if // it's not Map<String, Integer> opParamCounts = getParamNameCounts(op.getParameters()); Map<String, String> params = link.getParameters(); for (String paramName : params.keySet()) { int count = opParamCounts.get(paramName); if (count == 0) { results.addError(msg(OpenApi3Messages.BadLinkParam, paramName), Overlay.of(params, paramName)); } else if (count > 1) { results.addWarning(msg(OpenApi3Messages.AmbigLinkParam, paramName), Overlay.of(params, paramName)); } } }
@Override public void runObjectValidations() { Operation operation = (Operation) value.getOverlay(); validateListField(F_tags, false, false, String.class, null); validateStringField(F_summary, false); validateStringField(F_description, false); validateField(F_externalDocs, false, ExternalDocs.class, new ExternalDocsValidator()); // TODO Q: Not marked as required in spec, but spec says they all must be unique // within the API. Seems like it should be required. validateStringField(F_operationId, false); validateListField(F_parameters, false, false, Parameter.class, new ParameterValidator()); validateField(F_requestBody, false, RequestBody.class, new RequestBodyValidator()); validateMapField(F_responses, true, false, Response.class, new ResponseValidator()); validateMapField(F_callbacks, false, false, Callback.class, new CallbackValidator()); validateListField(F_securityRequirements, false, false, SecurityRequirement.class, new SecurityRequirementValidator()); validateListField(F_servers, false, false, Server.class, new ServerValidator()); validateExtensions(operation.getExtensions()); } }
private void checkParameters(Link link, Operation op) { // TODO Q: parameter name is not sufficient to identify param in // operation; will // allow if it's unique, warn if // it's not Map<String, Integer> opParamCounts = getParamNameCounts(op.getParameters()); Map<String, String> params = link.getParameters(); for (String paramName : params.keySet()) { int count = opParamCounts.get(paramName); if (count == 0) { results.addError(msg(OpenApi3Messages.BadLinkParam, paramName), Overlay.of(params, paramName)); } else if (count > 1) { results.addWarning(msg(OpenApi3Messages.AmbigLinkParam, paramName), Overlay.of(params, paramName)); } } }
@Override public void runObjectValidations() { Operation operation = (Operation) value.getOverlay(); validateListField(F_tags, false, false, String.class, null); validateStringField(F_summary, false); validateStringField(F_description, false); validateField(F_externalDocs, false, ExternalDocs.class, new ExternalDocsValidator()); // TODO Q: Not marked as required in spec, but spec says they all must be unique // within the API. Seems like it should be required. validateStringField(F_operationId, false); validateListField(F_parameters, false, false, Parameter.class, new ParameterValidator()); validateField(F_requestBody, false, RequestBody.class, new RequestBodyValidator()); validateMapField(F_responses, true, false, Response.class, new ResponseValidator()); validateMapField(F_callbacks, false, false, Callback.class, new CallbackValidator()); validateListField(F_securityRequirements, false, false, SecurityRequirement.class, new SecurityRequirementValidator()); validateListField(F_servers, false, false, Server.class, new ServerValidator()); validateExtensions(operation.getExtensions()); } }
private Operation findOperationById(OpenApi3 model, String operationId) { for (Path path : model.getPaths().values()) { for (Operation op : path.getOperations().values()) { if (operationId.equals(op.getOperationId())) { return op; } } } return null; }