Skip to content

Basic get doesn't work #41

@solkpolk

Description

@solkpolk

Adding custom activities in a feed causes a parsing error unless the entire feed contains the same activities

final class GossipActivity: EnrichedActivity<GetStream.User, String, DefaultReaction> {
    private enum CodingKeys: String, CodingKey {
        case user
    }
    
    var user: AvatarLead

    init(verb: Verb, object: String, user: AvatarLead, startDate: Date = Date()) {
        self.user = user
        super.init(actor: .init(id: user.id), verb: verb, object: object)
    }
    
    required init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        user = try container.decode(AvatarLead.self, forKey: .user)
        try super.init(from: decoder)
    }
    
    override public func encode(to encoder: Encoder) throws {
        var container = encoder.container(keyedBy: CodingKeys.self)
        try container.encode(user, forKey: .user)
        try super.encode(to: encoder)
    }
}
self.userFeed?.get(typeOf: GossipActivity.self, completion: { result in
            switch result {
                case .success(let activiti):
                    self.gossip = activiti.results
                case .failure(let e):
                    print(e)
            }
        })

This is dangerous because if one activity does not confirm to GossipActivity then the entire feed disappears.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions