Skip to content

Commit 941a6b7

Browse files
committed
compile works
1 parent 2f86564 commit 941a6b7

File tree

9 files changed

+90
-58
lines changed

9 files changed

+90
-58
lines changed

generators/src/main/java/com/algolia/codegen/cts/AlgoliaCTSGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.algolia.codegen.cts;
22

3+
import com.algolia.codegen.cts.guides.GuidesGenerator;
34
import com.algolia.codegen.cts.lambda.*;
45
import com.algolia.codegen.cts.manager.CTSManager;
56
import com.algolia.codegen.cts.manager.CTSManagerFactory;
6-
import com.algolia.codegen.cts.guides.GuidesGenerator;
77
import com.algolia.codegen.cts.tests.*;
88
import com.algolia.codegen.exceptions.*;
99
import com.algolia.codegen.utils.*;

generators/src/main/java/com/algolia/codegen/cts/guides/Guides.java renamed to generators/src/main/java/com/algolia/codegen/cts/guides/GuidesGenerator.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public GuidesGenerator(CTSManager ctsManager) {
1717

1818
@Override
1919
public boolean available() {
20-
File templates = new File("templates/" + language + "/guides/method.mustache");
20+
File templates = new File("templates/" + language + "/guides/" + client);
2121
return templates.exists();
2222
}
2323

@@ -37,12 +37,15 @@ public void addSupportingFiles(List<SupportingFile> supportingFiles, String outp
3737
outputFolder = "/";
3838
}
3939

40-
supportingFiles.add(
41-
new SupportingFile(
42-
"guides/method.mustache",
43-
"guides/" + language + outputFolder + Helpers.createClientName(client, language) + extension
44-
)
45-
);
40+
File templates = new File("templates/" + language + "/guides/" + client);
41+
for (File f : templates.listFiles()) {
42+
supportingFiles.add(
43+
new SupportingFile(
44+
"guides/" + client + "/" + f.getName(),
45+
"guides/" + language + outputFolder + f.getName().replace("\\.mustache", "") + extension
46+
)
47+
);
48+
}
4649
}
4750

4851
@Override

generators/src/main/java/com/algolia/codegen/cts/lambda/DynamicSnippetLambda.java

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package com.algolia.codegen.cts.lambda;
22

33
import com.algolia.codegen.cts.tests.ParametersWithDataType;
4+
import com.algolia.codegen.cts.tests.Step;
45
import com.algolia.codegen.exceptions.CTSException;
6+
import com.algolia.codegen.utils.Helpers;
7+
import com.fasterxml.jackson.core.type.TypeReference;
8+
import com.fasterxml.jackson.databind.*;
59
import com.samskivert.mustache.Mustache;
610
import com.samskivert.mustache.Template;
711
import io.swagger.v3.core.util.Json;
@@ -27,6 +31,8 @@ public class DynamicSnippetLambda implements Mustache.Lambda {
2731
private ParametersWithDataType paramsType;
2832
private Map<String, CodegenOperation> operations;
2933

34+
private Map<String, Step> snippets;
35+
3036
public DynamicSnippetLambda(
3137
DefaultCodegen generator,
3238
Map<String, CodegenModel> models,
@@ -37,6 +43,9 @@ public DynamicSnippetLambda(
3743
this.operations = operations;
3844
this.paramsType = new ParametersWithDataType(models, language, client, true);
3945

46+
JsonNode snippetsFile = Helpers.readJsonFile("tests/CTS/guides/search/snippets.json");
47+
this.snippets = Json.mapper().convertValue(snippetsFile, new TypeReference<Map<String, Step>>() {});
48+
4049
// we can't access the default template manager, so we have to create our own
4150
TemplateManager templateManager = new TemplateManager(
4251
new TemplateManagerOptions(generator.isEnableMinimalUpdate(), generator.isSkipOverwrite()),
@@ -51,8 +60,13 @@ public DynamicSnippetLambda(
5160
@Override
5261
public void execute(Template.Fragment fragment, Writer writer) throws IOException, CTSException {
5362
String snippet = fragment.execute();
54-
String operationId = snippet.split(" ", 2)[0];
55-
63+
Step step = snippets.get(snippet);
64+
if (step == null) {
65+
throw new CTSException("Cannot find snippet: " + snippet);
66+
}
67+
68+
String operationId = step.method;
69+
5670
CodegenOperation operation = operations.get(operationId);
5771
if (operation == null) {
5872
throw new CTSException("Cannot find operation for method: " + operationId);
@@ -66,9 +80,9 @@ public void execute(Template.Fragment fragment, Writer writer) throws IOExceptio
6680
context.put("hasParams", operation.hasParams);
6781

6882
// set the parameters
69-
Map<String, Object> parameters = Json.mapper().readValue(params, Map.class);
70-
System.out.println("parameters: " + parameters);
71-
context.put("parameters", params);
83+
// Map<String, Object> parameters = Json.mapper().readValue(params, Map.class);
84+
// System.out.println("parameters: " + parameters);
85+
// context.put("parameters", params);
7286

7387
writer.write(adaptor.compileTemplate(executor, context, "tests/client/method.mustache"));
7488
}
Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.algolia.codegen.cts.tests;
22

33
import java.util.List;
4-
import java.util.Map;
54

65
public class ClientTestData {
76

@@ -19,41 +18,3 @@ public String toString() {
1918
return sb.toString();
2019
}
2120
}
22-
23-
class Step {
24-
25-
public String type;
26-
public String method;
27-
public int times;
28-
public Map<String, Object> parameters;
29-
public Expected expected;
30-
31-
public String toString() {
32-
StringBuilder sb = new StringBuilder();
33-
sb.append("class Step {\n");
34-
sb.append(" type: ").append(type).append("\n");
35-
sb.append(" method: ").append(method).append("\n");
36-
sb.append(" times: ").append(times).append("\n");
37-
sb.append(" parameters: ").append(parameters).append("\n");
38-
sb.append(" expected: ").append(expected).append("\n");
39-
sb.append("}");
40-
return sb.toString();
41-
}
42-
}
43-
44-
class Expected {
45-
46-
public String type;
47-
public Object error;
48-
public Object match;
49-
50-
public String toString() {
51-
StringBuilder sb = new StringBuilder();
52-
sb.append("class Expected {\n");
53-
sb.append(" type: ").append(type).append("\n");
54-
sb.append(" error: ").append(error).append("\n");
55-
sb.append(" match: ").append(match).append("\n");
56-
sb.append("}");
57-
return sb.toString();
58-
}
59-
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.algolia.codegen.cts.tests;
2+
3+
public class Expected {
4+
5+
public String type;
6+
public Object error;
7+
public Object match;
8+
9+
public String toString() {
10+
StringBuilder sb = new StringBuilder();
11+
sb.append("class Expected {\n");
12+
sb.append(" type: ").append(type).append("\n");
13+
sb.append(" error: ").append(error).append("\n");
14+
sb.append(" match: ").append(match).append("\n");
15+
sb.append("}");
16+
return sb.toString();
17+
}
18+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.algolia.codegen.cts.tests;
2+
3+
import java.util.Map;
4+
5+
public class Step {
6+
7+
public String type;
8+
public String method;
9+
public int times;
10+
public Map<String, Object> parameters;
11+
public Expected expected;
12+
13+
public String toString() {
14+
StringBuilder sb = new StringBuilder();
15+
sb.append("class Step {\n");
16+
sb.append(" type: ").append(type).append("\n");
17+
sb.append(" method: ").append(method).append("\n");
18+
sb.append(" times: ").append(times).append("\n");
19+
sb.append(" parameters: ").append(parameters).append("\n");
20+
sb.append(" expected: ").append(expected).append("\n");
21+
sb.append("}");
22+
return sb.toString();
23+
}
24+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { searchClient } from '@algolia/client-search';
2+
3+
const client = searchClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY", );
4+
5+
// Fetch and index objects in Algolia
6+
const processRecords = async () => {
7+
const datasetRequest = await fetch('https://dashboard.algolia.com/sample_datasets/movie.json');
8+
const objects = await datasetRequest.json();
9+
return await client.saveObjects();
10+
};
11+
12+
processRecords()
13+
.then(() => console.log('Successfully indexed objects!'))
14+
.catch((err) => console.error(err));

templates/javascript/guides/saveObjectsMovies.mustache renamed to templates/javascript/guides/search/saveObjectsMovies.mustache

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
{{> tests/snippets/import}}
1+
{{> snippets/import}}
22

3-
{{> tests/snippets/init}}
3+
{{> snippets/init}}
44

55
// Fetch and index objects in Algolia
66
const processRecords = async () => {
77
const datasetRequest = await fetch('https://dashboard.algolia.com/sample_datasets/movie.json');
88
const objects = await datasetRequest.json();
99
return {{#dynamicSnippet}}saveObjectsMovies{{/dynamicSnippet}}
10-
11-
{{#dynamicSnippet}}prout{{/dynamicSnippet}}
1210
};
1311

1412
processRecords()

templates/javascript/snippets/method.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/* eslint no-console: ["error", { allow: ["log"] }] */
33

44
// >IMPORT
5-
{{> tests/snippets/import}}
5+
{{> snippets/import}}
66
// IMPORT<
77
import type { RequestOptions } from '@algolia/client-common';
88

@@ -14,7 +14,7 @@ import type { RequestOptions } from '@algolia/client-common';
1414
export {{#isAsyncMethod}}async{{/isAsyncMethod}} function snippetFor{{#lambda.pascalcase}}{{method}}{{/lambda.pascalcase}}{{testIndex}}(): {{#isAsyncMethod}}Promise<void>{{/isAsyncMethod}}{{^isAsyncMethod}}void{{/isAsyncMethod}} {
1515
// >SEPARATOR {{method}} {{testName}}
1616
// Initialize the client
17-
{{> tests/snippets/init}}
17+
{{> snippets/init}}
1818

1919
// Call the API
2020
{{#hasResponse}}const response = {{/hasResponse}}{{> tests/method}};

0 commit comments

Comments
 (0)