Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func uploadPokemonOnAPI(){
- let headers = ["Authorization":Session.getUser()!.authString]
- let typeIds = choosenTypes.map({"\($0.typeId)"})
- let moveIds = choosenMoves.map({"\($0.moveID)"} )
- let attributes = [
- "name":nameTextField.text!,
- "height":heightTextField.text!,
- "weight":weightTextField.text!,
- "order":"30",
- "is_default":"1",
- "gender_id":"1",
- "base_experience":"20",
- "type_ids":typeIds,
- "move_ids": moveIds,
- "description": descriptionTextView.text!
- ]
- showSpinner()
- Alamofire.upload(.POST, "https://pokeapi.infinum.co/api/v1/pokemons", headers: headers, multipartFormData: {
- multipartFormData in
- if let image = self.pokePicImageView.image {
- if let imageData = UIImageJPEGRepresentation(image, 0.8) {
- multipartFormData.appendBodyPart(data: imageData, name: "data[attributes][image]", fileName: "file.jpeg", mimeType: "image/jpeg")
- }
- }
- for (key, value) in attributes {
- if value is [String] {
- do {
- let jsonData = try NSJSONSerialization.dataWithJSONObject(value, options: NSJSONWritingOptions.PrettyPrinted)
- let string = NSString(data: jsonData, encoding: NSUTF8StringEncoding)!
- multipartFormData.appendBodyPart(data: string.dataUsingEncoding(NSUTF8StringEncoding)!, name: "data[attributes][" + (key as! String) + "]")
- }
- catch let error as NSError{
- print(error.description)
- }
- }
- else {
- multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: "data[attributes][" + (key as! String) + "]")
- }
- }
- }, encodingCompletion: {
- encodingResult in
- switch encodingResult {
- case .Success(let upload, _, _):
- upload.responseString(completionHandler: { (response) in
- if let data = response.data {
- print(String(data: data, encoding: NSUTF8StringEncoding))
- }
- print(response.result)
- })
- self.pokemonUploadedDelegate?.onNewPokemonUploaded()
- self.showSpinnerWithSuccessStatus("Pokemon created succesfully!")
- self.performSelector(#selector(self.goToHomeScreen), withObject: nil, afterDelay: 0.5)
- case .Failure(let encodingError):
- print(encodingError)
- }
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement