// // List.swift // Pachyderm // // Created by Shadowfacts on 9/9/18. // Copyright © 2018 Shadowfacts. All rights reserved. // import Foundation public class List: Decodable { public let id: String public let title: String public var timeline: Timeline { return .list(id: id) } public static func getAccounts(_ list: List, range: RequestRange = .default) -> Request<[Account]> { var request = Request<[Account]>(method: .get, path: "/api/v1/lists/\(list.id)/accounts") request.range = range return request } public static func update(_ list: List, title: String) -> Request { return Request(method: .put, path: "/api/v1/lists/\(list.id)", body: .parameters(["title" => title])) } public static func delete(_ list: List) -> Request { return Request(method: .delete, path: "/api/v1/lists/\(list.id)") } public static func add(_ list: List, accounts accountIDs: [String]) -> Request { return Request(method: .post, path: "/api/v1/lists/\(list.id)/accounts", body: .parameters( "account_ids" => accountIDs )) } public static func remove(_ list: List, accounts accountIDs: [String]) -> Request { return Request(method: .delete, path: "/api/v1/lists/\(list.id)/accounts", body: .parameters( "account_ids" => accountIDs )) } private enum CodingKeys: String, CodingKey { case id case title } }