wake-ios/wake/Utils/PasswordLogin.swift

50 lines
1.4 KiB
Swift

import Foundation //
struct LoginResponse: Codable {
let token: String?
let error: String?
}
func callLoginAPI() {
// 1. URL
let urlString = "https://api.memorywake.com/api/v1/iam/login/password-login"
guard let url = URL(string: urlString) else {
print("Invalid URL")
return
}
// 2.
let body = ["username": "testUser", "password": "test123"]
guard let jsonData = try? JSONSerialization.data(withJSONObject: body) else {
print("JSON encoding failed")
return
}
print(jsonData)
// 3.
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = jsonData
print(request)
// 4.
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error.localizedDescription)")
return
}
guard let data = data else {
print("No data received")
return
}
do {
let result = try JSONDecoder().decode(LoginResponse.self, from: data)
print("Token: \(result.token ?? "nil")")
} catch {
print("Decoding error: \(error)")
}
}
task.resume()
}