From a3e6016f96326a902ef2c3d444be139acc40956f Mon Sep 17 00:00:00 2001 From: Damien Couchez Date: Wed, 10 Nov 2021 15:09:32 +0100 Subject: [PATCH 1/3] feat: add generated files from splitted specs --- app.ts | 18 +- openapi_spec/paths/indexes/saveObject.yml | 2 +- output/client-search/searchApi.ts | 269 +++++++++++++++++- output/model/inlineObject.ts | 33 +++ output/model/inlineObject1.ts | 20 ++ output/model/inlineResponse200.ts | 37 +++ output/model/inlineResponse2001.ts | 31 ++ output/model/modelError.ts | 22 ++ output/model/models.ts | 23 ++ output/model/multipleQueries.ts | 6 +- output/model/multipleQueriesResponseHits.ts | 22 ++ .../model/multipleQueriesResponseResults.ts | 5 +- output/model/operation.ts | 43 +++ package.json | 2 +- yarn.lock | 4 +- 15 files changed, 510 insertions(+), 27 deletions(-) create mode 100644 output/model/inlineObject.ts create mode 100644 output/model/inlineObject1.ts create mode 100644 output/model/inlineResponse200.ts create mode 100644 output/model/inlineResponse2001.ts create mode 100644 output/model/modelError.ts create mode 100644 output/model/multipleQueriesResponseHits.ts create mode 100644 output/model/operation.ts diff --git a/app.ts b/app.ts index 538d806c7ed..c7999257156 100644 --- a/app.ts +++ b/app.ts @@ -5,15 +5,17 @@ const client = new SearchApi(); async function testClient() { // test openapi gen try { - const res = await client.search( - [ - { - indexName: 'docsearch', - query: 'crawler', - }, - ], + const res = await client.multipleQueries( 'R2IYF7ETH7', - 'e1e920e59f457ec70473486171c1d3b6' + 'e1e920e59f457ec70473486171c1d3b6', + { + 'requests' : [ + { + indexName: 'docsearch', + query: 'crawler', + } + ] + } ); console.log('[1-RESPONSE]', res); diff --git a/openapi_spec/paths/indexes/saveObject.yml b/openapi_spec/paths/indexes/saveObject.yml index 341f3031a58..33a1b640aa4 100644 --- a/openapi_spec/paths/indexes/saveObject.yml +++ b/openapi_spec/paths/indexes/saveObject.yml @@ -1,6 +1,6 @@ post: tags: - - object + - search operationId: saveObject summary: Save object description: Add an object to the index, automatically assigning it an object ID diff --git a/output/client-search/searchApi.ts b/output/client-search/searchApi.ts index ff676b92a92..eed73338368 100644 --- a/output/client-search/searchApi.ts +++ b/output/client-search/searchApi.ts @@ -1,7 +1,10 @@ import localVarRequest from 'request'; import http from 'http'; -import { MultipleQueries } from '../model/multipleQueries'; +import { InlineObject } from '../model/inlineObject'; +import { InlineObject1 } from '../model/inlineObject1'; +import { InlineResponse200 } from '../model/inlineResponse200'; +import { InlineResponse2001 } from '../model/inlineResponse2001'; import { MultipleQueriesResponse } from '../model/multipleQueriesResponse'; import { ObjectSerializer, Authentication, VoidAuth, Interceptor } from '../model/models'; @@ -72,17 +75,131 @@ export class SearchApi { this.interceptors.push(interceptor); } + /** + * + * @summary Performs multiple write operations in a single API call + * @param xAlgoliaApplicationId Algolia appID + * @param xAlgoliaAPIKey Algolia API key + * @param indexName The index in which to perform the request + * @param inlineObject1 + */ + public async batch( + xAlgoliaApplicationId: string, + xAlgoliaAPIKey: string, + indexName: string, + inlineObject1: InlineObject1, + options: { headers: { [name: string]: string } } = { headers: {} } + ): Promise<{ response: http.IncomingMessage; body: InlineResponse2001 }> { + const localVarPath = + this.basePath + + '/1/indexes/{indexName}/batch'.replace( + '{' + 'indexName' + '}', + encodeURIComponent(String(indexName)) + ); + let localVarQueryParameters: any = {}; + let localVarHeaderParams: any = (Object).assign({}, this._defaultHeaders); + const produces = ['application/json']; + // give precedence to 'application/json' + if (produces.indexOf('application/json') >= 0) { + localVarHeaderParams.Accept = 'application/json'; + } else { + localVarHeaderParams.Accept = produces.join(','); + } + let localVarFormParams: any = {}; + + // verify required parameter 'xAlgoliaApplicationId' is not null or undefined + if (xAlgoliaApplicationId === null || xAlgoliaApplicationId === undefined) { + throw new Error( + 'Required parameter xAlgoliaApplicationId was null or undefined when calling batch.' + ); + } + + // verify required parameter 'xAlgoliaAPIKey' is not null or undefined + if (xAlgoliaAPIKey === null || xAlgoliaAPIKey === undefined) { + throw new Error( + 'Required parameter xAlgoliaAPIKey was null or undefined when calling batch.' + ); + } + + // verify required parameter 'indexName' is not null or undefined + if (indexName === null || indexName === undefined) { + throw new Error('Required parameter indexName was null or undefined when calling batch.'); + } + + // verify required parameter 'inlineObject1' is not null or undefined + if (inlineObject1 === null || inlineObject1 === undefined) { + throw new Error('Required parameter inlineObject1 was null or undefined when calling batch.'); + } + + localVarHeaderParams['X-Algolia-Application-Id'] = ObjectSerializer.serialize( + xAlgoliaApplicationId, + 'string' + ); + localVarHeaderParams['X-Algolia-API-Key'] = ObjectSerializer.serialize( + xAlgoliaAPIKey, + 'string' + ); + (Object).assign(localVarHeaderParams, options.headers); + + let localVarUseFormData = false; + + let localVarRequestOptions: localVarRequest.Options = { + method: 'POST', + qs: localVarQueryParameters, + headers: localVarHeaderParams, + uri: localVarPath, + useQuerystring: this._useQuerystring, + json: true, + body: ObjectSerializer.serialize(inlineObject1, 'InlineObject1'), + }; + + let authenticationPromise = Promise.resolve(); + authenticationPromise = authenticationPromise.then(() => + this.authentications.default.applyToRequest(localVarRequestOptions) + ); + + let interceptorPromise = authenticationPromise; + for (const interceptor of this.interceptors) { + interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions)); + } + + return interceptorPromise.then(() => { + if (Object.keys(localVarFormParams).length) { + if (localVarUseFormData) { + (localVarRequestOptions).formData = localVarFormParams; + } else { + localVarRequestOptions.form = localVarFormParams; + } + } + return new Promise<{ response: http.IncomingMessage; body: InlineResponse2001 }>( + (resolve, reject) => { + localVarRequest(localVarRequestOptions, (error, response, body) => { + if (error) { + reject(error); + } else { + body = ObjectSerializer.deserialize(body, 'InlineResponse2001'); + if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) { + resolve({ response: response, body: body }); + } else { + reject(new HttpError(response, body, response.statusCode)); + } + } + }); + } + ); + }); + } /** * * @summary Get search results for the given requests. - * @param multipleQueries * @param xAlgoliaApplicationId Algolia appID * @param xAlgoliaAPIKey Algolia API key + * @param inlineObject */ - public async search( - multipleQueries: Array, - xAlgoliaApplicationId?: string, - xAlgoliaAPIKey?: string, + public async multipleQueries( + xAlgoliaApplicationId: string, + xAlgoliaAPIKey: string, + inlineObject: InlineObject, options: { headers: { [name: string]: string } } = { headers: {} } ): Promise<{ response: http.IncomingMessage; body: MultipleQueriesResponse }> { const localVarPath = this.basePath + '/1/indexes/*/queries'; @@ -97,10 +214,24 @@ export class SearchApi { } let localVarFormParams: any = {}; - // verify required parameter 'multipleQueries' is not null or undefined - if (multipleQueries === null || multipleQueries === undefined) { + // verify required parameter 'xAlgoliaApplicationId' is not null or undefined + if (xAlgoliaApplicationId === null || xAlgoliaApplicationId === undefined) { throw new Error( - 'Required parameter multipleQueries was null or undefined when calling search.' + 'Required parameter xAlgoliaApplicationId was null or undefined when calling multipleQueries.' + ); + } + + // verify required parameter 'xAlgoliaAPIKey' is not null or undefined + if (xAlgoliaAPIKey === null || xAlgoliaAPIKey === undefined) { + throw new Error( + 'Required parameter xAlgoliaAPIKey was null or undefined when calling multipleQueries.' + ); + } + + // verify required parameter 'inlineObject' is not null or undefined + if (inlineObject === null || inlineObject === undefined) { + throw new Error( + 'Required parameter inlineObject was null or undefined when calling multipleQueries.' ); } @@ -123,7 +254,7 @@ export class SearchApi { uri: localVarPath, useQuerystring: this._useQuerystring, json: true, - body: ObjectSerializer.serialize(multipleQueries, 'Array'), + body: ObjectSerializer.serialize(inlineObject, 'InlineObject'), }; let authenticationPromise = Promise.resolve(); @@ -162,4 +293,122 @@ export class SearchApi { ); }); } + /** + * Add an object to the index, automatically assigning it an object ID + * @summary Save object + * @param xAlgoliaApplicationId Algolia appID + * @param xAlgoliaAPIKey Algolia API key + * @param indexName The index in which to perform the request + * @param requestBody + */ + public async saveObject( + xAlgoliaApplicationId: string, + xAlgoliaAPIKey: string, + indexName: string, + requestBody: { [key: string]: object }, + options: { headers: { [name: string]: string } } = { headers: {} } + ): Promise<{ response: http.IncomingMessage; body: InlineResponse200 }> { + const localVarPath = + this.basePath + + '/1/indexes/{indexName}'.replace( + '{' + 'indexName' + '}', + encodeURIComponent(String(indexName)) + ); + let localVarQueryParameters: any = {}; + let localVarHeaderParams: any = (Object).assign({}, this._defaultHeaders); + const produces = ['application/json']; + // give precedence to 'application/json' + if (produces.indexOf('application/json') >= 0) { + localVarHeaderParams.Accept = 'application/json'; + } else { + localVarHeaderParams.Accept = produces.join(','); + } + let localVarFormParams: any = {}; + + // verify required parameter 'xAlgoliaApplicationId' is not null or undefined + if (xAlgoliaApplicationId === null || xAlgoliaApplicationId === undefined) { + throw new Error( + 'Required parameter xAlgoliaApplicationId was null or undefined when calling saveObject.' + ); + } + + // verify required parameter 'xAlgoliaAPIKey' is not null or undefined + if (xAlgoliaAPIKey === null || xAlgoliaAPIKey === undefined) { + throw new Error( + 'Required parameter xAlgoliaAPIKey was null or undefined when calling saveObject.' + ); + } + + // verify required parameter 'indexName' is not null or undefined + if (indexName === null || indexName === undefined) { + throw new Error( + 'Required parameter indexName was null or undefined when calling saveObject.' + ); + } + + // verify required parameter 'requestBody' is not null or undefined + if (requestBody === null || requestBody === undefined) { + throw new Error( + 'Required parameter requestBody was null or undefined when calling saveObject.' + ); + } + + localVarHeaderParams['X-Algolia-Application-Id'] = ObjectSerializer.serialize( + xAlgoliaApplicationId, + 'string' + ); + localVarHeaderParams['X-Algolia-API-Key'] = ObjectSerializer.serialize( + xAlgoliaAPIKey, + 'string' + ); + (Object).assign(localVarHeaderParams, options.headers); + + let localVarUseFormData = false; + + let localVarRequestOptions: localVarRequest.Options = { + method: 'POST', + qs: localVarQueryParameters, + headers: localVarHeaderParams, + uri: localVarPath, + useQuerystring: this._useQuerystring, + json: true, + body: ObjectSerializer.serialize(requestBody, '{ [key: string]: object; }'), + }; + + let authenticationPromise = Promise.resolve(); + authenticationPromise = authenticationPromise.then(() => + this.authentications.default.applyToRequest(localVarRequestOptions) + ); + + let interceptorPromise = authenticationPromise; + for (const interceptor of this.interceptors) { + interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions)); + } + + return interceptorPromise.then(() => { + if (Object.keys(localVarFormParams).length) { + if (localVarUseFormData) { + (localVarRequestOptions).formData = localVarFormParams; + } else { + localVarRequestOptions.form = localVarFormParams; + } + } + return new Promise<{ response: http.IncomingMessage; body: InlineResponse200 }>( + (resolve, reject) => { + localVarRequest(localVarRequestOptions, (error, response, body) => { + if (error) { + reject(error); + } else { + body = ObjectSerializer.deserialize(body, 'InlineResponse200'); + if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) { + resolve({ response: response, body: body }); + } else { + reject(new HttpError(response, body, response.statusCode)); + } + } + }); + } + ); + }); + } } diff --git a/output/model/inlineObject.ts b/output/model/inlineObject.ts new file mode 100644 index 00000000000..56a098c3731 --- /dev/null +++ b/output/model/inlineObject.ts @@ -0,0 +1,33 @@ +import { RequestFile } from './models'; +import { MultipleQueries } from './multipleQueries'; + +export class InlineObject { + 'requests': Array; + 'strategy'?: InlineObject.StrategyEnum; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [ + { + name: 'requests', + baseName: 'requests', + type: 'Array', + }, + { + name: 'strategy', + baseName: 'strategy', + type: 'InlineObject.StrategyEnum', + }, + ]; + + static getAttributeTypeMap() { + return InlineObject.attributeTypeMap; + } +} + +export namespace InlineObject { + export enum StrategyEnum { + None = 'none', + StopIfEnoughMatches = 'stopIfEnoughMatches', + } +} diff --git a/output/model/inlineObject1.ts b/output/model/inlineObject1.ts new file mode 100644 index 00000000000..6abc7a2bbe2 --- /dev/null +++ b/output/model/inlineObject1.ts @@ -0,0 +1,20 @@ +import { RequestFile } from './models'; +import { Operation } from './operation'; + +export class InlineObject1 { + 'requests'?: Array; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [ + { + name: 'requests', + baseName: 'requests', + type: 'Array', + }, + ]; + + static getAttributeTypeMap() { + return InlineObject1.attributeTypeMap; + } +} diff --git a/output/model/inlineResponse200.ts b/output/model/inlineResponse200.ts new file mode 100644 index 00000000000..839371c270b --- /dev/null +++ b/output/model/inlineResponse200.ts @@ -0,0 +1,37 @@ +import { RequestFile } from './models'; + +export class InlineResponse200 { + 'createdAt'?: string; + /** + * taskID of the indexing task to wait for. + */ + 'taskID'?: number; + /** + * Unique identifier of the object + */ + 'objectID'?: string; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [ + { + name: 'createdAt', + baseName: 'createdAt', + type: 'string', + }, + { + name: 'taskID', + baseName: 'taskID', + type: 'number', + }, + { + name: 'objectID', + baseName: 'objectID', + type: 'string', + }, + ]; + + static getAttributeTypeMap() { + return InlineResponse200.attributeTypeMap; + } +} diff --git a/output/model/inlineResponse2001.ts b/output/model/inlineResponse2001.ts new file mode 100644 index 00000000000..2ed6b874919 --- /dev/null +++ b/output/model/inlineResponse2001.ts @@ -0,0 +1,31 @@ +import { RequestFile } from './models'; + +export class InlineResponse2001 { + /** + * taskID of the indexing task to wait for. + */ + 'taskID'?: number; + /** + * List of objectID + */ + 'objectIDs'?: Array; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [ + { + name: 'taskID', + baseName: 'taskID', + type: 'number', + }, + { + name: 'objectIDs', + baseName: 'objectIDs', + type: 'Array', + }, + ]; + + static getAttributeTypeMap() { + return InlineResponse2001.attributeTypeMap; + } +} diff --git a/output/model/modelError.ts b/output/model/modelError.ts new file mode 100644 index 00000000000..13fc1b89375 --- /dev/null +++ b/output/model/modelError.ts @@ -0,0 +1,22 @@ +import { RequestFile } from './models'; + +/** + * Error + */ +export class ModelError extends null { + 'message'?: string; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [ + { + name: 'message', + baseName: 'message', + type: 'string', + }, + ]; + + static getAttributeTypeMap() { + return super.getAttributeTypeMap().concat(ModelError.attributeTypeMap); + } +} diff --git a/output/model/models.ts b/output/model/models.ts index f4038e56af5..8f28ed6bdd4 100644 --- a/output/model/models.ts +++ b/output/model/models.ts @@ -1,8 +1,15 @@ import localVarRequest from 'request'; +export * from './inlineObject'; +export * from './inlineObject1'; +export * from './inlineResponse200'; +export * from './inlineResponse2001'; +export * from './modelError'; export * from './multipleQueries'; export * from './multipleQueriesResponse'; +export * from './multipleQueriesResponseHits'; export * from './multipleQueriesResponseResults'; +export * from './operation'; import * as fs from 'fs'; @@ -16,20 +23,36 @@ export interface RequestDetailedFile { export type RequestFile = string | Buffer | fs.ReadStream | RequestDetailedFile; +import { InlineObject } from './inlineObject'; +import { InlineObject1 } from './inlineObject1'; +import { InlineResponse200 } from './inlineResponse200'; +import { InlineResponse2001 } from './inlineResponse2001'; +import { ModelError } from './modelError'; import { MultipleQueries } from './multipleQueries'; import { MultipleQueriesResponse } from './multipleQueriesResponse'; +import { MultipleQueriesResponseHits } from './multipleQueriesResponseHits'; import { MultipleQueriesResponseResults } from './multipleQueriesResponseResults'; +import { Operation } from './operation'; let primitives = ['string', 'boolean', 'double', 'integer', 'long', 'float', 'number', 'any']; let enumsMap: { [index: string]: any } = { + 'InlineObject.StrategyEnum': InlineObject.StrategyEnum, 'MultipleQueries.TypeEnum': MultipleQueries.TypeEnum, + 'Operation.ActionEnum': Operation.ActionEnum, }; let typeMap: { [index: string]: any } = { + InlineObject: InlineObject, + InlineObject1: InlineObject1, + InlineResponse200: InlineResponse200, + InlineResponse2001: InlineResponse2001, + ModelError: ModelError, MultipleQueries: MultipleQueries, MultipleQueriesResponse: MultipleQueriesResponse, + MultipleQueriesResponseHits: MultipleQueriesResponseHits, MultipleQueriesResponseResults: MultipleQueriesResponseResults, + Operation: Operation, }; export class ObjectSerializer { diff --git a/output/model/multipleQueries.ts b/output/model/multipleQueries.ts index f5d35273925..3842566ce64 100644 --- a/output/model/multipleQueries.ts +++ b/output/model/multipleQueries.ts @@ -18,9 +18,9 @@ export class MultipleQueries { */ 'facet'?: string; /** - * A key-value mapping of additional search parameters + * A query string of search parameters */ - 'params'?: { [key: string]: object }; + 'params'?: string; static discriminator: string | undefined = undefined; @@ -48,7 +48,7 @@ export class MultipleQueries { { name: 'params', baseName: 'params', - type: '{ [key: string]: object; }', + type: 'string', }, ]; diff --git a/output/model/multipleQueriesResponseHits.ts b/output/model/multipleQueriesResponseHits.ts new file mode 100644 index 00000000000..3e8178a67ac --- /dev/null +++ b/output/model/multipleQueriesResponseHits.ts @@ -0,0 +1,22 @@ +import { RequestFile } from './models'; + +export class MultipleQueriesResponseHits { + /** + * Unique identifier of the object + */ + 'objectID'?: string; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [ + { + name: 'objectID', + baseName: 'objectID', + type: 'string', + }, + ]; + + static getAttributeTypeMap() { + return MultipleQueriesResponseHits.attributeTypeMap; + } +} diff --git a/output/model/multipleQueriesResponseResults.ts b/output/model/multipleQueriesResponseResults.ts index ea61b77356f..b15174ff452 100644 --- a/output/model/multipleQueriesResponseResults.ts +++ b/output/model/multipleQueriesResponseResults.ts @@ -1,7 +1,8 @@ import { RequestFile } from './models'; +import { MultipleQueriesResponseHits } from './multipleQueriesResponseHits'; export class MultipleQueriesResponseResults { - 'hits'?: Array<{ [key: string]: any }>; + 'hits'?: Array; 'nbHits'?: number; 'queryID'?: string; @@ -11,7 +12,7 @@ export class MultipleQueriesResponseResults { { name: 'hits', baseName: 'hits', - type: 'Array<{ [key: string]: any; }>', + type: 'Array', }, { name: 'nbHits', diff --git a/output/model/operation.ts b/output/model/operation.ts new file mode 100644 index 00000000000..771fd8cd80a --- /dev/null +++ b/output/model/operation.ts @@ -0,0 +1,43 @@ +import { RequestFile } from './models'; + +export class Operation { + /** + * type of operation + */ + 'action'?: Operation.ActionEnum; + /** + * arguments to the operation (depends on the type of the operation) + */ + 'body'?: { [key: string]: object }; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [ + { + name: 'action', + baseName: 'action', + type: 'Operation.ActionEnum', + }, + { + name: 'body', + baseName: 'body', + type: '{ [key: string]: object; }', + }, + ]; + + static getAttributeTypeMap() { + return Operation.attributeTypeMap; + } +} + +export namespace Operation { + export enum ActionEnum { + AddObject = 'addObject', + UpdateObject = 'updateObject', + PartialUpdateObject = 'partialUpdateObject', + PartialUpdateObjectNoCreate = 'partialUpdateObjectNoCreate', + DeleteObject = 'deleteObject', + Delete = 'delete', + Clear = 'clear', + } +} diff --git a/package.json b/package.json index 6756a922dc1..9b97c5c2b50 100644 --- a/package.json +++ b/package.json @@ -26,4 +26,4 @@ "dependencies": { "swagger-cli": "^4.0.4" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index e0f0f6fae49..d8d9a85c5f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -226,11 +226,11 @@ __metadata: "algoliasearch-client-javascript@file:output/::locator=%40algolia%2Fautomation-javascript-client%40workspace%3A.": version: 5.0.0 - resolution: "algoliasearch-client-javascript@file:output/#output/::hash=eecce8&locator=%40algolia%2Fautomation-javascript-client%40workspace%3A." + resolution: "algoliasearch-client-javascript@file:output/#output/::hash=45fb8f&locator=%40algolia%2Fautomation-javascript-client%40workspace%3A." dependencies: "@types/request": ^2.48.7 request: ^2.81.0 - checksum: f5c39500e1657e312edaccf3fab400ba3c648a0363230274bb435b3f8238996fbd256b31fe5711862dd959bc6d3e936145768e2c16a9f1acf03c1a3d18124a4d + checksum: 7e6066fb79f6c2994b211223e80ce77a86df1c114643b407de12dfc6f17126b7f0ca0916a4dfe3fa5d4862726289cfe964e5a8137cc0e5c5aa799b6063ac272d languageName: node linkType: hard From a0399aeceff09cae5a708fc951cba3aa88e51de5 Mon Sep 17 00:00:00 2001 From: Damien Couchez Date: Wed, 10 Nov 2021 15:37:24 +0100 Subject: [PATCH 2/3] fix inlineObject names --- app.ts | 20 ++++++------- openapi_spec/paths/indexes/batch.yml | 1 + .../paths/indexes/multipleQueries.yml | 1 + output/client-search/searchApi.ts | 28 +++++++++---------- .../{inlineObject1.ts => batchObject.ts} | 4 +-- output/model/models.ts | 14 +++++----- ...lineObject.ts => multipleQueriesObject.ts} | 10 +++---- yarn.lock | 4 +-- 8 files changed, 40 insertions(+), 42 deletions(-) rename output/model/{inlineObject1.ts => batchObject.ts} (84%) rename output/model/{inlineObject.ts => multipleQueriesObject.ts} (72%) diff --git a/app.ts b/app.ts index c7999257156..66532f09e92 100644 --- a/app.ts +++ b/app.ts @@ -5,18 +5,14 @@ const client = new SearchApi(); async function testClient() { // test openapi gen try { - const res = await client.multipleQueries( - 'R2IYF7ETH7', - 'e1e920e59f457ec70473486171c1d3b6', - { - 'requests' : [ - { - indexName: 'docsearch', - query: 'crawler', - } - ] - } - ); + const res = await client.multipleQueries('R2IYF7ETH7', 'e1e920e59f457ec70473486171c1d3b6', { + requests: [ + { + indexName: 'docsearch', + query: 'crawler', + }, + ], + }); console.log('[1-RESPONSE]', res); } catch (e) { diff --git a/openapi_spec/paths/indexes/batch.yml b/openapi_spec/paths/indexes/batch.yml index 2e64b8ecc91..fe445566404 100644 --- a/openapi_spec/paths/indexes/batch.yml +++ b/openapi_spec/paths/indexes/batch.yml @@ -12,6 +12,7 @@ post: content: application/json: schema: + title: batchObject type: object properties: requests: diff --git a/openapi_spec/paths/indexes/multipleQueries.yml b/openapi_spec/paths/indexes/multipleQueries.yml index 743e6c92199..adccd85b2f7 100644 --- a/openapi_spec/paths/indexes/multipleQueries.yml +++ b/openapi_spec/paths/indexes/multipleQueries.yml @@ -11,6 +11,7 @@ post: content: application/json: schema: + title: multipleQueriesObject type: object additionalProperties: false properties: diff --git a/output/client-search/searchApi.ts b/output/client-search/searchApi.ts index eed73338368..d53955c77e6 100644 --- a/output/client-search/searchApi.ts +++ b/output/client-search/searchApi.ts @@ -1,10 +1,10 @@ import localVarRequest from 'request'; import http from 'http'; -import { InlineObject } from '../model/inlineObject'; -import { InlineObject1 } from '../model/inlineObject1'; +import { BatchObject } from '../model/batchObject'; import { InlineResponse200 } from '../model/inlineResponse200'; import { InlineResponse2001 } from '../model/inlineResponse2001'; +import { MultipleQueriesObject } from '../model/multipleQueriesObject'; import { MultipleQueriesResponse } from '../model/multipleQueriesResponse'; import { ObjectSerializer, Authentication, VoidAuth, Interceptor } from '../model/models'; @@ -81,13 +81,13 @@ export class SearchApi { * @param xAlgoliaApplicationId Algolia appID * @param xAlgoliaAPIKey Algolia API key * @param indexName The index in which to perform the request - * @param inlineObject1 + * @param batchObject */ public async batch( xAlgoliaApplicationId: string, xAlgoliaAPIKey: string, indexName: string, - inlineObject1: InlineObject1, + batchObject: BatchObject, options: { headers: { [name: string]: string } } = { headers: {} } ): Promise<{ response: http.IncomingMessage; body: InlineResponse2001 }> { const localVarPath = @@ -126,9 +126,9 @@ export class SearchApi { throw new Error('Required parameter indexName was null or undefined when calling batch.'); } - // verify required parameter 'inlineObject1' is not null or undefined - if (inlineObject1 === null || inlineObject1 === undefined) { - throw new Error('Required parameter inlineObject1 was null or undefined when calling batch.'); + // verify required parameter 'batchObject' is not null or undefined + if (batchObject === null || batchObject === undefined) { + throw new Error('Required parameter batchObject was null or undefined when calling batch.'); } localVarHeaderParams['X-Algolia-Application-Id'] = ObjectSerializer.serialize( @@ -150,7 +150,7 @@ export class SearchApi { uri: localVarPath, useQuerystring: this._useQuerystring, json: true, - body: ObjectSerializer.serialize(inlineObject1, 'InlineObject1'), + body: ObjectSerializer.serialize(batchObject, 'BatchObject'), }; let authenticationPromise = Promise.resolve(); @@ -194,12 +194,12 @@ export class SearchApi { * @summary Get search results for the given requests. * @param xAlgoliaApplicationId Algolia appID * @param xAlgoliaAPIKey Algolia API key - * @param inlineObject + * @param multipleQueriesObject */ public async multipleQueries( xAlgoliaApplicationId: string, xAlgoliaAPIKey: string, - inlineObject: InlineObject, + multipleQueriesObject: MultipleQueriesObject, options: { headers: { [name: string]: string } } = { headers: {} } ): Promise<{ response: http.IncomingMessage; body: MultipleQueriesResponse }> { const localVarPath = this.basePath + '/1/indexes/*/queries'; @@ -228,10 +228,10 @@ export class SearchApi { ); } - // verify required parameter 'inlineObject' is not null or undefined - if (inlineObject === null || inlineObject === undefined) { + // verify required parameter 'multipleQueriesObject' is not null or undefined + if (multipleQueriesObject === null || multipleQueriesObject === undefined) { throw new Error( - 'Required parameter inlineObject was null or undefined when calling multipleQueries.' + 'Required parameter multipleQueriesObject was null or undefined when calling multipleQueries.' ); } @@ -254,7 +254,7 @@ export class SearchApi { uri: localVarPath, useQuerystring: this._useQuerystring, json: true, - body: ObjectSerializer.serialize(inlineObject, 'InlineObject'), + body: ObjectSerializer.serialize(multipleQueriesObject, 'MultipleQueriesObject'), }; let authenticationPromise = Promise.resolve(); diff --git a/output/model/inlineObject1.ts b/output/model/batchObject.ts similarity index 84% rename from output/model/inlineObject1.ts rename to output/model/batchObject.ts index 6abc7a2bbe2..443d3201bb5 100644 --- a/output/model/inlineObject1.ts +++ b/output/model/batchObject.ts @@ -1,7 +1,7 @@ import { RequestFile } from './models'; import { Operation } from './operation'; -export class InlineObject1 { +export class BatchObject { 'requests'?: Array; static discriminator: string | undefined = undefined; @@ -15,6 +15,6 @@ export class InlineObject1 { ]; static getAttributeTypeMap() { - return InlineObject1.attributeTypeMap; + return BatchObject.attributeTypeMap; } } diff --git a/output/model/models.ts b/output/model/models.ts index 8f28ed6bdd4..3bb3087dfaa 100644 --- a/output/model/models.ts +++ b/output/model/models.ts @@ -1,11 +1,11 @@ import localVarRequest from 'request'; -export * from './inlineObject'; -export * from './inlineObject1'; +export * from './batchObject'; export * from './inlineResponse200'; export * from './inlineResponse2001'; export * from './modelError'; export * from './multipleQueries'; +export * from './multipleQueriesObject'; export * from './multipleQueriesResponse'; export * from './multipleQueriesResponseHits'; export * from './multipleQueriesResponseResults'; @@ -23,12 +23,12 @@ export interface RequestDetailedFile { export type RequestFile = string | Buffer | fs.ReadStream | RequestDetailedFile; -import { InlineObject } from './inlineObject'; -import { InlineObject1 } from './inlineObject1'; +import { BatchObject } from './batchObject'; import { InlineResponse200 } from './inlineResponse200'; import { InlineResponse2001 } from './inlineResponse2001'; import { ModelError } from './modelError'; import { MultipleQueries } from './multipleQueries'; +import { MultipleQueriesObject } from './multipleQueriesObject'; import { MultipleQueriesResponse } from './multipleQueriesResponse'; import { MultipleQueriesResponseHits } from './multipleQueriesResponseHits'; import { MultipleQueriesResponseResults } from './multipleQueriesResponseResults'; @@ -37,18 +37,18 @@ import { Operation } from './operation'; let primitives = ['string', 'boolean', 'double', 'integer', 'long', 'float', 'number', 'any']; let enumsMap: { [index: string]: any } = { - 'InlineObject.StrategyEnum': InlineObject.StrategyEnum, 'MultipleQueries.TypeEnum': MultipleQueries.TypeEnum, + 'MultipleQueriesObject.StrategyEnum': MultipleQueriesObject.StrategyEnum, 'Operation.ActionEnum': Operation.ActionEnum, }; let typeMap: { [index: string]: any } = { - InlineObject: InlineObject, - InlineObject1: InlineObject1, + BatchObject: BatchObject, InlineResponse200: InlineResponse200, InlineResponse2001: InlineResponse2001, ModelError: ModelError, MultipleQueries: MultipleQueries, + MultipleQueriesObject: MultipleQueriesObject, MultipleQueriesResponse: MultipleQueriesResponse, MultipleQueriesResponseHits: MultipleQueriesResponseHits, MultipleQueriesResponseResults: MultipleQueriesResponseResults, diff --git a/output/model/inlineObject.ts b/output/model/multipleQueriesObject.ts similarity index 72% rename from output/model/inlineObject.ts rename to output/model/multipleQueriesObject.ts index 56a098c3731..35d55da74dc 100644 --- a/output/model/inlineObject.ts +++ b/output/model/multipleQueriesObject.ts @@ -1,9 +1,9 @@ import { RequestFile } from './models'; import { MultipleQueries } from './multipleQueries'; -export class InlineObject { +export class MultipleQueriesObject { 'requests': Array; - 'strategy'?: InlineObject.StrategyEnum; + 'strategy'?: MultipleQueriesObject.StrategyEnum; static discriminator: string | undefined = undefined; @@ -16,16 +16,16 @@ export class InlineObject { { name: 'strategy', baseName: 'strategy', - type: 'InlineObject.StrategyEnum', + type: 'MultipleQueriesObject.StrategyEnum', }, ]; static getAttributeTypeMap() { - return InlineObject.attributeTypeMap; + return MultipleQueriesObject.attributeTypeMap; } } -export namespace InlineObject { +export namespace MultipleQueriesObject { export enum StrategyEnum { None = 'none', StopIfEnoughMatches = 'stopIfEnoughMatches', diff --git a/yarn.lock b/yarn.lock index d8d9a85c5f0..3c320844616 100644 --- a/yarn.lock +++ b/yarn.lock @@ -226,11 +226,11 @@ __metadata: "algoliasearch-client-javascript@file:output/::locator=%40algolia%2Fautomation-javascript-client%40workspace%3A.": version: 5.0.0 - resolution: "algoliasearch-client-javascript@file:output/#output/::hash=45fb8f&locator=%40algolia%2Fautomation-javascript-client%40workspace%3A." + resolution: "algoliasearch-client-javascript@file:output/#output/::hash=c742d8&locator=%40algolia%2Fautomation-javascript-client%40workspace%3A." dependencies: "@types/request": ^2.48.7 request: ^2.81.0 - checksum: 7e6066fb79f6c2994b211223e80ce77a86df1c114643b407de12dfc6f17126b7f0ca0916a4dfe3fa5d4862726289cfe964e5a8137cc0e5c5aa799b6063ac272d + checksum: 38077b78c6b1aa562ff3b4d5c8cd844f1291360410c187261bcc78a74dc094d6689d1be153d7a96314beda74486eee9c83b8e9a01e4d9c9ad4ca29a66e3a9402 languageName: node linkType: hard From 7ec58cbbd82d7bcfc2526e5e3bb36f23bec947e1 Mon Sep 17 00:00:00 2001 From: Damien Couchez Date: Wed, 10 Nov 2021 15:42:09 +0100 Subject: [PATCH 3/3] fix responses names --- openapi_spec/paths/indexes/batch.yml | 1 + openapi_spec/paths/indexes/saveObject.yml | 1 + output/client-search/searchApi.ts | 16 ++++++++-------- .../{inlineResponse2001.ts => batchResponse.ts} | 4 ++-- output/model/models.ts | 12 ++++++------ ...nlineResponse200.ts => saveObjectResponse.ts} | 4 ++-- yarn.lock | 4 ++-- 7 files changed, 22 insertions(+), 20 deletions(-) rename output/model/{inlineResponse2001.ts => batchResponse.ts} (87%) rename output/model/{inlineResponse200.ts => saveObjectResponse.ts} (89%) diff --git a/openapi_spec/paths/indexes/batch.yml b/openapi_spec/paths/indexes/batch.yml index fe445566404..d8b3a46ac73 100644 --- a/openapi_spec/paths/indexes/batch.yml +++ b/openapi_spec/paths/indexes/batch.yml @@ -44,6 +44,7 @@ post: content: application/json: schema: + title: batchResponse type: object additionalProperties: false properties: diff --git a/openapi_spec/paths/indexes/saveObject.yml b/openapi_spec/paths/indexes/saveObject.yml index 33a1b640aa4..a8018efa37b 100644 --- a/openapi_spec/paths/indexes/saveObject.yml +++ b/openapi_spec/paths/indexes/saveObject.yml @@ -21,6 +21,7 @@ post: content: application/json: schema: + title: saveObjectResponse type: object additionalProperties: false properties: diff --git a/output/client-search/searchApi.ts b/output/client-search/searchApi.ts index d53955c77e6..bcce3ced559 100644 --- a/output/client-search/searchApi.ts +++ b/output/client-search/searchApi.ts @@ -2,10 +2,10 @@ import localVarRequest from 'request'; import http from 'http'; import { BatchObject } from '../model/batchObject'; -import { InlineResponse200 } from '../model/inlineResponse200'; -import { InlineResponse2001 } from '../model/inlineResponse2001'; +import { BatchResponse } from '../model/batchResponse'; import { MultipleQueriesObject } from '../model/multipleQueriesObject'; import { MultipleQueriesResponse } from '../model/multipleQueriesResponse'; +import { SaveObjectResponse } from '../model/saveObjectResponse'; import { ObjectSerializer, Authentication, VoidAuth, Interceptor } from '../model/models'; @@ -89,7 +89,7 @@ export class SearchApi { indexName: string, batchObject: BatchObject, options: { headers: { [name: string]: string } } = { headers: {} } - ): Promise<{ response: http.IncomingMessage; body: InlineResponse2001 }> { + ): Promise<{ response: http.IncomingMessage; body: BatchResponse }> { const localVarPath = this.basePath + '/1/indexes/{indexName}/batch'.replace( @@ -171,13 +171,13 @@ export class SearchApi { localVarRequestOptions.form = localVarFormParams; } } - return new Promise<{ response: http.IncomingMessage; body: InlineResponse2001 }>( + return new Promise<{ response: http.IncomingMessage; body: BatchResponse }>( (resolve, reject) => { localVarRequest(localVarRequestOptions, (error, response, body) => { if (error) { reject(error); } else { - body = ObjectSerializer.deserialize(body, 'InlineResponse2001'); + body = ObjectSerializer.deserialize(body, 'BatchResponse'); if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) { resolve({ response: response, body: body }); } else { @@ -307,7 +307,7 @@ export class SearchApi { indexName: string, requestBody: { [key: string]: object }, options: { headers: { [name: string]: string } } = { headers: {} } - ): Promise<{ response: http.IncomingMessage; body: InlineResponse200 }> { + ): Promise<{ response: http.IncomingMessage; body: SaveObjectResponse }> { const localVarPath = this.basePath + '/1/indexes/{indexName}'.replace( @@ -393,13 +393,13 @@ export class SearchApi { localVarRequestOptions.form = localVarFormParams; } } - return new Promise<{ response: http.IncomingMessage; body: InlineResponse200 }>( + return new Promise<{ response: http.IncomingMessage; body: SaveObjectResponse }>( (resolve, reject) => { localVarRequest(localVarRequestOptions, (error, response, body) => { if (error) { reject(error); } else { - body = ObjectSerializer.deserialize(body, 'InlineResponse200'); + body = ObjectSerializer.deserialize(body, 'SaveObjectResponse'); if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) { resolve({ response: response, body: body }); } else { diff --git a/output/model/inlineResponse2001.ts b/output/model/batchResponse.ts similarity index 87% rename from output/model/inlineResponse2001.ts rename to output/model/batchResponse.ts index 2ed6b874919..f4effb83765 100644 --- a/output/model/inlineResponse2001.ts +++ b/output/model/batchResponse.ts @@ -1,6 +1,6 @@ import { RequestFile } from './models'; -export class InlineResponse2001 { +export class BatchResponse { /** * taskID of the indexing task to wait for. */ @@ -26,6 +26,6 @@ export class InlineResponse2001 { ]; static getAttributeTypeMap() { - return InlineResponse2001.attributeTypeMap; + return BatchResponse.attributeTypeMap; } } diff --git a/output/model/models.ts b/output/model/models.ts index 3bb3087dfaa..dd7ce871f8a 100644 --- a/output/model/models.ts +++ b/output/model/models.ts @@ -1,8 +1,7 @@ import localVarRequest from 'request'; export * from './batchObject'; -export * from './inlineResponse200'; -export * from './inlineResponse2001'; +export * from './batchResponse'; export * from './modelError'; export * from './multipleQueries'; export * from './multipleQueriesObject'; @@ -10,6 +9,7 @@ export * from './multipleQueriesResponse'; export * from './multipleQueriesResponseHits'; export * from './multipleQueriesResponseResults'; export * from './operation'; +export * from './saveObjectResponse'; import * as fs from 'fs'; @@ -24,8 +24,7 @@ export interface RequestDetailedFile { export type RequestFile = string | Buffer | fs.ReadStream | RequestDetailedFile; import { BatchObject } from './batchObject'; -import { InlineResponse200 } from './inlineResponse200'; -import { InlineResponse2001 } from './inlineResponse2001'; +import { BatchResponse } from './batchResponse'; import { ModelError } from './modelError'; import { MultipleQueries } from './multipleQueries'; import { MultipleQueriesObject } from './multipleQueriesObject'; @@ -33,6 +32,7 @@ import { MultipleQueriesResponse } from './multipleQueriesResponse'; import { MultipleQueriesResponseHits } from './multipleQueriesResponseHits'; import { MultipleQueriesResponseResults } from './multipleQueriesResponseResults'; import { Operation } from './operation'; +import { SaveObjectResponse } from './saveObjectResponse'; let primitives = ['string', 'boolean', 'double', 'integer', 'long', 'float', 'number', 'any']; @@ -44,8 +44,7 @@ let enumsMap: { [index: string]: any } = { let typeMap: { [index: string]: any } = { BatchObject: BatchObject, - InlineResponse200: InlineResponse200, - InlineResponse2001: InlineResponse2001, + BatchResponse: BatchResponse, ModelError: ModelError, MultipleQueries: MultipleQueries, MultipleQueriesObject: MultipleQueriesObject, @@ -53,6 +52,7 @@ let typeMap: { [index: string]: any } = { MultipleQueriesResponseHits: MultipleQueriesResponseHits, MultipleQueriesResponseResults: MultipleQueriesResponseResults, Operation: Operation, + SaveObjectResponse: SaveObjectResponse, }; export class ObjectSerializer { diff --git a/output/model/inlineResponse200.ts b/output/model/saveObjectResponse.ts similarity index 89% rename from output/model/inlineResponse200.ts rename to output/model/saveObjectResponse.ts index 839371c270b..90020ef73aa 100644 --- a/output/model/inlineResponse200.ts +++ b/output/model/saveObjectResponse.ts @@ -1,6 +1,6 @@ import { RequestFile } from './models'; -export class InlineResponse200 { +export class SaveObjectResponse { 'createdAt'?: string; /** * taskID of the indexing task to wait for. @@ -32,6 +32,6 @@ export class InlineResponse200 { ]; static getAttributeTypeMap() { - return InlineResponse200.attributeTypeMap; + return SaveObjectResponse.attributeTypeMap; } } diff --git a/yarn.lock b/yarn.lock index 3c320844616..d0eced75353 100644 --- a/yarn.lock +++ b/yarn.lock @@ -226,11 +226,11 @@ __metadata: "algoliasearch-client-javascript@file:output/::locator=%40algolia%2Fautomation-javascript-client%40workspace%3A.": version: 5.0.0 - resolution: "algoliasearch-client-javascript@file:output/#output/::hash=c742d8&locator=%40algolia%2Fautomation-javascript-client%40workspace%3A." + resolution: "algoliasearch-client-javascript@file:output/#output/::hash=9f2500&locator=%40algolia%2Fautomation-javascript-client%40workspace%3A." dependencies: "@types/request": ^2.48.7 request: ^2.81.0 - checksum: 38077b78c6b1aa562ff3b4d5c8cd844f1291360410c187261bcc78a74dc094d6689d1be153d7a96314beda74486eee9c83b8e9a01e4d9c9ad4ca29a66e3a9402 + checksum: 4a413d1bbbeeaf41a9e4f75a2e9f8be6b827439a80099c57ae0d2b2387da9563ff416133c028989fe17eaa95025e248f8f586d78a08f903819eacae536f73b0b languageName: node linkType: hard