HuggingChat-Mac/Models/HuggingChatUser.swift (30 lines of code) (raw):
//
// HuggingChatUser.swift
// HuggingChat-Mac
//
// Created by Cyril Zakka on 8/23/24.
//
import Foundation
struct HuggingChatUser: Decodable, Equatable {
let id: String
let username: String
let email: String
let avatarUrl: URL
let hfUserId: String
enum CodingKeys: CodingKey {
case id
case username
case email
case avatarUrl
case hfUserId
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.id = try container.decode(String.self, forKey: .id)
self.username = try container.decode(String.self, forKey: .username)
self.email = (try? container.decode(String.self, forKey: .email)) ?? ""
self.avatarUrl = (try? container.decode(URL.self, forKey: .avatarUrl)) ?? URL(string: "https://google.fr")!
self.hfUserId = try container.decode(String.self, forKey: .hfUserId)
}
init(id: String, username: String, email: String, avatarUrl: URL, hfUserId: String) {
self.id = id
self.username = username
self.email = email
self.avatarUrl = avatarUrl
self.hfUserId = hfUserId
}
}