Как исправить ошибку неверного запроса (код 400) в почтовом запросе? - PullRequest
0 голосов
/ 23 апреля 2019

Я добавляю Agreement Module в свое приложение, где пользователь будет нажимать на флажок, когда он / она соглашается.Когда пользователь установит флажок, он вернет значение true и включит кнопку proceed.После нажатия кнопки proceed он активирует учетную запись пользователя.Проблема в том, что он возвращает status code 400 и не активирует учетную запись пользователя.Я не могу понять, какая часть моего кода имеет ошибку или ошибка происходит со стороны API.

Я попытался проверить его в PostMan, используя те же параметры, которые я использовал в моем APIService.swift файле, он возвращает status code 200 и активирует учетную запись пользователя.

APIService.swift

func createUser(userRole: UserRole, credential: String, email: String, secureText: String, termsConditions: Bool, completion: @escaping validateTaskCompletion) {

guard let createUserURL = URL(string: CREATE_USER_URL) else {
    completion(nil, .InvalidURL)
    return
}

let firstParameterTitle = "firstCredential"
let secondParameterTitle = "userType"
let thirdParameterTitle = "email"
let fourthParameterTitle = "password"
let fifthParameterTitle = "hasAgreedToTermsConditions"

let requestBody: Parameters = [

    firstParameterTitle: credential,
    secondParameterTitle: userRole.rawValue,
    thirdParameterTitle: email,
    fourthParameterTitle: secureText,
    fifthParameterTitle: termsConditions
]

Alamofire.request(createUserURL, method: .post, parameters: requestBody).responseJSON(completionHandler: { (response) in

    guard reachability(responseResult: response.result) else {
        completion(nil, .NoNetwork)
        return
    }

    guard let statusCode = response.response?.statusCode else {
        completion(nil, .NoStatusCode)
        return
    }

    switch(statusCode) {
    case 200:
        completion(true, nil)
    case 400:
        completion(nil, .BadRequest)
    case 404:
        completion(nil, .InvalidCredentials)
    case 409:
        completion(nil, .AlreadyActivated)
    default:
        completion(nil, .UncapturedStatusCode)
        print("**createUser** Uncaptured Status Code: \(statusCode)")
    }

})

Условия и условияVC.swift

var userRole: UserRole!
var firstCredential: String!
var emailString: String!
var confirmPasswordString: String!
var agreedtoTermsConditions: Bool!

@IBAction func checkedButtonTapped(_ sender: UIButton) {

    if sender.isSelected {
        agreedtoTermsConditions = false
        sender.isSelected = false
        self.proceedButton.isEnabled = false

    } else {
        agreedtoTermsConditions = true
        sender.isSelected = true
       self.proceedButton.isEnabled = true

}
}

 @IBAction func proceedButtonTapped(_ sender: UIButton) {

    createUser(userRole: userRole!, credential: firstCredential!, email: emailString, secureText: confirmPasswordString, termsConditions: agreedtoTermsConditions) { (success, error) in

        guard success == true, error == nil else {

            if let networkError = error {

                if networkError == .AlreadyActivated {
                    _ = SCLAlertView(appearance: appearance).showError("Already Activated", subTitle: "\(networkError.rawValue)")
                }else if networkError == .BadRequest {
                    _ = SCLAlertView(appearance: appearance).showError("Error", subTitle: "There is something went wrong. Please try again.")
                }else {
                    _ = SCLAlertView(appearance: appearance).showError("Network Error", subTitle: "\(networkError.rawValue)")
                }
            }

            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "hideLoading"), object: nil)
            return
        }

    }

    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "nextStep"), object: nil)

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...