diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate index 59acbc9..8a12093 100644 Binary files a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate and b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 70e71b3..dfbaa09 100644 --- a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -218,11 +218,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/ListingPreviewViewController.swift" - timestampString = "491395746.298372" + timestampString = "491705640.842647" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "317" - endingLineNumber = "317" + startingLineNumber = "340" + endingLineNumber = "340" landmarkName = "publishItem(_:)" landmarkType = "5"> @@ -234,11 +234,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/ListingPreviewViewController.swift" - timestampString = "491395746.298372" + timestampString = "491705640.842647" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "342" - endingLineNumber = "342" + startingLineNumber = "366" + endingLineNumber = "366" landmarkName = "publishItem(_:)" landmarkType = "5"> @@ -266,7 +266,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/EtsyRESTAPIManager.swift" - timestampString = "491530458.908998" + timestampString = "491705859.140832" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "216" @@ -281,7 +281,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/EtsyRESTAPIManager.swift" - timestampString = "491530458.909179" + timestampString = "491705859.141037" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "219" @@ -401,6 +401,38 @@ endingLineNumber = "610" landmarkName = "sendPOSTRequest(_:body:onCompletion:)" landmarkType = "5"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Vendoo/FacebookGraphAPIManager.swift b/Vendoo/FacebookGraphAPIManager.swift index c196110..90c538d 100644 --- a/Vendoo/FacebookGraphAPIManager.swift +++ b/Vendoo/FacebookGraphAPIManager.swift @@ -173,34 +173,36 @@ extension FacebookGraphAPIManager { } //used to post to users timeline, path must start with '/' - func makePOSTResquest(requestPath: String!, params: [NSObject: AnyObject]!){ + func makePOSTResquest(requestPath: String!, var params: [NSObject: AnyObject]!, onComplete: ServiceResponse){ - /*if(FBSDKAccessToken.currentAccessToken() != nil && FBSDKAccessToken.currentAccessToken().hasGranted("pubish_actions")){*/ - - let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: requestPath, parameters: params, HTTPMethod: "POST") - graphRequest.startWithCompletionHandler({ - (id, result, error) -> Void in + if(FBSDKAccessToken.currentAccessToken() != nil && FBSDKAccessToken.currentAccessToken().hasGranted("publish_actions")){ + params["access_token"] = self.apiKey + "|" + self.apiSecret - - if(error == nil){ + let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: requestPath + "?access_token=" + FBSDKAccessToken.currentAccessToken().tokenString, parameters: params, HTTPMethod: "POST") + graphRequest.startWithCompletionHandler({ + (id, result, error) -> Void in - print(result["id"]) - self.delegate?.listingUploadedFB((result["id"] as? String)!) - print(result) - } - else{ - - } - //save id in firebase so retrieval can be done later - }) - //} + if(error == nil){ + + print(result["id"]) + //self.delegate?.listingUploadedFB((result["id"] as? String)!) + print(result) + onComplete((result["id"] as? String)!, nil) + + } + else{ + print(error) + } + //save id in firebase so retrieval can be done later + }) + } /*else{ print("must reauthenticate facebook") - }*/ - - } + } + + */} //used to delete permissions and listings from users timeline, path must start with '/' func makeDELETIONResquest(requestPath: String!, params: [NSObject: AnyObject]!) -> Bool{ diff --git a/Vendoo/ListingPreviewViewController.swift b/Vendoo/ListingPreviewViewController.swift index aa738b0..bb908a1 100644 --- a/Vendoo/ListingPreviewViewController.swift +++ b/Vendoo/ListingPreviewViewController.swift @@ -47,7 +47,7 @@ class ListingPreviewViewController: UIViewController { self.networks.delegate = self self.networks.dataSource = self self.networks.backgroundView?.backgroundColor = UIColor.whiteColor() - self.graphManager.delegate = self + //self.graphManager.delegate = self } override func viewDidAppear(animated: Bool) { @@ -110,20 +110,20 @@ extension Dictionary { } } } - -//MARK: - FacebookGraphAPIManagerDelegate methods -extension ListingPreviewViewController: FacebookGraphAPIManagerDelegate { - func listingUploadedFB(fbID: String) { - - self.firManager.ref.child("Users").child("\(self.firManager.user_email)").child("user_Listings").child(self.lastListingKey).updateChildValues(["network_listing_IDs":["fbID":fbID]]) - - self.alert.title = "Listing Published" - self.alert.message = "Your listing has been published to facebook" - - self.presentViewController(self.alert, animated: true, completion: nil) - } -} - +/* + //MARK: - FacebookGraphAPIManagerDelegate methods + extension ListingPreviewViewController: FacebookGraphAPIManagerDelegate { + func listingUploadedFB(fbID: String) { + + self.firManager.ref.child("Users").child("\(self.firManager.user_email)").child("user_Listings").child(self.lastListingKey).updateChildValues(["network_listing_IDs":["fbID":fbID]]) + + self.alert.title = "Listing Published" + self.alert.message = "Your listing has been published to facebook" + + self.presentViewController(self.alert, animated: true, completion: nil) + } + } + */ //MARK: - IBActions extension ListingPreviewViewController { @@ -300,15 +300,49 @@ extension ListingPreviewViewController { //post to facebook if(self.networksDictionary["facebook"]!){ dispatch_group_enter(postingGroup) - let parameters: Dictionary = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!)] + + let tmpDirURL = NSURL.fileURLWithPath(NSTemporaryDirectory(), isDirectory: true) + let fileURL = tmpDirURL.URLByAppendingPathComponent("main").URLByAppendingPathExtension("jpg") + print("FilePath: \(fileURL.path!)") + do { + try UIImageJPEGRepresentation(self.itemPicture.image!, 0.45)!.writeToFile(fileURL.path!, options: NSDataWritingOptions.AtomicWrite) + }catch{ + (error) + print(error) + } + + //let parameters: Dictionary = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!)] + + let parameters: Dictionary = ["Source": UIImageJPEGRepresentation(self.itemPicture.image!, 0.45)!, "published":false] self.lastListingKey = newListingRef.key - self.graphManager.makePOSTResquest("me/feed", params: parameters) + self.graphManager.makePOSTResquest("me/photos", params: parameters, onComplete: { + (imageId, error) -> Void in + + var listingParams: Dictionary = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!), "attached_media[0]":"{\"media_fbid\":\"\(imageId as! String)\"}"] + self.graphManager.makePOSTResquest("me/feed", params: listingParams, onComplete: { + (listingId, error) -> Void in + + if((self.newInProgressListing["networkIDs"] == nil)){ + self.newInProgressListing["networkIDs"] = Dictionary() + } + var networkIDs = (self.newInProgressListing["networkIDs"] as! Dictionary) + networkIDs["facebook"] = listingId as! String + self.newInProgressListing["networkIDs"] = networkIDs + dispatch_group_leave(postingGroup) + + + }) + /* + + */ + }) //let parameters: Dictionary = ["":""] - dispatch_group_leave(postingGroup) + } + dispatch_group_notify(postingGroup, dispatch_get_main_queue(), { self.newInProgressListing.update(["listingID": newListingRef.key, "seller email": (NSUserDefaults.standardUserDefaults().objectForKey("email") as? String)!, diff --git a/Vendoo/NetworksTableViewController.swift b/Vendoo/NetworksTableViewController.swift index 8fb8d56..0ec9a96 100644 --- a/Vendoo/NetworksTableViewController.swift +++ b/Vendoo/NetworksTableViewController.swift @@ -443,7 +443,7 @@ extension NetworksTableViewController: UITableViewDelegate { (tabBar as? HomeViewController)?.etsyManager.authorizeApp(self) */ - + } break @@ -491,7 +491,7 @@ extension NetworksTableViewController: UITableViewDelegate { } else{ - + /* //case where class is being used to authorize a network for the app to post on switch (indexPath.row){ case 0: @@ -632,7 +632,7 @@ extension NetworksTableViewController: UITableViewDelegate { break } - +*/ } @@ -755,6 +755,14 @@ extension NetworksTableViewController { }) break case is FBTableViewCell.Type: + let tabBar = self.tabBarController + ((tabBar as? HomeViewController)?.fbGraphManager.authorizeApp(self))! + dispatch_async(dispatch_get_main_queue(), { + sender.setTitle("Logout", forState: UIControlState.Normal) + (sender.superview?.superview as! FBTableViewCell).settingsBtn.enabled = true + (sender.superview?.superview as! FBTableViewCell).settingsBtn.hidden = false + }) + break default: break @@ -785,6 +793,13 @@ extension NetworksTableViewController { }) break case is FBTableViewCell.Type: + let tabBar = self.tabBarController + ((tabBar as? HomeViewController)?.fbGraphManager.deAuthorizeApp(self))! + dispatch_async(dispatch_get_main_queue(), { + sender.setTitle("Login", forState: UIControlState.Normal) + (sender.superview?.superview as! FBTableViewCell).settingsBtn.enabled = false + (sender.superview?.superview as! FBTableViewCell).settingsBtn.hidden = true + }) break default: break