All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.reprezen.genflow.rapidml.doc.xtend.XGenerateSecuritySchemes.xtend Maven / Gradle / Ivy

There is a newer version: 1.4.2
Show 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.rapidml.doc.xtend

import com.reprezen.genflow.common.doc.XDocHelper
import com.reprezen.genflow.common.services.MethodServices
import com.reprezen.genflow.common.xtend.XImportHelper
import com.reprezen.genflow.common.xtend.XParameterHelper
import com.reprezen.genflow.common.xtend.XSecuritySchemeImportHelper
import com.reprezen.rapidml.SecurityScheme
import com.reprezen.rapidml.SecuritySchemeLibrary
import com.reprezen.rapidml.TypedResponse
import com.reprezen.rapidml.ZenModel

class XGenerateSecuritySchemes {
    extension XDocHelper docHelper
    val paramHelper = new XParameterHelper
    val XImportHelper importHelper
    val XSecuritySchemeImportHelper securitySchemeImportHelper
    
    new(XImportHelper importHelper, XSecuritySchemeImportHelper securitySchemeImportHelper, XDocHelper docHelper) {
        this.importHelper = importHelper
        this.securitySchemeImportHelper = securitySchemeImportHelper
        this.docHelper = docHelper
    }
    
    def String generateSecuritySchemes(ZenModel model) {
        '''
			«IF model.securitySchemesLibrary !== null»
				

«model.securitySchemesLibrary.name»

«FOR securityScheme : model.securitySchemesLibrary.securitySchemes» «generateSecurityScheme(securityScheme)» «ENDFOR»
«ENDIF» «FOR schemeModel : securitySchemeImportHelper.importedTypes.keySet» «generateImportedSecuritySchemes(schemeModel)» «ENDFOR» ''' } def protected generateSecurityScheme(SecurityScheme securityScheme) { '''

«securityScheme.name» («securityScheme.type»)

«securityScheme.generateDocItem» Method Invocation
    «IF !securityScheme.parameters.empty»
  • «XDocHelper.tableWithHeader("Authorization Parameters", "Name", "Location", "Type", "Documentation")» «FOR param : securityScheme.parameters» «param.name» «param.type.toString» «paramHelper.paramType(param.sourceReference, importHelper)» «param?.generateDoc» «ENDFOR»
  • «ENDIF» «IF !securityScheme.errorResponses.empty»
  • «XDocHelper.tableWithHeader("Error Responses", "Code", "Description", "Documentation")» «FOR response : securityScheme.errorResponses» «generateErrorResponse(response)» «ENDFOR»
  • «ENDIF»
«IF !securityScheme.scopes.empty» «XDocHelper.tableWithHeader("Defined Scopes", "Name", "Documentation")» «FOR scope : securityScheme.scopes» «scope.name» «scope.documentation?.text» «ENDFOR» «ENDIF» «IF !securityScheme.settings.empty» «XDocHelper.tableWithHeader("Settings", "Name", "Documentation", "Value")» «FOR setting : securityScheme.settings» «setting.name» «setting.documentation?.text» «setting.value» «ENDFOR» «ENDIF»
''' } def private generateErrorResponse(TypedResponse response) { ''' Error Response «response.statusCode» «MethodServices.getResponseStatusCodeDescription(response.statusCode)» «response.generateDoc» ''' } def private generateImportedSecuritySchemes(SecuritySchemeLibrary model) { '''

«securitySchemeImportHelper.getModelQualifiedName(model)»

«FOR dataType : securitySchemeImportHelper.importedTypes.get(model)» «generateSecurityScheme(dataType)» «ENDFOR»
''' } def boolean hasSecuritySchemes(ZenModel model) { val library = model.securitySchemesLibrary if (library !== null) !library.securitySchemes.isEmpty else false } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy