NetNewsWire/Frameworks/Account/NewsBlur/Models/NewsBlurFolderChange.swift

48 lines
1.2 KiB
Swift

//
// NewsBlurFolderChange.swift
// Account
//
// Created by Anh Quang Do on 2020-03-14.
// Copyright (c) 2020 Ranchero Software, LLC. All rights reserved.
//
import Foundation
enum NewsBlurFolderChange {
case add(String)
case rename(String, String)
case delete(String, [String])
}
extension NewsBlurFolderChange: NewsBlurDataConvertible {
var asData: Data? {
var postData = URLComponents()
postData.queryItems = {
switch self {
case .add(let name):
return [
URLQueryItem(name: "folder", value: name),
URLQueryItem(name: "parent_folder", value: ""), // root folder
]
case .rename(let from, let to):
return [
URLQueryItem(name: "folder_to_rename", value: from),
URLQueryItem(name: "new_folder_name", value: to),
URLQueryItem(name: "in_folder", value: ""), // root folder
]
case .delete(let name, let feedIDs):
var queryItems = [
URLQueryItem(name: "folder_to_delete", value: name),
URLQueryItem(name: "in_folder", value: ""), // root folder
]
queryItems.append(contentsOf: feedIDs.map { id in
URLQueryItem(name: "feed_id", value: id)
})
return queryItems
}
}()
return postData.percentEncodedQuery?.data(using: .utf8)
}
}