//
//  Credentials.swift
//  NetNewsWire
//
//  Created by Brent Simmons on 12/9/17.
//  Copyright © 2017 Ranchero Software. All rights reserved.
//

import Foundation

public enum CredentialsError: Error, Sendable {
	case incompleteCredentials
	case unhandledError(status: OSStatus)
}

public enum CredentialsType: String, Sendable {
	case basic = "password"
	case newsBlurBasic = "newsBlurBasic"
	case newsBlurSessionId = "newsBlurSessionId"
	case readerBasic = "readerBasic"
	case readerAPIKey = "readerAPIKey"
	case oauthAccessToken = "oauthAccessToken"
	case oauthAccessTokenSecret = "oauthAccessTokenSecret"
	case oauthRefreshToken = "oauthRefreshToken"
}

public struct Credentials: Equatable, Sendable {
	public let type: CredentialsType
	public let username: String
	public let secret: String
	
	public init(type: CredentialsType, username: String, secret: String) {
		self.type = type
		self.username = username
		self.secret = secret
	}
}
