Add explicit gift availability decoding

This commit is contained in:
Ilya Laktyushin 2025-04-11 12:45:20 +04:00
parent fd0c7918ff
commit da86483d66

View File

@ -75,6 +75,14 @@ public enum StarGift: Equatable, Codable, PostboxCoding {
self.minResaleStars = minResaleStars
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.remains = try container.decode(Int32.self, forKey: .remains)
self.total = try container.decode(Int32.self, forKey: .total)
self.resale = (try? container.decodeIfPresent(Int64.self, forKey: .resale)) ?? 0
self.minResaleStars = try? container.decodeIfPresent(Int64.self, forKey: .minResaleStars)
}
public init(decoder: PostboxDecoder) {
self.remains = decoder.decodeInt32ForKey(CodingKeys.remains.rawValue, orElse: 0)
self.total = decoder.decodeInt32ForKey(CodingKeys.total.rawValue, orElse: 0)
@ -82,6 +90,14 @@ public enum StarGift: Equatable, Codable, PostboxCoding {
self.minResaleStars = decoder.decodeInt64ForKey(CodingKeys.minResaleStars.rawValue, orElse: 0)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.remains, forKey: .remains)
try container.encode(self.total, forKey: .total)
try container.encode(self.resale, forKey: .resale)
try container.encodeIfPresent(self.minResaleStars, forKey: .minResaleStars)
}
public func encode(_ encoder: PostboxEncoder) {
encoder.encodeInt32(self.remains, forKey: CodingKeys.remains.rawValue)
encoder.encodeInt32(self.total, forKey: CodingKeys.total.rawValue)