Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- final class AvatarUploader {
- func upload(imageData: Data ,responseHandler: @escaping (Error?) -> Void) {
- let request = createMultipartRequest(imageData: imageData)
- // return body as Data
- print("Fire....")
- let session = URLSession.shared
- print(request)
- let task = session.dataTask(with: request) { (data, response, error) in
- print("Complete")
- if error != nil {
- print("error upload : \(error)")
- responseHandler(error)
- return
- }
- do {
- if let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String: Any] {
- responseHandler(nil)
- print("SUCCESS")
- } else {
- print("Invalid Json")
- }
- }
- catch {
- print(error)
- responseHandler(error)
- }
- }
- task.resume()
- }
- private func createMultipartRequest(imageData: Data) -> URLRequest {
- var request = URLRequest(url: URL(string: "https://canon-photos-dev.canon-cpc.gigsternetwork.com/graphql")!)
- request.httpMethod = "POST"
- let uuid = UUID().uuidString
- request.setValue("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", forHTTPHeaderField: "Content-Type")
- request.setValue("Bearer \(SessionHelper.shared.currentUser.token)", forHTTPHeaderField: "Authorization")
- var body = Data()
- body.append("Content-Disposition: form-data; name=\"operations\"\n\n".data(using: .utf8)!)
- let mutation =
- """
- {\"query\":
- \"mutation($userId: Int!, $file: PhotoUpload!) { setUserAvatar(userId: $userId, file: $file) { userImage } }\",
- \"variables\": {
- \"userId\": \(SessionHelper.shared.currentUser.userId),
- \"file\": null
- }
- }\n\n
- """
- body.append(mutation.data(using: .utf8)!)
- body.append("Content-Disposition: form-data; name=\"map\"\n\n".data(using: .utf8)!)
- body.append("{\"0\":[\"variables.file\"]}\n\n".data(using: .utf8)!)
- body.append("Content-Disposition: form-data; name=\"0\"; filename=\(uuid).jpeg\n\n".data(using: .utf8)!)
- // body.append(imageData)
- body.append("------WebKitFormBoundary7MA4YWxkTrZu0gW--)".data(using: .utf8)!)
- print(String(data: body, encoding: .utf8))
- request.httpBody = body
- return request
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement