Skip to content

Commit ea8ae06

Browse files
feat(specs): add put and delete API for compositions and rules (generated)
algolia/api-clients-automation#5282 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Ben Kalmus <[email protected]>
1 parent 694141f commit ea8ae06

File tree

4 files changed

+246
-0
lines changed

4 files changed

+246
-0
lines changed

packages/client-composition/model/clientMethodProps.ts

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
22

3+
import type { Composition } from '../model/composition';
4+
import type { CompositionRule } from '../model/compositionRule';
35
import type { CompositionRulesBatchParams } from '../model/compositionRulesBatchParams';
46

57
import type { RequestBody } from '../model/requestBody';
@@ -72,6 +74,30 @@ export type CustomPutProps = {
7274
body?: Record<string, unknown> | undefined;
7375
};
7476

77+
/**
78+
* Properties for the `deleteComposition` method.
79+
*/
80+
export type DeleteCompositionProps = {
81+
/**
82+
* Unique Composition ObjectID.
83+
*/
84+
compositionID: string;
85+
};
86+
87+
/**
88+
* Properties for the `deleteCompositionRule` method.
89+
*/
90+
export type DeleteCompositionRuleProps = {
91+
/**
92+
* Unique Composition ObjectID.
93+
*/
94+
compositionID: string;
95+
/**
96+
* Unique identifier of a rule object.
97+
*/
98+
objectID: string;
99+
};
100+
75101
/**
76102
* Properties for the `getComposition` method.
77103
*/
@@ -124,6 +150,32 @@ export type ListCompositionsProps = {
124150
hitsPerPage?: number | undefined;
125151
};
126152

153+
/**
154+
* Properties for the `putComposition` method.
155+
*/
156+
export type PutCompositionProps = {
157+
/**
158+
* Unique Composition ObjectID.
159+
*/
160+
compositionID: string;
161+
composition: Composition;
162+
};
163+
164+
/**
165+
* Properties for the `putCompositionRule` method.
166+
*/
167+
export type PutCompositionRuleProps = {
168+
/**
169+
* Unique Composition ObjectID.
170+
*/
171+
compositionID: string;
172+
/**
173+
* Unique identifier of a rule object.
174+
*/
175+
objectID: string;
176+
compositionRule: CompositionRule;
177+
};
178+
127179
/**
128180
* Properties for the `saveRules` method.
129181
*/

packages/client-composition/model/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ export * from './snippetResult';
101101
export * from './snippetResultOption';
102102
export * from './sortRemainingBy';
103103
export * from './supportedLanguage';
104+
export * from './taskIDResponse';
104105
export * from './taskStatus';
105106
export * from './timeRange';
106107
export * from './typoTolerance';
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
2+
3+
export type TaskIDResponse = {
4+
/**
5+
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
6+
*/
7+
taskID: number;
8+
};

packages/client-composition/src/compositionClient.ts

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,21 @@ import type { SearchCompositionRulesResponse } from '../model/searchCompositionR
2424

2525
import type { SearchForFacetValuesResponse } from '../model/searchForFacetValuesResponse';
2626
import type { SearchResponse } from '../model/searchResponse';
27+
import type { TaskIDResponse } from '../model/taskIDResponse';
2728

2829
import type {
2930
CustomDeleteProps,
3031
CustomGetProps,
3132
CustomPostProps,
3233
CustomPutProps,
34+
DeleteCompositionProps,
35+
DeleteCompositionRuleProps,
3336
GetCompositionProps,
3437
GetRuleProps,
3538
GetTaskProps,
3639
ListCompositionsProps,
40+
PutCompositionProps,
41+
PutCompositionRuleProps,
3742
SaveRulesProps,
3843
SearchCompositionRulesProps,
3944
SearchForFacetValuesProps,
@@ -307,6 +312,80 @@ export function createCompositionClient({
307312
return transporter.request(request, requestOptions);
308313
},
309314

315+
/**
316+
* Delete a composition from the current Algolia application.
317+
*
318+
* Required API Key ACLs:
319+
* - editSettings
320+
* - settings
321+
* @param deleteComposition - The deleteComposition object.
322+
* @param deleteComposition.compositionID - Unique Composition ObjectID.
323+
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
324+
*/
325+
deleteComposition(
326+
{ compositionID }: DeleteCompositionProps,
327+
requestOptions?: RequestOptions,
328+
): Promise<TaskIDResponse> {
329+
if (!compositionID) {
330+
throw new Error('Parameter `compositionID` is required when calling `deleteComposition`.');
331+
}
332+
333+
const requestPath = '/1/compositions/{compositionID}'.replace(
334+
'{compositionID}',
335+
encodeURIComponent(compositionID),
336+
);
337+
const headers: Headers = {};
338+
const queryParameters: QueryParameters = {};
339+
340+
const request: Request = {
341+
method: 'DELETE',
342+
path: requestPath,
343+
queryParameters,
344+
headers,
345+
};
346+
347+
return transporter.request(request, requestOptions);
348+
},
349+
350+
/**
351+
* Delete a Composition Rule from the specified Composition ID.
352+
*
353+
* Required API Key ACLs:
354+
* - editSettings
355+
* - settings
356+
* @param deleteCompositionRule - The deleteCompositionRule object.
357+
* @param deleteCompositionRule.compositionID - Unique Composition ObjectID.
358+
* @param deleteCompositionRule.objectID - Unique identifier of a rule object.
359+
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
360+
*/
361+
deleteCompositionRule(
362+
{ compositionID, objectID }: DeleteCompositionRuleProps,
363+
requestOptions?: RequestOptions,
364+
): Promise<TaskIDResponse> {
365+
if (!compositionID) {
366+
throw new Error('Parameter `compositionID` is required when calling `deleteCompositionRule`.');
367+
}
368+
369+
if (!objectID) {
370+
throw new Error('Parameter `objectID` is required when calling `deleteCompositionRule`.');
371+
}
372+
373+
const requestPath = '/1/compositions/{compositionID}/rules/{objectID}'
374+
.replace('{compositionID}', encodeURIComponent(compositionID))
375+
.replace('{objectID}', encodeURIComponent(objectID));
376+
const headers: Headers = {};
377+
const queryParameters: QueryParameters = {};
378+
379+
const request: Request = {
380+
method: 'DELETE',
381+
path: requestPath,
382+
queryParameters,
383+
headers,
384+
};
385+
386+
return transporter.request(request, requestOptions);
387+
},
388+
310389
/**
311390
* Retrieve a single composition in the current Algolia application.
312391
*
@@ -482,6 +561,112 @@ export function createCompositionClient({
482561
return transporter.request(request, requestOptions);
483562
},
484563

564+
/**
565+
* Upsert a composition in the current Algolia application.
566+
*
567+
* Required API Key ACLs:
568+
* - editSettings
569+
* - settings
570+
* @param putComposition - The putComposition object.
571+
* @param putComposition.compositionID - Unique Composition ObjectID.
572+
* @param putComposition.composition - The composition object.
573+
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
574+
*/
575+
putComposition(
576+
{ compositionID, composition }: PutCompositionProps,
577+
requestOptions?: RequestOptions,
578+
): Promise<TaskIDResponse> {
579+
if (!compositionID) {
580+
throw new Error('Parameter `compositionID` is required when calling `putComposition`.');
581+
}
582+
583+
if (!composition) {
584+
throw new Error('Parameter `composition` is required when calling `putComposition`.');
585+
}
586+
587+
if (!composition.objectID) {
588+
throw new Error('Parameter `composition.objectID` is required when calling `putComposition`.');
589+
}
590+
if (!composition.name) {
591+
throw new Error('Parameter `composition.name` is required when calling `putComposition`.');
592+
}
593+
if (!composition.behavior) {
594+
throw new Error('Parameter `composition.behavior` is required when calling `putComposition`.');
595+
}
596+
597+
const requestPath = '/1/compositions/{compositionID}'.replace(
598+
'{compositionID}',
599+
encodeURIComponent(compositionID),
600+
);
601+
const headers: Headers = {};
602+
const queryParameters: QueryParameters = {};
603+
604+
const request: Request = {
605+
method: 'PUT',
606+
path: requestPath,
607+
queryParameters,
608+
headers,
609+
data: composition,
610+
};
611+
612+
return transporter.request(request, requestOptions);
613+
},
614+
615+
/**
616+
* Upsert a Composition Rule for the specified composition ID.
617+
*
618+
* Required API Key ACLs:
619+
* - editSettings
620+
* - settings
621+
* @param putCompositionRule - The putCompositionRule object.
622+
* @param putCompositionRule.compositionID - Unique Composition ObjectID.
623+
* @param putCompositionRule.objectID - Unique identifier of a rule object.
624+
* @param putCompositionRule.compositionRule - The compositionRule object.
625+
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
626+
*/
627+
putCompositionRule(
628+
{ compositionID, objectID, compositionRule }: PutCompositionRuleProps,
629+
requestOptions?: RequestOptions,
630+
): Promise<TaskIDResponse> {
631+
if (!compositionID) {
632+
throw new Error('Parameter `compositionID` is required when calling `putCompositionRule`.');
633+
}
634+
635+
if (!objectID) {
636+
throw new Error('Parameter `objectID` is required when calling `putCompositionRule`.');
637+
}
638+
639+
if (!compositionRule) {
640+
throw new Error('Parameter `compositionRule` is required when calling `putCompositionRule`.');
641+
}
642+
643+
if (!compositionRule.objectID) {
644+
throw new Error('Parameter `compositionRule.objectID` is required when calling `putCompositionRule`.');
645+
}
646+
if (!compositionRule.conditions) {
647+
throw new Error('Parameter `compositionRule.conditions` is required when calling `putCompositionRule`.');
648+
}
649+
if (!compositionRule.consequence) {
650+
throw new Error('Parameter `compositionRule.consequence` is required when calling `putCompositionRule`.');
651+
}
652+
653+
const requestPath = '/1/compositions/{compositionID}/rules/{objectID}'
654+
.replace('{compositionID}', encodeURIComponent(compositionID))
655+
.replace('{objectID}', encodeURIComponent(objectID));
656+
const headers: Headers = {};
657+
const queryParameters: QueryParameters = {};
658+
659+
const request: Request = {
660+
method: 'PUT',
661+
path: requestPath,
662+
queryParameters,
663+
headers,
664+
data: compositionRule,
665+
};
666+
667+
return transporter.request(request, requestOptions);
668+
},
669+
485670
/**
486671
* Create or update or delete multiple composition rules.
487672
*

0 commit comments

Comments
 (0)