Skip to content

Commit e214519

Browse files
feat(specs): add fields for metadata in composition injectedItems (generated)
algolia/api-clients-automation#5241 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Gavin Wade <[email protected]>
1 parent ce8942b commit e214519

File tree

2 files changed

+101
-3
lines changed

2 files changed

+101
-3
lines changed

Sources/Composition/Models/CompositionHit.swift

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,22 @@ public struct CompositionHit: Codable, JSONEncodable {
1717
public var snippetResult: [String: CompositionSnippetResult]?
1818
public var rankingInfo: CompositionHitRankingInfo?
1919
public var distinctSeqID: Int?
20+
public var extra: CompositionHitMetadata?
2021

2122
public init(
2223
objectID: String,
2324
highlightResult: [String: CompositionHighlightResult]? = nil,
2425
snippetResult: [String: CompositionSnippetResult]? = nil,
2526
rankingInfo: CompositionHitRankingInfo? = nil,
26-
distinctSeqID: Int? = nil
27+
distinctSeqID: Int? = nil,
28+
extra: CompositionHitMetadata? = nil
2729
) {
2830
self.objectID = objectID
2931
self.highlightResult = highlightResult
3032
self.snippetResult = snippetResult
3133
self.rankingInfo = rankingInfo
3234
self.distinctSeqID = distinctSeqID
35+
self.extra = extra
3336
}
3437

3538
public enum CodingKeys: String, CodingKey, CaseIterable {
@@ -38,6 +41,7 @@ public struct CompositionHit: Codable, JSONEncodable {
3841
case snippetResult = "_snippetResult"
3942
case rankingInfo = "_rankingInfo"
4043
case distinctSeqID = "_distinctSeqID"
44+
case extra = "_extra"
4145
}
4246

4347
public var additionalProperties: [String: AnyCodable] = [:]
@@ -68,9 +72,11 @@ public struct CompositionHit: Codable, JSONEncodable {
6872

6973
self.distinctSeqID = dictionary["distinctSeqID"]?.value as? Int
7074

75+
self.extra = dictionary["extra"]?.value as? CompositionHitMetadata
76+
7177
for (key, value) in dictionary {
7278
switch key {
73-
case "objectID", "highlightResult", "snippetResult", "rankingInfo", "distinctSeqID":
79+
case "objectID", "highlightResult", "snippetResult", "rankingInfo", "distinctSeqID", "extra":
7480
continue
7581
default:
7682
self.additionalProperties[key] = value
@@ -87,6 +93,7 @@ public struct CompositionHit: Codable, JSONEncodable {
8793
try container.encodeIfPresent(self.snippetResult, forKey: .snippetResult)
8894
try container.encodeIfPresent(self.rankingInfo, forKey: .rankingInfo)
8995
try container.encodeIfPresent(self.distinctSeqID, forKey: .distinctSeqID)
96+
try container.encodeIfPresent(self.extra, forKey: .extra)
9097
var additionalPropertiesContainer = encoder.container(keyedBy: String.self)
9198
try additionalPropertiesContainer.encodeMap(self.additionalProperties)
9299
}
@@ -107,12 +114,14 @@ public struct CompositionHit: Codable, JSONEncodable {
107114
)
108115
self.rankingInfo = try container.decodeIfPresent(CompositionHitRankingInfo.self, forKey: .rankingInfo)
109116
self.distinctSeqID = try container.decodeIfPresent(Int.self, forKey: .distinctSeqID)
117+
self.extra = try container.decodeIfPresent(CompositionHitMetadata.self, forKey: .extra)
110118
var nonAdditionalPropertyKeys = Set<String>()
111119
nonAdditionalPropertyKeys.insert("objectID")
112120
nonAdditionalPropertyKeys.insert("_highlightResult")
113121
nonAdditionalPropertyKeys.insert("_snippetResult")
114122
nonAdditionalPropertyKeys.insert("_rankingInfo")
115123
nonAdditionalPropertyKeys.insert("_distinctSeqID")
124+
nonAdditionalPropertyKeys.insert("_extra")
116125
let additionalPropertiesContainer = try decoder.container(keyedBy: String.self)
117126
self.additionalProperties = try additionalPropertiesContainer.decodeMap(
118127
AnyCodable.self,
@@ -127,7 +136,8 @@ extension CompositionHit: Equatable {
127136
lhs.highlightResult == rhs.highlightResult &&
128137
lhs.snippetResult == rhs.snippetResult &&
129138
lhs.rankingInfo == rhs.rankingInfo &&
130-
lhs.distinctSeqID == rhs.distinctSeqID
139+
lhs.distinctSeqID == rhs.distinctSeqID &&
140+
lhs.extra == rhs.extra
131141
&& lhs.additionalProperties == rhs.additionalProperties
132142
}
133143
}
@@ -139,6 +149,7 @@ extension CompositionHit: Hashable {
139149
hasher.combine(self.snippetResult?.hashValue)
140150
hasher.combine(self.rankingInfo?.hashValue)
141151
hasher.combine(self.distinctSeqID?.hashValue)
152+
hasher.combine(self.extra?.hashValue)
142153
hasher.combine(self.additionalProperties.hashValue)
143154
}
144155
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on
2+
// https://github.com/algolia/api-clients-automation. DO NOT EDIT.
3+
4+
import Foundation
5+
#if canImport(Core)
6+
import Core
7+
#endif
8+
9+
/// An object that contains the extra key-value pairs provided in the injectedItem definition.
10+
public struct CompositionHitMetadata: Codable, JSONEncodable {
11+
/// The key of the injectedItem that inserted this metadata.
12+
public var injectedItemKey: String?
13+
14+
public init(injectedItemKey: String? = nil) {
15+
self.injectedItemKey = injectedItemKey
16+
}
17+
18+
public enum CodingKeys: String, CodingKey, CaseIterable {
19+
case injectedItemKey = "_injectedItemKey"
20+
}
21+
22+
public var additionalProperties: [String: AnyCodable] = [:]
23+
24+
public subscript(key: String) -> AnyCodable? {
25+
get {
26+
if let value = additionalProperties[key] {
27+
return value
28+
}
29+
return nil
30+
}
31+
32+
set {
33+
self.additionalProperties[key] = newValue
34+
}
35+
}
36+
37+
public init(from dictionary: [String: AnyCodable]) throws {
38+
self.injectedItemKey = dictionary["injectedItemKey"]?.value as? String
39+
40+
for (key, value) in dictionary {
41+
switch key {
42+
case "injectedItemKey":
43+
continue
44+
default:
45+
self.additionalProperties[key] = value
46+
}
47+
}
48+
}
49+
50+
// Encodable protocol methods
51+
52+
public func encode(to encoder: Encoder) throws {
53+
var container = encoder.container(keyedBy: CodingKeys.self)
54+
try container.encodeIfPresent(self.injectedItemKey, forKey: .injectedItemKey)
55+
var additionalPropertiesContainer = encoder.container(keyedBy: String.self)
56+
try additionalPropertiesContainer.encodeMap(self.additionalProperties)
57+
}
58+
59+
// Decodable protocol methods
60+
61+
public init(from decoder: Decoder) throws {
62+
let container = try decoder.container(keyedBy: CodingKeys.self)
63+
64+
self.injectedItemKey = try container.decodeIfPresent(String.self, forKey: .injectedItemKey)
65+
var nonAdditionalPropertyKeys = Set<String>()
66+
nonAdditionalPropertyKeys.insert("_injectedItemKey")
67+
let additionalPropertiesContainer = try decoder.container(keyedBy: String.self)
68+
self.additionalProperties = try additionalPropertiesContainer.decodeMap(
69+
AnyCodable.self,
70+
excludedKeys: nonAdditionalPropertyKeys
71+
)
72+
}
73+
}
74+
75+
extension CompositionHitMetadata: Equatable {
76+
public static func ==(lhs: CompositionHitMetadata, rhs: CompositionHitMetadata) -> Bool {
77+
lhs.injectedItemKey == rhs.injectedItemKey
78+
&& lhs.additionalProperties == rhs.additionalProperties
79+
}
80+
}
81+
82+
extension CompositionHitMetadata: Hashable {
83+
public func hash(into hasher: inout Hasher) {
84+
hasher.combine(self.injectedItemKey?.hashValue)
85+
hasher.combine(self.additionalProperties.hashValue)
86+
}
87+
}

0 commit comments

Comments
 (0)