Skip to content

Commit 231749e

Browse files
committed
feat(javascript): create ingestion client
1 parent 240ead6 commit 231749e

File tree

11 files changed

+70
-4
lines changed

11 files changed

+70
-4
lines changed

clients/algoliasearch-client-javascript/packages/client-common/src/transporter/createTransporter.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ export function createTransporter({
3636
baseHeaders,
3737
baseQueryParameters,
3838
algoliaAgent,
39+
useAlgoliaTracking,
3940
timeouts,
4041
requester,
4142
requestsCache,
@@ -110,7 +111,7 @@ export function createTransporter({
110111
: {};
111112

112113
const queryParameters: QueryParameters = {
113-
'x-algolia-agent': algoliaAgent.value,
114+
...(useAlgoliaTracking ? { 'x-algolia-agent': algoliaAgent.value } : {}),
114115
...baseQueryParameters,
115116
...request.queryParameters,
116117
...dataQueryParameters,
@@ -337,6 +338,7 @@ export function createTransporter({
337338
requester,
338339
timeouts,
339340
algoliaAgent,
341+
useAlgoliaTracking,
340342
baseHeaders,
341343
baseQueryParameters,
342344
hosts,

clients/algoliasearch-client-javascript/packages/client-common/src/types/createClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ type OverriddenTransporterOptions =
99

1010
export type CreateClientOptions = Omit<
1111
TransporterOptions,
12-
OverriddenTransporterOptions | 'algoliaAgent'
12+
OverriddenTransporterOptions | 'algoliaAgent' | 'useAlgoliaTracking'
1313
> &
1414
Partial<Pick<TransporterOptions, OverriddenTransporterOptions>> & {
1515
appId: string;

clients/algoliasearch-client-javascript/packages/client-common/src/types/transporter.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ export type TransporterOptions = {
139139
* The user agent used. Sent on query parameters.
140140
*/
141141
algoliaAgent: AlgoliaAgent;
142+
143+
useAlgoliaTracking: boolean;
142144
};
143145

144146
export type Transporter = TransporterOptions & {

clients/algoliasearch-client-javascript/yarn.lock

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,19 @@ __metadata:
109109
languageName: unknown
110110
linkType: soft
111111

112+
"@algolia/ingestion@workspace:packages/ingestion":
113+
version: 0.0.0-use.local
114+
resolution: "@algolia/ingestion@workspace:packages/ingestion"
115+
dependencies:
116+
"@algolia/client-common": 5.0.0-alpha.26
117+
"@algolia/requester-browser-xhr": 5.0.0-alpha.26
118+
"@algolia/requester-node-http": 5.0.0-alpha.26
119+
"@types/node": 16.11.59
120+
rollup: 2.79.1
121+
typescript: 4.8.3
122+
languageName: unknown
123+
linkType: soft
124+
112125
"@algolia/predict@workspace:packages/predict":
113126
version: 0.0.0-use.local
114127
resolution: "@algolia/predict@workspace:packages/predict"

config/openapitools.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@
6565
"packageVersion": "1.0.0-alpha.27"
6666
}
6767
},
68+
"javascript-ingestion": {
69+
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/ingestion",
70+
"additionalProperties": {
71+
"packageVersion": "1.0.0-alpha"
72+
}
73+
},
6874
"java-search": {
6975
"output": "#{cwd}/clients/algoliasearch-client-java-2"
7076
},

generators/src/main/java/com/algolia/codegen/AlgoliaJavaScriptGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ private void setDefaultGeneratorOptions() {
119119
additionalProperties.put("algoliaAgent", Utils.capitalize(CLIENT));
120120
additionalProperties.put("gitRepoId", "algoliasearch-client-javascript");
121121
additionalProperties.put("isSearchClient", CLIENT.equals("search"));
122+
additionalProperties.put("useAlgoliaTracking", !CLIENT.equals("ingestion"));
122123
additionalProperties.put("isAlgoliasearchClient", isAlgoliasearchClient);
123124

124125
if (isAlgoliasearchClient) {

generators/src/main/java/com/algolia/codegen/GenericPropagator.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,9 @@ public static void propagateGenericsToModels(Map<String, ModelsMap> modelsMap) {
169169
public static void propagateGenericsToOperations(OperationsMap operations, List<ModelMap> allModels) {
170170
Map<String, CodegenModel> models = convertToMap(allModels);
171171
for (CodegenOperation ope : operations.getOperations().getOperation()) {
172+
if (ope.returnType == null) {
173+
continue;
174+
}
172175
CodegenModel returnType = models.get(ope.returnType);
173176
if (returnType != null && hasGeneric(returnType)) {
174177
ope.vendorExtensions.put("x-is-generic", true);
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { ingestionClient } from '@algolia/ingestion';
2+
import { ApiError } from '@algolia/client-common';
3+
import dotenv from 'dotenv';
4+
5+
dotenv.config({ path: '../../.env' });
6+
7+
const appId = process.env.ALGOLIA_APPLICATION_ID || '**** APP_ID *****';
8+
const apiKey =
9+
process.env.ALGOLIA_ADMIN_KEY ||
10+
'**** ADMIN_KEY *****';
11+
12+
// Init client with appId and apiKey
13+
const client = ingestionClient(appId, apiKey, 'us', {authMode: 'WithinHeaders'});
14+
15+
async function testIngestion() {
16+
try {
17+
const res = await client.createAuthentication({input: {appID: appId, apiKey}, name: 'test', type: 'algolia'});
18+
19+
console.log(`[OK]`, res);
20+
} catch (e) {
21+
if (e instanceof ApiError) {
22+
return console.log(`[${e.status}] ${e.message}`, e.stackTrace, e);
23+
}
24+
25+
console.log('[ERROR]', e);
26+
}
27+
}
28+
29+
testIngestion();

playground/javascript/node/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
"private": true,
55
"scripts": {
66
"start:algoliasearch": "ts-node algoliasearch.ts",
7-
"start:abtesting": "ts-node analytics.ts",
7+
"start:abtesting": "ts-node abtesting.ts",
88
"start:analytics": "ts-node analytics.ts",
9+
"start:ingestion": "ts-node ingestion.ts",
910
"start:insights": "ts-node insights.ts",
1011
"start:personalization": "ts-node personalization.ts",
1112
"start:query-suggestions": "ts-node query-suggestions.ts",
@@ -23,6 +24,7 @@
2324
"@algolia/client-query-suggestions": "link:../../../clients/algoliasearch-client-javascript/packages/client-query-suggestions",
2425
"@algolia/client-search": "link:../../../clients/algoliasearch-client-javascript/packages/client-search",
2526
"@algolia/client-sources": "link:../../../clients/algoliasearch-client-javascript/packages/client-sources",
27+
"@algolia/ingestion": "link:../../../clients/algoliasearch-client-javascript/packages/ingestion",
2628
"@algolia/predict": "link:../../../clients/algoliasearch-client-javascript/packages/predict",
2729
"@algolia/recommend": "link:../../../clients/algoliasearch-client-javascript/packages/recommend",
2830
"@algolia/requester-node-http": "link:../../../clients/algoliasearch-client-javascript/packages/requester-node-http",

templates/javascript/clients/api-single.mustache

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export function create{{capitalizedApiName}}({
1919
const transporter = createTransporter({
2020
hosts: getDefaultHosts({{^hasRegionalHost}}appIdOption{{/hasRegionalHost}}{{#hasRegionalHost}}regionOption{{/hasRegionalHost}}),
2121
...options,
22+
useAlgoliaTracking: {{{useAlgoliaTracking}}},
2223
algoliaAgent: getAlgoliaAgent({
2324
algoliaAgents,
2425
client: '{{{algoliaAgent}}}',
@@ -75,7 +76,7 @@ export function create{{capitalizedApiName}}({
7576
{{/isSearchClient}}
7677
{{#operation}}
7778
{{> client/api/operation/jsdoc}}
78-
{{nickname}}{{#vendorExtensions.x-is-generic}}<T>{{/vendorExtensions.x-is-generic}}( {{> client/api/operation/parameters}} ) : Promise<{{{returnType}}}{{#vendorExtensions.x-is-generic}}<T>{{/vendorExtensions.x-is-generic}}> {
79+
{{nickname}}{{#vendorExtensions.x-is-generic}}<T>{{/vendorExtensions.x-is-generic}}( {{> client/api/operation/parameters}} ) : Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}{{#vendorExtensions.x-is-generic}}<T>{{/vendorExtensions.x-is-generic}}> {
7980
{{#vendorExtensions.x-legacy-signature}}
8081
{{> client/api/operation/legacySearchCompatible/implementation}}
8182
{{/vendorExtensions.x-legacy-signature}}

yarn.lock

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,12 @@ __metadata:
9898
languageName: node
9999
linkType: soft
100100

101+
"@algolia/ingestion@link:../../../clients/algoliasearch-client-javascript/packages/ingestion::locator=javascript-playground%40workspace%3Aplayground%2Fjavascript%2Fnode":
102+
version: 0.0.0-use.local
103+
resolution: "@algolia/ingestion@link:../../../clients/algoliasearch-client-javascript/packages/ingestion::locator=javascript-playground%40workspace%3Aplayground%2Fjavascript%2Fnode"
104+
languageName: node
105+
linkType: soft
106+
101107
"@algolia/predict@link:../../../clients/algoliasearch-client-javascript/packages/predict::locator=javascript-playground%40workspace%3Aplayground%2Fjavascript%2Fnode":
102108
version: 0.0.0-use.local
103109
resolution: "@algolia/predict@link:../../../clients/algoliasearch-client-javascript/packages/predict::locator=javascript-playground%40workspace%3Aplayground%2Fjavascript%2Fnode"
@@ -5475,6 +5481,7 @@ __metadata:
54755481
"@algolia/client-query-suggestions": "link:../../../clients/algoliasearch-client-javascript/packages/client-query-suggestions"
54765482
"@algolia/client-search": "link:../../../clients/algoliasearch-client-javascript/packages/client-search"
54775483
"@algolia/client-sources": "link:../../../clients/algoliasearch-client-javascript/packages/client-sources"
5484+
"@algolia/ingestion": "link:../../../clients/algoliasearch-client-javascript/packages/ingestion"
54785485
"@algolia/predict": "link:../../../clients/algoliasearch-client-javascript/packages/predict"
54795486
"@algolia/recommend": "link:../../../clients/algoliasearch-client-javascript/packages/recommend"
54805487
"@algolia/requester-node-http": "link:../../../clients/algoliasearch-client-javascript/packages/requester-node-http"

0 commit comments

Comments
 (0)