Skip to content

Commit

Permalink
Merge pull request #77 from cortinico/fix-73-dot-in-parameter-name
Browse files Browse the repository at this point in the history
Allow dot in parameter names for operations (#73)
  • Loading branch information
macisamuele committed Dec 30, 2019
2 parents ee4b22d + 6101e45 commit 01fbfbf
Show file tree
Hide file tree
Showing 7 changed files with 130 additions and 166 deletions.
2 changes: 1 addition & 1 deletion plugin/src/main/java/com/yelp/codegen/KotlinGenerator.kt
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@ class KotlinGenerator : SharedCodegen() {
* parameter name generation.
*/
override fun removeNonNameElementToCamelCase(name: String?): String {
return super.removeNonNameElementToCamelCase(name, "[-_:;#\\[\\]]")
return super.removeNonNameElementToCamelCase(name, "[-_:;.#\\[\\]]")
}

/**
Expand Down
2 changes: 1 addition & 1 deletion plugin/src/main/java/com/yelp/codegen/SharedCodegen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ internal const val X_OPERATION_ID = "x-operation-id"
internal const val X_UNSAFE_OPERATION = "x-unsafe-operation"

// Headers Names
internal const val HEADER_X_OPERATION_ID = "X-Operation-Id"
internal const val HEADER_X_OPERATION_ID = "X-Operation-ID"
internal const val HEADER_CONTENT_TYPE = "Content-Type"

abstract class SharedCodegen : DefaultCodegen(), CodegenConfig {
Expand Down
100 changes: 47 additions & 53 deletions samples/junit-tests/junit_tests_specs.json
Original file line number Diff line number Diff line change
Expand Up @@ -397,59 +397,6 @@
"version": "1.1.0"
},
"paths": {
"/brackets/in/parameter/name": {
"get": {
"description": "Make sure that brackets in parameter name are treated properly",
"operationId": "getBracketsInParameterName",
"parameters": [
{
"in": "query",
"name": "page",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "page[]",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "datePosted[before]",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "datePosted[strictly_before]",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "datePosted[after]",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "datePosted[strictly_after]",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation"
}
},
"summary": "Test brackets in parameter name",
"tags": [
"resource"
]
}
},
"/empty_endpoint": {
"get": {
"operationId": "get_empty_endpoint",
Expand Down Expand Up @@ -614,6 +561,53 @@
]
}
},
"/symbols/in/parameter/name": {
"get": {
"description": "Make sure that symbols in parameter name are treated properly",
"operationId": "getSymbolsInParameterName",
"parameters": [
{
"in": "query",
"name": "parameter",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "brackets[]",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "brackets[withText]",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "dot.",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "dot.withText",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation"
}
},
"summary": "Test symbols in parameter name",
"tags": [
"resource"
]
}
},
"/top_level_enum": {
"get": {
"operationId": "get_top_level_enum",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,38 +24,12 @@ import retrofit2.http.Headers

@JvmSuppressWildcards
interface ResourceApi {
/**
* Test brackets in parameter name
* Make sure that brackets in parameter name are treated properly
* The endpoint is owned by junittests service owner
* @param page (optional)
* @param page2 (optional)
* @param datePostedBefore (optional)
* @param datePostedStrictlyBefore (optional)
* @param datePostedAfter (optional)
* @param datePostedStrictlyAfter (optional)
*/
@Headers(
"X-Operation-ID: getBracketsInParameterName"
)

@GET("/brackets/in/parameter/name")
fun getBracketsInParameterName(
@retrofit2.http.Query("page") page: String?,
@retrofit2.http.Query("page[]") page2: String?,
@retrofit2.http.Query("datePosted[before]") datePostedBefore: String?,
@retrofit2.http.Query("datePosted[strictly_before]") datePostedStrictlyBefore: String?,
@retrofit2.http.Query("datePosted[after]") datePostedAfter: String?,
@retrofit2.http.Query("datePosted[strictly_after]") datePostedStrictlyAfter: String?
): Completable

/**
* The endpoint is owned by junittests service owner
*/
@Headers(
"X-Operation-ID: get_empty_endpoint"
)

@GET("/empty_endpoint")
fun getEmptyEndpoint(): Single<EmptyModel>

Expand All @@ -66,7 +40,6 @@ interface ResourceApi {
@Headers(
"X-Operation-ID: get_format_endpoint"
)

@GET("/format_endpoint/{property_format}")
fun getFormatEndpoint(
@retrofit2.http.Path("property_format") propertyFormat: String
Expand All @@ -78,7 +51,6 @@ interface ResourceApi {
@Headers(
"X-Operation-ID: get_nested_additional_properties"
)

@GET("/nested_additional_properties")
fun getNestedAdditionalProperties(): Single<NestedAdditionalProperties>

Expand All @@ -88,7 +60,6 @@ interface ResourceApi {
@Headers(
"X-Operation-ID: get_nested_additional_properties_custom_description"
)

@GET("/nested_additional_properties/custom_description")
fun getNestedAdditionalPropertiesCustomDescription(): Single<NestedAdditionalPropertiesCustomDescription>

Expand All @@ -100,7 +71,6 @@ interface ResourceApi {
@Headers(
"X-Operation-ID: get_property_array"
)

@GET("/property_array/{value_type}/{size}")
fun getPropertyArray(
@retrofit2.http.Path("value_type") valueType: String,
Expand All @@ -115,7 +85,6 @@ interface ResourceApi {
@Headers(
"X-Operation-ID: get_property_map"
)

@GET("/property_map/{value_type}/{size}")
fun getPropertyMap(
@retrofit2.http.Path("value_type") valueType: String,
Expand All @@ -128,7 +97,6 @@ interface ResourceApi {
@Headers(
"X-Operation-ID: get_required_type_endpoint"
)

@GET("/required/type_endpoint")
fun getRequiredTypeEndpoint(): Single<RequiredTypeResponses>

Expand All @@ -138,17 +106,37 @@ interface ResourceApi {
@Headers(
"X-Operation-ID: get_reserved_keywords"
)

@GET("/reserved_keywords")
fun getReservedKeywords(): Single<ReservedKeywords>

/**
* Test symbols in parameter name
* Make sure that symbols in parameter name are treated properly
* The endpoint is owned by junittests service owner
* @param parameter (optional)
* @param brackets (optional)
* @param bracketsWithText (optional)
* @param dot (optional)
* @param dotWithText (optional)
*/
@Headers(
"X-Operation-ID: get_top_level_enum"
"X-Operation-ID: getSymbolsInParameterName"
)
@GET("/symbols/in/parameter/name")
fun getSymbolsInParameterName(
@retrofit2.http.Query("parameter") parameter: String?,
@retrofit2.http.Query("brackets[]") brackets: String?,
@retrofit2.http.Query("brackets[withText]") bracketsWithText: String?,
@retrofit2.http.Query("dot.") dot: String?,
@retrofit2.http.Query("dot.withText") dotWithText: String?
): Completable

/**
* The endpoint is owned by junittests service owner
*/
@Headers(
"X-Operation-ID: get_top_level_enum"
)
@GET("/top_level_enum")
fun getTopLevelEnum(): Single<TopLevelEnum>

Expand All @@ -159,7 +147,6 @@ interface ResourceApi {
@Headers(
"X-Operation-ID: get_top_level_map"
)

@GET("/top_level_map/{size}")
fun getTopLevelMap(
@retrofit2.http.Path("size") size: String
Expand All @@ -172,7 +159,6 @@ interface ResourceApi {
@Headers(
"X-Operation-ID: get_type_endpoint"
)

@GET("/type_endpoint/{property_type}")
fun getTypeEndpoint(
@retrofit2.http.Path("property_type") propertyType: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ interface XnullableApi {
@Headers(
"X-Operation-ID: get_xnullable_format_endpoint"
)

@GET("/xnullable/format_endpoint/{property_format}")
fun getXnullableFormatEndpoint(
@retrofit2.http.Path("property_format") propertyFormat: String
Expand All @@ -39,7 +38,6 @@ interface XnullableApi {
@Headers(
"X-Operation-ID: get_xnullable_nested_additional_properties"
)

@GET("/xnullable/nested_additional_properties")
fun getXnullableNestedAdditionalProperties(): Single<XnullableNestedAdditionalProperties>

Expand All @@ -51,7 +49,6 @@ interface XnullableApi {
@Headers(
"X-Operation-ID: get_xnullable_property_array"
)

@GET("/xnullable/property_array/{value_type}/{size}")
fun getXnullablePropertyArray(
@retrofit2.http.Path("value_type") valueType: String,
Expand All @@ -66,7 +63,6 @@ interface XnullableApi {
@Headers(
"X-Operation-ID: get_xnullable_property_map"
)

@GET("/xnullable/property_map/{value_type}/{size}")
fun getXnullablePropertyMap(
@retrofit2.http.Path("value_type") valueType: String,
Expand All @@ -80,7 +76,6 @@ interface XnullableApi {
@Headers(
"X-Operation-ID: get_xnullable_required_property_array"
)

@GET("/xnullable/required/property_array/{size}")
fun getXnullableRequiredPropertyArray(
@retrofit2.http.Path("size") size: String
Expand All @@ -93,7 +88,6 @@ interface XnullableApi {
@Headers(
"X-Operation-ID: get_xnullable_required_property_map"
)

@GET("/xnullable/required/property_map/{size}")
fun getXnullableRequiredPropertyMap(
@retrofit2.http.Path("size") size: String
Expand All @@ -106,7 +100,6 @@ interface XnullableApi {
@Headers(
"X-Operation-ID: get_xnullable_required_type_endpoint"
)

@GET("/xnullable/required/type_endpoint/{property_type}")
fun getXnullableRequiredTypeEndpoint(
@retrofit2.http.Path("property_type") propertyType: String
Expand All @@ -119,7 +112,6 @@ interface XnullableApi {
@Headers(
"X-Operation-ID: get_xnullable_type_endpoint"
)

@GET("/xnullable/type_endpoint/{property_type}")
fun getXnullableTypeEndpoint(
@retrofit2.http.Path("property_type") propertyType: String
Expand Down
Loading

0 comments on commit 01fbfbf

Please sign in to comment.