I use alamofire with put method, for send bool value, but when I try to print the return of my request it transform from bool value to an int.
But in my database I really neeed to stock a bool value. Here is my code
func sendNewData(key:String, index: Int, value: Bool, sectionName: String) -> Void {
let url:String = "\(self.API_URL_BASE)\(API_URL_SETTINGS)"
var parameters: Parameters
parameters = [
sectionName: [
key: value,
]
]
Alamofire.request(url, method: .put, parameters: parameters, headers: Api.headers).responseJSON
{ response in
if (response.error == nil)
{
let json = JSON(response.result.value!)
if (json["status"].stringValue == "ok")
{
self.getSettings()
}
}
else
{
print(response.error)
}
}
}
func getSettings() -> Void {
let url:String = "\(self.API_URL_BASE)\(API_URL_SETTINGS)"
Alamofire.request(url, method: .get, headers: Api.headers).responseJSON
{ response in
if (response.error == nil)
{
let json = JSON(response.result.value!)
print(json)
}
else
{
print(response.error as Any)
}
}
}
getSettings method return me:
{ "status" : "ok", "data" : { "misc" : { "beInAnonymousPanel" : "0" } } }
Instead of:
{ "status" : "ok", "data" : { "misc" : { "beInAnonymousPanel" : true } } }
I find some other topic and it's before swift3 and they got no good solution.
Edit: I use swiftyjson
I finally found my answer, I forgot to encode my parameters:
Alamofire.request(url, method: .put, parameters: parameters, encoding: JSONEncoding.default, headers: Api.headers).responseJSON
{ response in.. }