Skip to content

Commit 8a12874

Browse files
algolia-botben-kalmusClaraMuller
committed
feat(specs): add compositions deduplication setting (generated)
algolia/api-clients-automation#5418 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Ben Kalmus <[email protected]> Co-authored-by: Clara Muller <[email protected]>
1 parent 2134a81 commit 8a12874

File tree

7 files changed

+115
-2
lines changed

7 files changed

+115
-2
lines changed

packages/client_composition/lib/algolia_client_composition.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ export 'src/model/composition_source.dart';
3232
export 'src/model/composition_source_search.dart';
3333
export 'src/model/compositions_search_response.dart';
3434
export 'src/model/condition.dart';
35+
export 'src/model/dedup_positioning.dart';
36+
export 'src/model/deduplication.dart';
3537
export 'src/model/delete_composition_action.dart';
3638
export 'src/model/delete_composition_rule_action.dart';
3739
export 'src/model/error_base.dart';

packages/client_composition/lib/src/deserialize.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ import 'package:algolia_client_composition/src/model/composition_source.dart';
2525
import 'package:algolia_client_composition/src/model/composition_source_search.dart';
2626
import 'package:algolia_client_composition/src/model/compositions_search_response.dart';
2727
import 'package:algolia_client_composition/src/model/condition.dart';
28+
import 'package:algolia_client_composition/src/model/dedup_positioning.dart';
29+
import 'package:algolia_client_composition/src/model/deduplication.dart';
2830
import 'package:algolia_client_composition/src/model/delete_composition_action.dart';
2931
import 'package:algolia_client_composition/src/model/delete_composition_rule_action.dart';
3032
import 'package:algolia_client_composition/src/model/error_base.dart';
@@ -184,6 +186,11 @@ ReturnType deserialize<ReturnType, BaseType>(dynamic value, String targetType,
184186
as ReturnType;
185187
case 'Condition':
186188
return Condition.fromJson(value as Map<String, dynamic>) as ReturnType;
189+
case 'DedupPositioning':
190+
return DedupPositioning.fromJson(value) as ReturnType;
191+
case 'Deduplication':
192+
return Deduplication.fromJson(value as Map<String, dynamic>)
193+
as ReturnType;
187194
case 'DeleteCompositionAction':
188195
return DeleteCompositionAction.fromJson(value as Map<String, dynamic>)
189196
as ReturnType;
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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+
// ignore_for_file: unused_element
3+
import 'package:json_annotation/json_annotation.dart';
4+
5+
/// Deduplication positioning configures how a duplicate result should be resolved between an injected item and main search results. Current configuration supports: - 'highest': always select the item in the highest position, and remove duplicates that appear lower in the results. - 'highestInjected': duplicate result will be moved to its highest possible injected position, but not higher. If a duplicate appears higher in main search results, it will be removed to stay it's intended group position (which could be lower than main).
6+
@JsonEnum(valueField: 'raw')
7+
enum DedupPositioning {
8+
highest(r'highest'),
9+
highestInjected(r'highestInjected');
10+
11+
const DedupPositioning(this.raw);
12+
final dynamic raw;
13+
14+
dynamic toJson() => raw;
15+
16+
static DedupPositioning fromJson(dynamic json) {
17+
for (final value in values) {
18+
if (value.raw == json) return value;
19+
}
20+
throw ArgumentError.value(json, "raw", "No enum value with that value");
21+
}
22+
23+
@override
24+
String toString() => raw.toString();
25+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
// ignore_for_file: unused_element
3+
import 'package:algolia_client_composition/src/model/dedup_positioning.dart';
4+
5+
import 'package:json_annotation/json_annotation.dart';
6+
7+
part 'deduplication.g.dart';
8+
9+
@JsonSerializable()
10+
final class Deduplication {
11+
/// Returns a new [Deduplication] instance.
12+
const Deduplication({
13+
required this.positioning,
14+
});
15+
16+
@JsonKey(name: r'positioning')
17+
final DedupPositioning positioning;
18+
19+
@override
20+
bool operator ==(Object other) =>
21+
identical(this, other) ||
22+
other is Deduplication && other.positioning == positioning;
23+
24+
@override
25+
int get hashCode => positioning.hashCode;
26+
27+
factory Deduplication.fromJson(Map<String, dynamic> json) =>
28+
_$DeduplicationFromJson(json);
29+
30+
Map<String, dynamic> toJson() => _$DeduplicationToJson(this);
31+
32+
@override
33+
String toString() {
34+
return toJson().toString();
35+
}
36+
}

packages/client_composition/lib/src/model/deduplication.g.dart

Lines changed: 30 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/client_composition/lib/src/model/injection.dart

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// ignore_for_file: unused_element
33
import 'package:algolia_client_composition/src/model/injected_item.dart';
44
import 'package:algolia_client_composition/src/model/main.dart';
5+
import 'package:algolia_client_composition/src/model/deduplication.dart';
56

67
import 'package:json_annotation/json_annotation.dart';
78

@@ -13,6 +14,7 @@ final class Injection {
1314
const Injection({
1415
required this.main,
1516
this.injectedItems,
17+
this.deduplication,
1618
});
1719

1820
@JsonKey(name: r'main')
@@ -22,15 +24,20 @@ final class Injection {
2224
@JsonKey(name: r'injectedItems')
2325
final List<InjectedItem>? injectedItems;
2426

27+
@JsonKey(name: r'deduplication')
28+
final Deduplication? deduplication;
29+
2530
@override
2631
bool operator ==(Object other) =>
2732
identical(this, other) ||
2833
other is Injection &&
2934
other.main == main &&
30-
other.injectedItems == injectedItems;
35+
other.injectedItems == injectedItems &&
36+
other.deduplication == deduplication;
3137

3238
@override
33-
int get hashCode => main.hashCode + injectedItems.hashCode;
39+
int get hashCode =>
40+
main.hashCode + injectedItems.hashCode + deduplication.hashCode;
3441

3542
factory Injection.fromJson(Map<String, dynamic> json) =>
3643
_$InjectionFromJson(json);

packages/client_composition/lib/src/model/injection.g.dart

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)