Skip to content

Commit 5dd6a08

Browse files
Juliane FerreiraJulianeGF
authored andcommitted
Corrige pontos comentados e adiciona url no plist
1 parent ecf6292 commit 5dd6a08

5 files changed

Lines changed: 36 additions & 14 deletions

File tree

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,32 @@
11
import Foundation
22

3+
protocol LoginAPIClientProtocol: AnyObject {
4+
func fetchProperties(completion: @escaping (Result<[Property], ErrorRequest>) -> Void)
5+
}
6+
37
public final class LoginAPIClient {
4-
5-
func getLoginModel(completion: @escaping (Result<(Data, URLResponse), Error>) -> Void) {
6-
URLSession.shared.dataTask(with: URL(string: "https://raw.githubusercontent.com/devpass-tech/challenge-realestate-app/main/api/login.json")!) { data, response, error in
7-
if let error = error {
8-
completion(.failure(error))
9-
} else if let data = data, let response = response {
10-
completion(.success((data, response)))
8+
func fetchProperties(completion: @escaping (Result<LoginModel, ErrorRequest>) -> Void) {
9+
let urlString = ManagerGetURL.getLoginURL()
10+
guard let url = URL(string: urlString) else {
11+
completion(.failure(ErrorRequest.urlNotValid))
12+
return
13+
}
14+
15+
let task = URLSession.shared.dataTask(with: url) { data, response, error in
16+
guard let response = response as? HTTPURLResponse, response.statusCode == 200, let data = data else {
17+
completion(.failure(ErrorRequest.invalidJson))
18+
return
19+
}
20+
do {
21+
let decoder = JSONDecoder()
22+
let result = try decoder.decode(LoginModel.self, from: data)
23+
completion(.success(result))
24+
} catch {
25+
print(error)
26+
completion(.failure(ErrorRequest.noData))
1127
}
12-
13-
assertionFailure("Failure")
1428
}
29+
30+
task.resume()
1531
}
1632
}
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
11
public struct LoginModel: Decodable {
22
let success: Bool
3-
4-
enum CodingKeys: String, CodingKey {
5-
case success = "success"
6-
}
73
}

solutions/devsprint-andre-nogueira-1/RealEstateApp/Plist-URL/ManagerGetURL.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,12 @@ struct ManagerGetURL {
2727
return urlString
2828
}
2929

30+
public static func getLoginURL() -> String {
31+
32+
let baseURL = InfoPlistBaseURL.getStringValue(forKey: "BaseURL")
33+
let login = InfoPlistBaseURL.getStringValue(forKey: "LoginRequestEndPoint")
34+
let urlString = baseURL + login
35+
36+
return urlString
37+
}
3038
}

solutions/devsprint-andre-nogueira-1/RealEstateApp/Resources/Info.plist

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
<string>favorites.json</string>
99
<key>PropertyRequestEndPoint</key>
1010
<string>listings.json</string>
11+
<key>LoginRequestEndPoint</key>
12+
<string>login.json</string>
1113
<key>NSAppTransportSecurity</key>
1214
<dict>
1315
<key>NSAllowsArbitraryLoads</key>

solutions/devsprint-andre-nogueira-1/RealEstateApp/Screens/PropertyList/PropertyListViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import UIKit
1010
class PropertyListViewController: UIViewController {
1111

1212
private let viewModel: PropertyListViewModelProtocol
13-
13+
1414
private let propertyListView: PropertyListView = {
1515
let propertyListView = PropertyListView()
1616
return propertyListView

0 commit comments

Comments
 (0)