Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions config/clients.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,7 @@
"clients": [
"abtesting",
"analytics",
"composition",
"ingestion",
"insights",
"monitoring",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ public static String formatIdentifier(String text) {
return INSTANCE.isReservedWord(text) ? INSTANCE.escapeReservedWord(text) : text;
}

public static Boolean isReservedModelName(String name) {
return reservedModelNames.contains(name.toLowerCase());
public static Boolean isReservedModelName(String name, String client) {
return client.equalsIgnoreCase("composition") || reservedModelNames.contains(name.toLowerCase());
}

public static String prefixReservedModelName(String name, String client) {
Expand All @@ -146,7 +146,7 @@ public static String prefixReservedModelName(String name, String client) {
}

var camelizedName = camelize(name);
if (isReservedModelName(camelizedName)) {
if (isReservedModelName(camelizedName, client)) {
return getClientName(client) + Helpers.capitalize(camelizedName);
}

Expand Down Expand Up @@ -476,7 +476,7 @@ public String toEnumVarName(String value, String datatype) {
public String toModelName(String name) {
var sanitizedName = this.sanitizeName(name);
var camelizedName = camelize(sanitizedName);
if (isReservedModelName(camelizedName)) {
if (isReservedModelName(camelizedName, getClientName(CLIENT))) {
return prefixReservedModelName(camelizedName, CLIENT);
}

Expand All @@ -486,7 +486,7 @@ public String toModelName(String name) {
@Override
public String toParamName(String name) {
var trimmedName = camelize(name.replaceFirst(getClientName(CLIENT), ""), LOWERCASE_FIRST_LETTER);
if (isReservedModelName(trimmedName)) {
if (isReservedModelName(trimmedName, getClientName(CLIENT))) {
return trimmedName;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.algolia.codegen.cts.lambda;

import com.algolia.codegen.AlgoliaSwiftGenerator;
import com.samskivert.mustache.Mustache;
import com.samskivert.mustache.Template;
import java.io.IOException;
import java.io.Writer;

public class SwiftPrefixLambda implements Mustache.Lambda {

private final String client;

public SwiftPrefixLambda(String client) {
this.client = client;
}

@Override
public void execute(Template.Fragment frag, Writer out) throws IOException {
out.write(AlgoliaSwiftGenerator.prefixReservedModelName(frag.execute(), client));
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.algolia.codegen.cts.manager;

import com.algolia.codegen.AlgoliaSwiftGenerator;
import com.algolia.codegen.cts.lambda.SwiftPrefixLambda;
import com.algolia.codegen.exceptions.GeneratorException;
import com.algolia.codegen.utils.Helpers;
import com.samskivert.mustache.Mustache.Lambda;
Expand Down Expand Up @@ -57,5 +58,6 @@ public void addSnippetsSupportingFiles(List<SupportingFile> supportingFiles, Str
@Override
public void addMustacheLambdas(Map<String, Lambda> lambdas) {
lambdas.put("identifier", (fragment, writer) -> writer.write(AlgoliaSwiftGenerator.formatIdentifier(fragment.execute())));
lambdas.put("prefix", new SwiftPrefixLambda(client));
}
}
2 changes: 1 addition & 1 deletion templates/swift/snippets/method.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ final class {{client}}Snippet {
{{> snippets/init}}

// Call the API
{{#hasResponse}}let response{{#isGeneric}}: {{{returnType}}}<Hit>{{/isGeneric}} = {{/hasResponse}}try {{#isAsyncMethod}}await {{/isAsyncMethod}}client.{{method}}({{#hasParams}}{{#parametersWithDataType}}{{> tests/generateParams }}{{^-last}}, {{/-last}}{{/parametersWithDataType}}{{/hasParams}}{{#hasRequestOptions}}, requestOptions: RequestOptions({{#requestOptions.headers}}
{{#hasResponse}}let response{{#isGeneric}}: {{#lambda.prefix}}{{{returnType}}}{{/lambda.prefix}}<{{#lambda.prefix}}Hit{{/lambda.prefix}}>{{/isGeneric}} = {{/hasResponse}}try {{#isAsyncMethod}}await {{/isAsyncMethod}}client.{{method}}({{#hasParams}}{{#parametersWithDataType}}{{> tests/generateParams }}{{^-last}}, {{/-last}}{{/parametersWithDataType}}{{/hasParams}}{{#hasRequestOptions}}, requestOptions: RequestOptions({{#requestOptions.headers}}
headers: [{{#parametersWithDataType}}"{{key}}": {{> tests/paramValue }}{{^-last}}, {{/-last}}{{/parametersWithDataType}}]{{/requestOptions.headers}}
{{#requestOptions.headers}}{{#requestOptions.queryParameters}},{{/requestOptions.queryParameters}}{{/requestOptions.headers}}{{#requestOptions.queryParameters}}
queryParameters: [{{#parametersWithDataType}}"{{key}}": {{> tests/paramValue }}{{^-last}}, {{/-last}}{{/parametersWithDataType}}]{{/requestOptions.queryParameters}}
Expand Down
4 changes: 2 additions & 2 deletions templates/swift/tests/client/method.mustache
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{#hasResponse}}let response{{#isGeneric}}: Response<{{{returnType}}}<Hit>>{{/isGeneric}} = {{> tests/method}}{{/hasResponse}}
{{^hasResponse}}let _{{#isGeneric}}: Response<{{{returnType}}}<Hit>>{{/isGeneric}} = {{> tests/method}}{{/hasResponse}}
{{#hasResponse}}let response{{#isGeneric}}: Response<{{#lambda.prefix}}{{{returnType}}}{{/lambda.prefix}}<{{#lambda.prefix}}Hit{{/lambda.prefix}}>>{{/isGeneric}} = {{> tests/method}}{{/hasResponse}}
{{^hasResponse}}let _{{#isGeneric}}: Response<{{#lambda.prefix}}{{{returnType}}}{{/lambda.prefix}}<{{#lambda.prefix}}Hit{{/lambda.prefix}}>>{{/isGeneric}} = {{> tests/method}}{{/hasResponse}}
{{^isHelper}}
{{^isBenchmark}}
let responseBodyData = try XCTUnwrap(response.bodyData)
Expand Down
2 changes: 1 addition & 1 deletion templates/swift/tests/e2e/e2e.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ final class {{client}}RequestsTestsE2E: XCTestCase {
}

{{#response}}
let response{{#isGeneric}}: Response<{{{returnType}}}<Hit>>{{/isGeneric}} = {{> tests/method}}
let response{{#isGeneric}}: Response<{{#lambda.prefix}}{{{returnType}}}{{/lambda.prefix}}<{{#lambda.prefix}}Hit{{/lambda.prefix}}>>{{/isGeneric}} = {{> tests/method}}
{{#body}}
let responseBody = try XCTUnwrap(response.body)
let responseBodyData = try CodableHelper.jsonEncoder.encode(responseBody)
Expand Down
2 changes: 1 addition & 1 deletion templates/swift/tests/requests/requests.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ final class {{client}}RequestsTests: XCTestCase {
let transporter: Transporter = Transporter(configuration: configuration, requestBuilder: EchoRequestBuilder())
let client: {{client}} = {{client}}(configuration: configuration, transporter: transporter)

let response{{#isGeneric}}: Response<{{{returnType}}}<Hit>>{{/isGeneric}} = {{> tests/method}}
let response{{#isGeneric}}: Response<{{#lambda.prefix}}{{{returnType}}}{{/lambda.prefix}}<{{#lambda.prefix}}Hit{{/lambda.prefix}}>>{{/isGeneric}} = {{> tests/method}}
let responseBodyData = try XCTUnwrap(response.bodyData)
let echoResponse = try CodableHelper.jsonDecoder.decode(EchoResponse.self, from: responseBodyData)

Expand Down
Loading