Skip to content

Commit 73507b0

Browse files
authored
Merge pull request #206 from P24L/fix-putPreferences
Fix PreferenceUnion encoding to preserve $type field in putPreferences
2 parents 20c9de2 + 4dbbe75 commit 73507b0

1 file changed

Lines changed: 29 additions & 15 deletions

File tree

Sources/ATProtoKit/Models/Lexicons/app.bsky/Actor/AppBskyActorDefs.swift

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -798,37 +798,51 @@ extension AppBskyLexicon.Actor {
798798

799799
// Implement custom encoding
800800
public func encode(to encoder: Encoder) throws {
801-
var container = encoder.singleValueContainer()
801+
var container = encoder.container(keyedBy: CodingKeys.self)
802802

803803
switch self {
804804
case .adultContent(let value):
805-
try container.encode(value)
805+
try container.encode("app.bsky.actor.defs#adultContentPref", forKey: .type)
806+
try value.encode(to: encoder)
806807
case .contentLabel(let value):
807-
try container.encode(value)
808+
try container.encode("app.bsky.actor.defs#contentLabelPref", forKey: .type)
809+
try value.encode(to: encoder)
808810
case .savedFeedsVersion2(let value):
809-
try container.encode(value)
811+
try container.encode("app.bsky.actor.defs#savedFeedsPrefV2", forKey: .type)
812+
try value.encode(to: encoder)
810813
case .savedFeeds(let value):
811-
try container.encode(value)
814+
try container.encode("app.bsky.actor.defs#savedFeedsPref", forKey: .type)
815+
try value.encode(to: encoder)
812816
case .personalDetails(let value):
813-
try container.encode(value)
817+
try container.encode("app.bsky.actor.defs#personalDetailsPref", forKey: .type)
818+
try value.encode(to: encoder)
814819
case .feedView(let value):
815-
try container.encode(value)
820+
try container.encode("app.bsky.actor.defs#feedViewPref", forKey: .type)
821+
try value.encode(to: encoder)
816822
case .threadView(let value):
817-
try container.encode(value)
823+
try container.encode("app.bsky.actor.defs#threadViewPref", forKey: .type)
824+
try value.encode(to: encoder)
818825
case .interestViewPreferences(let value):
819-
try container.encode(value)
826+
try container.encode("app.bsky.actor.defs#interestsPref", forKey: .type)
827+
try value.encode(to: encoder)
820828
case .mutedWordsPreferences(let value):
821-
try container.encode(value)
829+
try container.encode("app.bsky.actor.defs#mutedWordsPref", forKey: .type)
830+
try value.encode(to: encoder)
822831
case .hiddenPostsPreferences(let value):
823-
try container.encode(value)
832+
try container.encode("app.bsky.actor.defs#hiddenPostsPref", forKey: .type)
833+
try value.encode(to: encoder)
824834
case .bskyAppStatePreferences(let value):
825-
try container.encode(value)
835+
try container.encode("app.bsky.actor.defs#bskyAppStatePref", forKey: .type)
836+
try value.encode(to: encoder)
826837
case .labelersPreferences(let value):
827-
try container.encode(value)
838+
try container.encode("app.bsky.actor.defs#labelersPref", forKey: .type)
839+
try value.encode(to: encoder)
828840
case .postInteractionSettingsPreference(let value):
829-
try container.encode(value)
841+
try container.encode("app.bsky.actor.defs#postInteractionSettingsPref", forKey: .type)
842+
try value.encode(to: encoder)
830843
case .verificationPreference(let value):
831-
try container.encode(value)
844+
try container.encode("app.bsky.actor.defs#verificationPrefs", forKey: .type)
845+
try value.encode(to: encoder)
832846
default:
833847
break
834848
}

0 commit comments

Comments
 (0)