Release Candidate Version 1.6

This commit is contained in:
Vicnet
2023-12-15 13:43:56 +01:00
parent 222685e05d
commit bb68b29bdf
16 changed files with 1020 additions and 275 deletions

View File

@@ -6,6 +6,7 @@
//
import Foundation
import SwiftUI
public enum NotImplementedError: Error, CustomStringConvertible {
case notImplemented
@@ -27,3 +28,43 @@ public enum NetworkError: String, Error {
case dataError = "Invalid data error."
}
public enum ServerError: Error {
case unknownError, missingRequestBody, duplicateRecipe, noImage, missingRecipeName, recipeNotFound, deleteFailed, requestUnsuccessful
static func decodeFromURLResponse(response: HTTPURLResponse?) -> ServerError? {
guard let response = response else {
return ServerError.unknownError
}
print("Status code: ", response.statusCode)
switch response.statusCode {
case 200...299: return nil
case 400: return .missingRequestBody
case 404: return .recipeNotFound
case 409: return .duplicateRecipe
case 406: return .noImage
case 422: return .missingRecipeName
case 500: return .requestUnsuccessful
case 502: return .deleteFailed
default: return ServerError.unknownError
}
}
var localizedDescription: LocalizedStringKey {
switch self {
case .noImage: return "The recipe has no image whose MIME type matches the Accept header"
case .missingRecipeName: return "There was no name in the request given for the recipe. Cannot save the recipe."
default: return "An unknown server error occured."
}
}
var localizedTitle: LocalizedStringKey {
switch self {
case .missingRequestBody: return "Missing Request Body"
case .duplicateRecipe: return "Duplicate Recipe"
case .noImage: return "Image MIME Error"
case .missingRecipeName: return "Missing Name"
default: return "Error"
}
}
}