
com.reprezen.genflow.swagger.doc.OpDoc Maven / Gradle / Ivy
The newest version!
/**
* Copyright © 2013, 2016 Modelsolv, Inc.
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains the property
* of ModelSolv, Inc. See the file license.html in the root directory of
* this project for further information.
*/
package com.reprezen.genflow.swagger.doc;
import com.google.common.base.Objects;
import com.reprezen.genflow.swagger.doc.AttributeHelper;
import com.reprezen.genflow.swagger.doc.DocHelper;
import com.reprezen.genflow.swagger.doc.ExamplesHelper;
import com.reprezen.genflow.swagger.doc.HelperHelper;
import com.reprezen.genflow.swagger.doc.HtmlHelper;
import com.reprezen.genflow.swagger.doc.MimeTypeHelper;
import com.reprezen.genflow.swagger.doc.MiscHelper;
import com.reprezen.genflow.swagger.doc.OptionHelper;
import com.reprezen.genflow.swagger.doc.ParamsDoc;
import com.reprezen.genflow.swagger.doc.ResponseHelper;
import com.reprezen.genflow.swagger.doc.SchemaHelper;
import com.reprezen.genflow.swagger.doc.TagHelper;
import io.swagger.models.HttpMethod;
import io.swagger.models.Model;
import io.swagger.models.Operation;
import io.swagger.models.Response;
import io.swagger.models.parameters.BodyParameter;
import io.swagger.models.parameters.Parameter;
import java.util.List;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.xbase.lib.Exceptions;
import org.eclipse.xtext.xbase.lib.Extension;
import org.eclipse.xtext.xbase.lib.Functions.Function1;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
@SuppressWarnings("all")
public class OpDoc {
private final Operation op;
@Extension
private DocHelper _docHelper = HelperHelper.getDocHelper();
@Extension
private TagHelper _tagHelper = HelperHelper.getTagHelper();
@Extension
private SchemaHelper _schemaHelper = HelperHelper.getSchemaHelper();
@Extension
private ResponseHelper _responseHelper = HelperHelper.getResponseHelper();
@Extension
private HtmlHelper _htmlHelper = HelperHelper.getHtmlHelper();
@Extension
private MiscHelper _miscHelper = HelperHelper.getMiscHelper();
@Extension
private OptionHelper _optionHelper = HelperHelper.getOptionHelper();
@Extension
private AttributeHelper _attributeHelper = HelperHelper.getAttributeHelper();
@Extension
private ExamplesHelper _examplesHelper = HelperHelper.getExamplesHelper();
public OpDoc(final Operation op) {
this.op = op;
}
public CharSequence getHtml(final HttpMethod method) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append("");
_builder.append(method);
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append("");
CharSequence _deprecate = this.deprecate(this.op.getOperationId(), this.op.isDeprecated());
_builder.append(_deprecate);
_builder.append("
");
_builder.newLineIfNotEmpty();
CharSequence _tagBadges = this._tagHelper.getTagBadges(this.op);
_builder.append(_tagBadges);
_builder.newLineIfNotEmpty();
{
Boolean _isPreview = this._optionHelper.isPreview();
if ((_isPreview).booleanValue()) {
_builder.append(" ");
_builder.newLine();
_builder.append("");
_builder.newLine();
_builder.append("\t\t");
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append("");
_builder.newLine();
}
}
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("- ");
String _docHtml = this._docHelper.getDocHtml(this.op.getSummary(), this.op.getDescription());
_builder.append(_docHtml, " ");
_builder.append("
");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("- ");
_builder.newLine();
_builder.append(" ");
_builder.append("
Media Types
");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("Consumes ");
CharSequence _html = MimeTypeHelper.getHtml(this.op.getConsumes());
_builder.append(_html, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("Produces ");
CharSequence _html_1 = MimeTypeHelper.getHtml(this.op.getProduces());
_builder.append(_html_1, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("
");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
CharSequence _paramsHtml = new ParamsDoc().paramsHtml(this.getNonBodyParameters(this.op));
_builder.append(_paramsHtml, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
String _messageBodyHtml = this.getMessageBodyHtml(this.op, method);
_builder.append(_messageBodyHtml, " ");
_builder.newLineIfNotEmpty();
_builder.append("
");
_builder.newLine();
return _builder;
}
public List getNonBodyParameters(final Operation op) {
List _parameters = op.getParameters();
Iterable _filter = null;
if (_parameters!=null) {
final Function1 _function = (Parameter it) -> {
String _in = it.getIn();
return Boolean.valueOf((!Objects.equal(_in, "body")));
};
_filter=IterableExtensions.filter(_parameters, _function);
}
return IterableExtensions.toList(_filter);
}
public BodyParameter getBodyParameter(final Operation op) {
List _parameters = op.getParameters();
Iterable _filter = null;
if (_parameters!=null) {
final Function1 _function = (Parameter it) -> {
String _in = it.getIn();
return Boolean.valueOf(Objects.equal(_in, "body"));
};
_filter=IterableExtensions.filter(_parameters, _function);
}
Parameter _last = IterableExtensions.last(_filter);
return ((BodyParameter) _last);
}
public String getMessageBodyHtml(final Operation op, final HttpMethod method) {
StringConcatenation _builder = new StringConcatenation();
BodyParameter _bodyParameter = this.getBodyParameter(op);
CharSequence _requestHtml = null;
if (_bodyParameter!=null) {
_requestHtml=this.getRequestHtml(_bodyParameter);
}
_builder.append(_requestHtml);
_builder.newLineIfNotEmpty();
{
List _sortByPosition = this._miscHelper.sortByPosition(op.getResponses().keySet(), op.getResponses());
for(final String code : _sortByPosition) {
CharSequence _responseHtml = this.getResponseHtml(op.getResponses().get(code), code);
_builder.append(_responseHtml);
}
}
_builder.newLineIfNotEmpty();
return _builder.toString();
}
public CharSequence getRequestHtml(final BodyParameter bodyParam) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("Request ");
String _chevron = this.chevron();
_builder.append(_chevron, " ");
_builder.append(" ");
String _schemaTitle = this._schemaHelper.getSchemaTitle(bodyParam.getSchema());
_builder.append(_schemaTitle, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
CharSequence _renderSchema = this._schemaHelper.renderSchema(bodyParam.getSchema());
_builder.append(_renderSchema, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
CharSequence _renderExamples = this._examplesHelper.renderExamples(bodyParam.getExamples());
_builder.append(_renderExamples, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
return _builder;
}
public CharSequence getResponseHtml(final Response response, final String status) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("Response ");
CharSequence _statusLabel = this.statusLabel(status);
_builder.append(_statusLabel, " ");
_builder.append(" ");
String _chevron = this.chevron();
_builder.append(_chevron, " ");
_builder.append(" ");
Model _responseSchema = response.getResponseSchema();
String _schemaTitle = null;
if (_responseSchema!=null) {
_schemaTitle=this._schemaHelper.getSchemaTitle(_responseSchema);
}
_builder.append(_schemaTitle, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
String _description = response.getDescription();
String _docHtml = null;
if (_description!=null) {
_docHtml=this._docHelper.getDocHtml(_description);
}
_builder.append(_docHtml, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
Model _responseSchema_1 = response.getResponseSchema();
CharSequence _renderSchema = null;
if (_responseSchema_1!=null) {
_renderSchema=this._schemaHelper.renderSchema(_responseSchema_1);
}
_builder.append(_renderSchema, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
CharSequence _responseHeaders = this.getResponseHeaders(response);
_builder.append(_responseHeaders, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
CharSequence _renderExamples = this._examplesHelper. ");
_builder.newLine();
return _builder;
}
private CharSequence getResponseHeaders(final Response response) {
CharSequence _xblockexpression = null;
{
final CharSequence html = this._responseHelper.getHeadersHtml(response);
CharSequence _xifexpression = null;
if ((html != null)) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("Headers
");
_builder.newLine();
_builder.append(html);
_builder.newLineIfNotEmpty();
_xifexpression = _builder;
}
_xblockexpression = _xifexpression;
}
return _xblockexpression;
}
public String chevron() {
return "";
}
public CharSequence statusLabel(final String status) {
CharSequence _xblockexpression = null;
{
String _xtrycatchfinallyexpression = null;
try {
String _switchResult = null;
int _parseInt = Integer.parseInt(status);
final int s = _parseInt;
boolean _matched = false;
if (((s >= 100) && (s < 200))) {
_matched=true;
_switchResult = "info";
}
if (!_matched) {
if (((s >= 200) && (s < 300))) {
_matched=true;
_switchResult = "success";
}
}
if (!_matched) {
if (((s >= 300) && (s < 400))) {
_matched=true;
_switchResult = "info";
}
}
if (!_matched) {
if (((s >= 400) && (s < 500))) {
_matched=true;
_switchResult = "danger";
}
}
if (!_matched) {
if (((s >= 500) && (s < 600))) {
_matched=true;
_switchResult = "danger";
}
}
if (!_matched) {
_switchResult = "default";
}
_xtrycatchfinallyexpression = _switchResult;
} catch (final Throwable _t) {
if (_t instanceof NumberFormatException) {
_xtrycatchfinallyexpression = status;
} else {
throw Exceptions.sneakyThrow(_t);
}
}
final String context = _xtrycatchfinallyexpression;
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.append(status);
_builder.append("");
_xblockexpression = _builder;
}
return _xblockexpression;
}
public CharSequence deprecate(final String text, final Boolean deprecated) {
CharSequence _xifexpression = null;
if (((deprecated != null) && (deprecated).booleanValue())) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.append(text);
_builder.append("");
_xifexpression = _builder;
} else {
_xifexpression = text;
}
return _xifexpression;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy