NetNewsWire/Frameworks/Account/Feedbin/FeedbinSubscription.swift

75 lines
1.4 KiB
Swift

//
// FeedbinFeed.swift
// Account
//
// Created by Brent Simmons on 12/10/17.
// Copyright © 2017 Ranchero Software, LLC. All rights reserved.
//
import Foundation
import RSCore
import RSParser
struct FeedbinSubscription: Hashable, Codable {
let subscriptionID: Int
let feedID: Int
let name: String?
let url: String
let homePageURL: String?
let jsonFeed: FeedbinSubscriptionJSONFeed?
enum CodingKeys: String, CodingKey {
case subscriptionID = "id"
case feedID = "feed_id"
case name = "title"
case url = "feed_url"
case homePageURL = "site_url"
case jsonFeed = "json_feed"
}
public func hash(into hasher: inout Hasher) {
hasher.combine(subscriptionID)
}
static func == (lhs: FeedbinSubscription, rhs: FeedbinSubscription) -> Bool {
return lhs.subscriptionID == rhs.subscriptionID
}
}
struct FeedbinSubscriptionJSONFeed: Codable {
let favicon: String?
let icon: String?
enum CodingKeys: String, CodingKey {
case favicon = "favicon"
case icon = "icon"
}
}
struct FeedbinCreateSubscription: Codable {
let feedURL: String
enum CodingKeys: String, CodingKey {
case feedURL = "feed_url"
}
}
struct FeedbinUpdateSubscription: Codable {
let title: String
enum CodingKeys: String, CodingKey {
case title
}
}
struct FeedbinSubscriptionChoice: Codable {
let name: String?
let url: String
enum CodingKeys: String, CodingKey {
case name = "title"
case url = "feed_url"
}
}