Merge pull request 'auth_manage' (#4) from auth_manage into master
Reviewed-on: AllDev/Swift#4pull/7/head
commit
a9d586ac82
@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// Singleton.swift
|
||||||
|
// AllIn
|
||||||
|
//
|
||||||
|
// Created by étudiant on 11/10/2023.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
class Singleton {
|
||||||
|
|
||||||
|
static let singleton = Singleton()
|
||||||
|
|
||||||
|
var user: User?
|
||||||
|
|
||||||
|
var auth: AuthService = AuthService()
|
||||||
|
|
||||||
|
private init() { }
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
//
|
||||||
|
// User.swift
|
||||||
|
// AllIn
|
||||||
|
//
|
||||||
|
// Created by étudiant on 11/10/2023.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
class User {
|
||||||
|
|
||||||
|
public var Username: String
|
||||||
|
public var Email: String
|
||||||
|
public var NbCoins: Int
|
||||||
|
|
||||||
|
public init(Username: String, andEmail Email: String, NbCoins: Int) {
|
||||||
|
self.Username = Username
|
||||||
|
self.Email = Email
|
||||||
|
self.NbCoins = NbCoins
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,59 @@
|
|||||||
|
//
|
||||||
|
// AuthService.swift
|
||||||
|
// AllIn
|
||||||
|
//
|
||||||
|
// Created by étudiant on 11/10/2023.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
class AuthService {
|
||||||
|
|
||||||
|
let baseURL : String = "https://codefirst.iut.uca.fr/containers/AllDev-api/"
|
||||||
|
|
||||||
|
public func login(email : String, password : String, completion : @escaping (Int)-> ()){
|
||||||
|
let url = URL(string: baseURL+"users/login")!
|
||||||
|
var request = URLRequest(url: url)
|
||||||
|
request.httpMethod = "POST"
|
||||||
|
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
|
||||||
|
|
||||||
|
let json = [
|
||||||
|
"username":email,
|
||||||
|
"password":password,
|
||||||
|
]
|
||||||
|
|
||||||
|
if let jsonData = try? JSONSerialization.data(withJSONObject: json, options: []){
|
||||||
|
URLSession.shared.uploadTask(with: request, from: jsonData) { data, response, error in
|
||||||
|
print ("ALLIN : Process LOGIN")
|
||||||
|
if let httpResponse = response as? HTTPURLResponse {
|
||||||
|
completion(httpResponse.statusCode)
|
||||||
|
}
|
||||||
|
}.resume()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public func register(email : String, password : String, username : String, completion : @escaping (Int)-> ()){
|
||||||
|
let url = URL(string: baseURL+"/users/register")!
|
||||||
|
var request = URLRequest(url: url)
|
||||||
|
request.httpMethod = "POST"
|
||||||
|
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
|
||||||
|
|
||||||
|
let json = [
|
||||||
|
"email":email,
|
||||||
|
"username":username,
|
||||||
|
"password":password,
|
||||||
|
"nbCoins": "0"
|
||||||
|
]
|
||||||
|
|
||||||
|
if let jsonData = try? JSONSerialization.data(withJSONObject: json, options: []){
|
||||||
|
URLSession.shared.uploadTask(with: request, from: jsonData) { data, response, error in
|
||||||
|
print ("ALLIN : Process REGISTER")
|
||||||
|
if let httpResponse = response as? HTTPURLResponse {
|
||||||
|
completion(httpResponse.statusCode)
|
||||||
|
}
|
||||||
|
}.resume()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in new issue