From bcabb03225f5e7a1b734cf88f7c20e50b8451f42 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Tue, 10 Jun 2014 20:05:19 -0700 Subject: [PATCH] added support for nickname generation --- .../swagger/codegen/BasicGenerator.scala | 23 ++++++++++++++----- .../com/wordnik/swagger/codegen/Codegen.scala | 3 +++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/main/scala/com/wordnik/swagger/codegen/BasicGenerator.scala b/src/main/scala/com/wordnik/swagger/codegen/BasicGenerator.scala index d0876bf47df..d1155e22604 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/BasicGenerator.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/BasicGenerator.scala @@ -329,18 +329,29 @@ abstract class BasicGenerator extends CodegenConfig with PathUtil { allImports --= containers allImports.foreach(i => { val model = toModelName(i) - if(!includedModels.contains(model)) { - if(!importMapping.containsKey(model)) { - if(!imports.flatten.map(m => m._2).toSet.contains(importScope + model)){ - imports += Map("import" -> (importScope + model)) - } + if(!includedModels.contains(model) && !importMapping.containsKey(model)) { + if(!imports.flatten.map(m => m._2).toSet.contains(importScope + model)){ + imports += Map("import" -> (importScope + model)) } } }) + val names = new HashSet[String] for((path, operation) <- operationList) { val op = codegen.apiToMap(path, operation) - o += Map("path" -> path) ++ op + val nickname = op.getOrElse("nickname", op("httpMethod")).asInstanceOf[String] + var updatedNickname = nickname + if(names.contains(nickname)) { + var counter = 0 + var done = false + while(!done) { + updatedNickname = nickname + "_" + className + "_" + counter + if(!names.contains(updatedNickname)) done = true + counter += 1 + } + } + names += updatedNickname + o += (Map("path" -> path) ++ op ++ Map("nickname" -> updatedNickname)) } operations += Map("operation" -> o) diff --git a/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala b/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala index 8d6423b7a5e..ac71ef78645 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala @@ -247,6 +247,9 @@ class Codegen(config: CodegenConfig) { params += "hasMore" -> "true" params += "allowMultiple" -> param.allowMultiple.toString + if(param.dataType == "File") params += "isFile" -> "true" + else params += "notFile" -> "true" + val u = param.dataType.indexOf("[") match { case -1 => config.toDeclaredType(param.dataType) case n: Int => {