Skip to content

Commit

Permalink
Add default values on decoding for ResolveResponse
Browse files Browse the repository at this point in the history
  • Loading branch information
fabriziodemaria committed Feb 7, 2025
1 parent 3588ae8 commit d458e09
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions Sources/Confidence/RemoteResolveConfidenceClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,36 @@ struct ResolvedFlag: Codable {
var variant: String = ""
var flagSchema: StructFlagSchema? = StructFlagSchema(schema: [:])
var reason: ResolveReason

enum CodingKeys: String, CodingKey {
case flag, value, variant, flagSchema, reason
}

init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
flag = try container.decode(String.self, forKey: .flag)
value = try container.decodeIfPresent(NetworkStruct.self, forKey: .value) ?? NetworkStruct(fields: [:])
variant = try container.decodeIfPresent(String.self, forKey: .variant) ?? ""
flagSchema = try container.decodeIfPresent(StructFlagSchema.self, forKey: .flagSchema) ?? StructFlagSchema(schema: [:])

Check failure on line 126 in Sources/Confidence/RemoteResolveConfidenceClient.swift

View workflow job for this annotation

GitHub Actions / SwiftLint

Line Length Violation: Line should be 120 characters or less; currently it has 127 characters (line_length)
reason = try container.decode(ResolveReason.self, forKey: .reason)
}

init(
flag: String,
value: NetworkStruct? = NetworkStruct(fields: [:]),
variant: String = "",
flagSchema: StructFlagSchema? = StructFlagSchema(schema: [:]),
reason: ResolveReason)

Check failure on line 135 in Sources/Confidence/RemoteResolveConfidenceClient.swift

View workflow job for this annotation

GitHub Actions / SwiftLint

Multiline Parameters Brackets Violation: Multiline parameters should have their surrounding brackets in a new line (multiline_parameters_brackets)
{
self.flag = flag
self.value = value
self.variant = variant
self.flagSchema = flagSchema
self.reason = reason
}
}


public enum ResolveReason: String, Codable, CaseIterableDefaultsLast {
case unspecified = "RESOLVE_REASON_UNSPECIFIED"
case match = "RESOLVE_REASON_MATCH"
Expand Down

0 comments on commit d458e09

Please sign in to comment.