b14a9fa816
This PR contains the work done to improve the documentation efforts in the package, aiming at improving the documentation of the source code as well as the OpenAPI specification document. In addition, a breaking bug has been fixed. Reviewed-on: #16 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
68 lines
1.9 KiB
Swift
68 lines
1.9 KiB
Swift
// ===----------------------------------------------------------------------===
|
|
//
|
|
// This source file is part of the DiscogsService open source project
|
|
//
|
|
// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors
|
|
// Licensed under Apache license v2.0
|
|
//
|
|
// See LICENSE for license information
|
|
// See CONTRIBUTORS for the list of DiscogsService project authors
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
// ===----------------------------------------------------------------------===
|
|
|
|
/// A validation rule type that checks whether an input is empty or not.
|
|
struct NotEmptyValidationRule: InputValidationRule {
|
|
|
|
// MARK: Functions
|
|
|
|
#if swift(>=6.0)
|
|
func validate(_ input: String?) throws(InputValidationError) -> Bool {
|
|
try validate(input: input)
|
|
}
|
|
#else
|
|
func validate(_ input: String?) throws -> Bool {
|
|
try validate(input: input)
|
|
}
|
|
#endif
|
|
|
|
}
|
|
|
|
// MARK: - Definitions
|
|
|
|
extension InputValidationRule where Self == NotEmptyValidationRule {
|
|
|
|
// MARK: Constants
|
|
|
|
/// A validation rule that checks whether an input is empty or not.
|
|
static var notEmpty: Self { .init() }
|
|
|
|
}
|
|
|
|
// MARK: - Helpers
|
|
|
|
private extension NotEmptyValidationRule {
|
|
|
|
// MARK: Functions
|
|
|
|
/// Validates a given input.
|
|
///
|
|
/// > note: This helper function would not be necessary when support for *Swift 5.10* is discontinued.
|
|
///
|
|
/// - Parameter input: An input to be validated.
|
|
/// - Returns: A flag that indicates whether a given input has been validated or not.
|
|
/// - Throws: An error of type ``InputValidationError`` in case the validation failed.
|
|
func validate(input: String?) throws -> Bool {
|
|
guard let input else {
|
|
return false
|
|
}
|
|
guard !input.isEmpty else {
|
|
throw InputValidationError.inputIsEmpty
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
}
|