From d0016c988bb6e3611cd91bc4eb5b24215b47ecdc Mon Sep 17 00:00:00 2001 From: Okechi Onyeje Date: Fri, 3 Jun 2016 18:49:03 -0400 Subject: [PATCH] Facebook integrated into new listing workflow, 3 more api's to go, still need to figure out uploading pictures in the same timeline post, but able to save post id to firebase --- .../UserInterfaceState.xcuserstate | Bin 74876 -> 75015 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 413 ++++-------------- Vendoo/FacebookGraphAPIManager.swift | 32 +- Vendoo/ItemTableViewController.swift | 30 +- Vendoo/ListingPreviewViewController.swift | 43 +- 5 files changed, 170 insertions(+), 348 deletions(-) diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate index 08692ff583356f75982188a044ea9cec98400614..4b20e361c5d3a2cd54eba82e7ea1b0c1cc6cc174 100644 GIT binary patch delta 23837 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

__;r!2$aPnlyT1zrnGMUf6R88v9@`;f_Wb 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 diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index e4d41de..9132308 100644 --- a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -3,86 +3,6 @@ type = "0" version = "2.0"> - - - - - - - - - - - - - - - - - - - - @@ -105,44 +25,107 @@ shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Vendoo/ListingPreviewViewController.swift" - timestampString = "486667688.077144" + filePath = "Vendoo/FacebookGraphAPIManager.swift" + timestampString = "486683097.861171" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "114" - endingLineNumber = "114" - landmarkName = "publishItem(_:)" + startingLineNumber = "174" + endingLineNumber = "174" + landmarkName = "makePOSTResquest(_:params:)" + landmarkType = "5"> + + + + + + + + + + + + + startingLineNumber = "96" + endingLineNumber = "96" + offsetFromSymbolStart = "27"> + startingLineNumber = "94" + endingLineNumber = "94" + offsetFromSymbolStart = "4"> + + @@ -153,239 +136,15 @@ shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Vendoo/ListingPreviewViewController.swift" - timestampString = "486667688.077144" + filePath = "Vendoo/FacebookGraphAPIManager.swift" + timestampString = "486685960.664377" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "116" - endingLineNumber = "116" - landmarkName = "publishItem(_:)" + startingLineNumber = "187" + endingLineNumber = "187" + landmarkName = "makePOSTResquest(_:params:)" landmarkType = "5"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Vendoo/FacebookGraphAPIManager.swift b/Vendoo/FacebookGraphAPIManager.swift index bf17a7b..3e88276 100644 --- a/Vendoo/FacebookGraphAPIManager.swift +++ b/Vendoo/FacebookGraphAPIManager.swift @@ -10,11 +10,15 @@ import Foundation import OAuthSwift import FBSDKCoreKit import FBSDKLoginKit +import FBSDKShareKit import AeroGearHttp import AeroGearOAuth2 import OAuthSwift import Locksmith +protocol FacebookGraphAPIManagerDelegate { + func listingUploadedFB(fbID: String) +} /* NOTES: @@ -33,6 +37,8 @@ class FacebookGraphAPIManager: NSObject { private var userEmail:String = (NSUserDefaults.standardUserDefaults().objectForKey("email") as? String)! private let login: FBSDKLoginManager = FBSDKLoginManager() var isAuthorized: Bool = NSUserDefaults.standardUserDefaults().boolForKey("fbAuthorized") + var listingID: String! + var delegate: FacebookGraphAPIManagerDelegate? //---------------------------------------------// override init(){ @@ -131,15 +137,25 @@ extension FacebookGraphAPIManager { } -//MARK: - request methods(GET, POST, DELETE) +//MARK: - request methods(GET, POST, DELETE, SHARE) extension FacebookGraphAPIManager { + //share method + func makeSHARERequest(image: UIImage){ + let photo : FBSDKSharePhoto = FBSDKSharePhoto() + photo.image = image + photo.userGenerated = true + let content : FBSDKSharePhotoContent = FBSDKSharePhotoContent() + content.photos = [photo] + } + //when making request make sure path starts with '/' func makeGETRequest(requestPath: String!, params: [NSObject: AnyObject]!) -> Bool{ let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: requestPath, parameters: params) var boolResult: Bool = false + dispatch_async(dispatch_get_main_queue(), { graphRequest.startWithCompletionHandler({ (id, result, error) -> Void in @@ -148,6 +164,7 @@ extension FacebookGraphAPIManager { + }) }) return boolResult @@ -162,7 +179,18 @@ extension FacebookGraphAPIManager { let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: requestPath, parameters: params, HTTPMethod: "POST") graphRequest.startWithCompletionHandler({ (id, result, error) -> Void in - print(result) + + + if(error == nil){ + + print(result["id"]) + self.delegate?.listingUploadedFB((result["id"] as? String)!) + print(result) + + } + else{ + + } //save id in firebase so retrieval can be done later }) //} diff --git a/Vendoo/ItemTableViewController.swift b/Vendoo/ItemTableViewController.swift index c8dced9..611aca1 100644 --- a/Vendoo/ItemTableViewController.swift +++ b/Vendoo/ItemTableViewController.swift @@ -106,19 +106,23 @@ extension ItemTableViewController: UITableViewDataSource{ if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["areNetworksChosen"])!){ cell.networks.hidden = true }else{ - if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["ebay"])!){ - cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 0, inSection: 0))?.hidden = true - } - if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["amazon"])!){ - cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 1, inSection: 0))?.hidden = true - } - if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["etsy"])!){ - cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 2, inSection: 0))?.hidden = true - - } - if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["facebook"])!){ - cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 3, inSection: 0))?.hidden = true - } + dispatch_async(dispatch_get_main_queue(), { + if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["ebay"])!){ + cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 0, inSection: 0))?.hidden = true + } + if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["amazon"])!){ + cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 1, inSection: 0))?.hidden = true + } + if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["etsy"])!){ + cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 2, inSection: 0))?.hidden = true + + } + if(!((self.tabBarController as? HomeViewController)!.userListings[indexPath.row].networks["facebook"])!){ + cell.networks.cellForItemAtIndexPath(NSIndexPath(forRow: 3, inSection: 0))?.hidden = true + } + + }) + } return cell } diff --git a/Vendoo/ListingPreviewViewController.swift b/Vendoo/ListingPreviewViewController.swift index 100a56d..4d5cd1d 100644 --- a/Vendoo/ListingPreviewViewController.swift +++ b/Vendoo/ListingPreviewViewController.swift @@ -31,7 +31,8 @@ class ListingPreviewViewController: UIViewController { private var graphManager: FacebookGraphAPIManager! = nil private var firManager: FirebaseManager! = nil private var itemListingDictionary: Dictionary! = Dictionary() - + private var alert = UIAlertController(title: "Listing Published", message: "Your listing has been published", preferredStyle: .Alert) + private var lastListingKey: String! override func viewDidLoad() { super.viewDidLoad() @@ -42,6 +43,7 @@ class ListingPreviewViewController: UIViewController { self.networks.delegate = self self.networks.dataSource = self self.networks.backgroundView?.backgroundColor = UIColor.whiteColor() + self.graphManager.delegate = self } override func viewDidAppear(animated: Bool) { @@ -86,6 +88,21 @@ class ListingPreviewViewController: UIViewController { } + +//MARK: - FacebookGraphAPIManagerDelegate methods +extension ListingPreviewViewController: FacebookGraphAPIManagerDelegate { + func listingUploadedFB(fbID: String) { + + var ref = 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 { @@ -122,19 +139,33 @@ extension ListingPreviewViewController { newListingRef.setValue(listing) - let alert = UIAlertController(title: "Listing Published", message: "Your listing has been published", preferredStyle: .Alert) + self.alert.title = "Listing saved with error" + self.alert.message = "Your listing has been saved but something went wrong when trying to publish to facebook" - alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: nil)})) - self.presentViewController(alert, animated: true, completion: nil) + //let alert = UIAlertController(title: "Listing Published", message: "Your listing has been published", preferredStyle: .Alert) + self.alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in self.alert.dismissViewControllerAnimated(true, completion: nil)})) + + let parameters: Dictionary = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!)] + + if(self.networksDictionary["facebook"]!){ + //need to reverse process and upload to firebase last so that all network listing id's can be saved to firebase for notification access. + self.lastListingKey = newListingRef.key + self.graphManager.makePOSTResquest("me/feed", params: parameters) + + } + + + + //register new listing id in global path of firebase root' + self.firManager.ref.child("Global_listings").child(newListingRef.key).setValue(newListingRef.key) }) - //register new listing id in global path of firebase root' - self.firManager.ref.child("Global_listings").setValue(newListingRef.key) + })