@IBAction func validButton(_ sender: Any) {
Task { @MainActor in
if verif() {
let date = universalDate
let address = self.addressEditTextClient.text
let cp = self.cpEditTextClient.text
let city = self.villeEditTextClient.text
let accessibilite = self.villeEditTextClient.text
let type_chantier = self.typeChantierEditTextClient.text
let email = email
var urlLink = "my link"
//dateFormat
let parameters = [my parameter]
var sParams = ""
for (key,value) in parameters{
//domain.com?parameter1Key=parameter1Value¶meter2Key=parameter2Value
sParams += key + "=" + (value) + "&"
print("\(key),\(value)")
}
if !sParams.isEmpty{
sParams = "?" + sParams
if sParams.hasSuffix("&"){
sParams.removeLast()
}
urlLink = urlLink + sParams
}else{
print("!sParams.isEmpty fail")
}
let serializer = DataResponseSerializer(emptyResponseCodes: [200,204,205])
let urlString = urlLink.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! //This will fill the spaces with the %20
//API
let request = URLRequest(url : URL(string:urlString)!)
AF.request(request).uploadProgress{progress in }.response(responseSerializer: serializer){ [self] response in
if response.error == nil {
var responseString: String!
responseString = ""
if response.data != nil {
//receive data-->responseString and put into dataJson
responseString = String(bytes:response.data!, encoding: .utf8)
var dataJson = responseString
//remove [ ] on the dataJson
dataJson = dataJson!.replacingOccurrences(of: "[", with: "")
dataJson = dataJson!.replacingOccurrences(of: "]", with: "")
let jsonObjectData = dataJson!.data(using: .utf8)!
let data = try? JSONDecoder().decode(
Data.self,
from: jsonObjectData
)
print(data?.result as Any)
}else{
responseString = response.response?.description
}
print("response time: \(response.metrics?.taskInterval.duration ?? 0)")
}
}
}
else{
print("it pass through")
}
}
}
here is verif :
func verif() -> Bool {
var check = true;
textBlanc()
var message = "Attention : \n";
if !checkIssetEditText() {
message += " - il faut remplir tous les champs pour valider";
check = false;
} else {
let address1 = makeAddress(let: self.addressEditTextClient.text!,
let: self.cpEditTextClient.text!,
let: self.villeEditTextClient.text!)
let address2 = makeAddress(let: "Toulouse",
let: "",
let: "")
var lat1 = 0.00
var lat2 = 0.00
var long1 = 0.00
var long2 = 0.00
Task {
do {
let coordinates = try await getLatLongFromAddress(withAddress: address1)
lat1 = coordinates.latitude
long1 = coordinates.longitude
print("when i call it : lat1 : ",lat1," long1 : ",long1)
} catch {
print(error)
}
do {
let coordinates = try await getLatLongFromAddress(withAddress: address2)
lat2 = coordinates.latitude
long2 = coordinates.longitude
print("when i call it : lat1 : ",lat1," long1 : ",long1)
} catch {
print(error)
}
}
print(" lat1 : ", lat1," long1 : ",long1)
print(" lat2 : ",lat2," long2 : ",long2)
if !checkCP(let: self.cpEditTextClient.text!){
cpEditTextClient.textColor = .yellow
message += " - le code postal est incorrect \n"
check = false
} else if !checkAddress(let: lat1, let: lat2, let: long1, let: long2, let : 55.0){
addressEditTextClient.textColor = .yellow
cpEditTextClient.textColor = .yellow
villeEditTextClient.textColor = .yellow
message += " - les livraisons ne peuvent aller au-delà de 50 km de la ville \n"
check = false
}
}
if !check {
let alert = messageAlerte(let: message,let:"")
self.present(alert, animated: true, completion: nil)
}
print("end")
return check
}
and my function and log is still the same i just remove my url and my parameter from my button