Lots of changes

This commit is contained in:
Vladimir Dubovik
2024-12-09 12:42:27 +03:00
parent e7510aef68
commit 955c7d9066
6 changed files with 96 additions and 32 deletions

View File

@ -7,8 +7,35 @@
import Foundation
enum NetworkError: String, Error {
case invalidUrl = "Invalid URL"
case invalidResponse = "Invalid response form the server"
case invalidData = "Data received from the server is invalid"
enum NetworkError: String, Error, LocalizedError {
case invalidUrl
case invalidResponse
case invalidData
case noNetwork
var errorDescription: String? {
switch self {
case .invalidUrl:
"InvalidUrl"
case .invalidResponse:
"InvalidResponse"
case .invalidData:
"Проверьте номер группы"
case .noNetwork:
"No network connection"
}
}
var failureReason: String {
switch self {
case .invalidUrl:
"Похоже не удалось составить ссылку для api"
case .invalidResponse:
"Для этой недели расписания еще нет"
case .invalidData:
"Похоже такой группы не существует"
case .noNetwork:
"Проверьте подключение к интернету и попробуйте заново"
}
}
}

View File

@ -26,7 +26,7 @@ final class NetworkManager {
}
func makeUrlForWeek(_ numOfWeek: Int, _ htmlNameOfGroup: String) -> String {
return urlForWeek + htmlNameOfGroup + "&" + String(numOfWeek)
return urlForWeek + htmlNameOfGroup + "&week=" + String(numOfWeek)
}
func getSchedule(_ group: String) async throws -> Schedule {
@ -42,8 +42,10 @@ final class NetworkManager {
throw NetworkError.invalidData
}
}
func getScheduleForOtherWeek(_ numOfWeek: Int, _ htmlNameOfGroup: String) async throws -> Schedule {
let newUrlForWeek = makeUrlForWeek(numOfWeek, htmlNameOfGroup)
print(newUrlForWeek)
guard let url = URL(string: newUrlForWeek) else {throw NetworkError.invalidUrl}
let (data, response) = try await URLSession.shared.data(from: url)
guard let response = response as? HTTPURLResponse, response.statusCode == 200 else {throw NetworkError.invalidResponse}