0

I am creating an Event app where in the user should tap Check In Button to register for the event. registered_flag : false will be true and registered_type: 0 will be 1 once the user tapped the button. But as I build and run the app, error appeared that says

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.})).

I am not really confident regarding the content of my codes in my APIService. Hope someone will help me to correct my codes so I could build and run my app successfully. Thank you so much.

application/json that needs to be updated which inside event_participant

{
   "registered_flag": false,
    "registration_type": 0
}

event_participant

"event_participants": [
    {
        "participant_id": "70984656-92bc-4c36-9314-2c741f068523",
        "employee_number": null,
        "last_name": "Surname",
        "first_name": "FirstName",
        "middle_name": null,
        "display_name": "Surname, FirstName ",
        "department_name": "Department",
        "position_name": "Developer",
        "registered_flag": false,
        "registered_datetime": "2018-09-13T08:54:40.150",
        "registration_type": 0,
        "delete_flag": false,
        "manual_reg_flag": false,
        "out_flag": false,
        "out_datetime": null,
        "classification": 6,
        "others": "Guest"
      }
    }

API Service using PUT request in Alamofire

func updateParticipant(updateType: UpdateParticipantType,
                       participantID: String,
                       completionHandler: @escaping(([Attendee]?, Error?) -> Void)) {

    let updateParticipantURL = URL(string: "\(REGISTER_PARTICIPANT_URL)/\(updateType)/\(participantID)")

    let headers: HTTPHeaders = [
        "Content-Type": "application/json"
    ]

    let parameters: Parameters = [
        "registered_flag": false,
        "registration_type": 0
    ]

    Alamofire.request(updateParticipantURL!, method: .put, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in

        switch response.result {
        case .success:
            print("Done")

            if let jsonArray = response.result.value as? [[String : Any]] {
                for anItem in jsonArray {
                    if let eventparticipant = anItem["event_participants"] as? [[String : Any]] {
                        var extractedAttendee = [Attendee]()
                        for participant in eventparticipant{
                            print(participant)
                            let success = Attendee.init(JSON: participant)
                            extractedAttendee.append(success!)
                        }
                        completionHandler(extractedAttendee, nil)
                    }
                }
            }

        case .failure(let error):
            completionHandler(nil, error)
        }
    }
}

Struct for Attendee

struct Attendee: Decodable {

let id: String
let employeeNumber: String?
let lastName: String
let firstName: String
let middleName: String
let displayName: String
let department: String
let position: String
let registeredFlag: Bool
let registeredDateTime: Date?
let registrationType: Int
let deleteFlag: Bool
let manualFlag: Bool
let outFlag: Bool
let outDateTime: Date?
let classification: Int?
let others: String?

postman response

Titus
  • 349
  • 4
  • 19

0 Answers0