Skip to content

Commit 697b4bc

Browse files
committed
Рефактор
1 parent dd78291 commit 697b4bc

File tree

4 files changed

+26
-29
lines changed

4 files changed

+26
-29
lines changed

SwiftUI-WorkoutApp.xcodeproj/project.pbxproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,14 +576,14 @@
576576
6798AA5F280AF61700DB76F1 /* Models */ = {
577577
isa = PBXGroup;
578578
children = (
579+
672BE761281FD4E300579183 /* AuthData.swift */,
579580
6798AA85280C135E00DB76F1 /* Country.swift */,
580581
672BE767281FD60F00579183 /* City.swift */,
581582
6798AA4D280AF32A00DB76F1 /* SportsGround.swift */,
582583
675EC648281289FB00C2E229 /* SportsGroundSize.swift */,
583584
675EC64A28128B7E00C2E229 /* SportsGroundGrade.swift */,
584585
67891E32283E8E6900B10802 /* SportsGroundForm.swift */,
585586
67891E39283EB15300B10802 /* SportsGroundResult.swift */,
586-
672BE761281FD4E300579183 /* AuthData.swift */,
587587
6758B931281DB1F7001D83D8 /* LoginResponse.swift */,
588588
6758B933281DC198001D83D8 /* UserResponse.swift */,
589589
67E4266C2821429500DF82A7 /* UserModel.swift */,

SwiftUI-WorkoutApp/Models/AuthData.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,4 @@ struct AuthData: Codable {
77
var base64Encoded: String? {
88
(login + ":" + password).data(using: .utf8)?.base64EncodedString()
99
}
10-
11-
static var emptyValue: Self {
12-
.init(login: "", password: "")
13-
}
1410
}

SwiftUI-WorkoutApp/Services/APIService.swift

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ struct APIService {
5757
/// - model: данные для изменения
5858
/// - Returns: `true` в случае успеха, `false` при ошибках
5959
func editUser(_ id: Int, model: MainUserForm) async throws -> Bool {
60-
let authData = await defaults.basicAuthInfo
60+
let authData = try await defaults.basicAuthInfo()
6161
let endpoint = Endpoint.editUser(id: id, form: model)
6262
let result = try await makeResult(UserResponse.self, for: endpoint.urlRequest)
6363
await defaults.saveAuthData(.init(login: model.userName, password: authData.password))
@@ -77,7 +77,7 @@ struct APIService {
7777

7878
/// Запрашивает удаление профиля текущего пользователя приложения
7979
func deleteUser() async throws {
80-
let endpoint = await Endpoint.deleteUser(auth: defaults.basicAuthInfo)
80+
let endpoint = try await Endpoint.deleteUser(auth: defaults.basicAuthInfo())
8181
if try await makeStatus(for: endpoint.urlRequest) {
8282
await defaults.triggerLogout()
8383
}
@@ -495,20 +495,6 @@ private extension APIService {
495495
return .init(configuration: config)
496496
}
497497

498-
func finalRequest(_ request: URLRequest?, needAuth: Bool = true) async -> URLRequest? {
499-
if needAuth,
500-
let encodedString = await defaults.basicAuthInfo.base64Encoded {
501-
var requestWithBasicAuth = request
502-
requestWithBasicAuth?.setValue(
503-
"Basic \(encodedString)",
504-
forHTTPHeaderField: "Authorization"
505-
)
506-
return requestWithBasicAuth
507-
} else {
508-
return request
509-
}
510-
}
511-
512498
/// Загружает данные в нужном формате или отдает ошибку
513499
/// - Parameters:
514500
/// - type: тип, который нужно загрузить
@@ -533,6 +519,25 @@ private extension APIService {
533519
return try handle(response)
534520
}
535521

522+
/// Формирует итоговый запрос к серверу
523+
/// - Parameters:
524+
/// - request: первоначальный запрос
525+
/// - needAuth: `true` - нужна базовая аутентификация, `false` - не нужна
526+
/// - Returns: Итоговый запрос к серверу
527+
func finalRequest(_ request: URLRequest?, needAuth: Bool = true) async -> URLRequest? {
528+
if needAuth,
529+
let encodedString = try? await defaults.basicAuthInfo().base64Encoded {
530+
var requestWithBasicAuth = request
531+
requestWithBasicAuth?.setValue(
532+
"Basic \(encodedString)",
533+
forHTTPHeaderField: "Authorization"
534+
)
535+
return requestWithBasicAuth
536+
} else {
537+
return request
538+
}
539+
}
540+
536541
/// Обрабатывает ответ сервера и возвращает данные в нужном формате
537542
func handle<T: Decodable>(
538543
_ type: T.Type,
@@ -548,7 +553,7 @@ private extension APIService {
548553
}
549554
#if DEBUG
550555
print("--- Получили ответ:")
551-
dump(response)
556+
print(response)
552557
print("--- Полученный JSON:\n\(data.prettyJson)")
553558
do {
554559
_ = try JSONDecoder().decode(type, from: data)
@@ -564,7 +569,7 @@ private extension APIService {
564569
func handle(_ response: URLResponse?) throws -> Bool {
565570
#if DEBUG
566571
print("--- Получили ответ:")
567-
dump(response)
572+
print(response)
568573
#endif
569574
let responseCode = (response as? HTTPURLResponse)?.statusCode
570575
if responseCode != Constants.API.codeOK {

SwiftUI-WorkoutApp/Services/DefaultsService.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,8 @@ final class DefaultsService: ObservableObject {
6868
}
6969
}
7070

71-
var basicAuthInfo: AuthData {
72-
if let info = try? JSONDecoder().decode(AuthData.self, from: authData) {
73-
return info
74-
} else {
75-
return .emptyValue
76-
}
71+
func basicAuthInfo() throws -> AuthData {
72+
try JSONDecoder().decode(AuthData.self, from: authData)
7773
}
7874

7975
func setUserNeedUpdate(_ newValue: Bool) {

0 commit comments

Comments
 (0)