mirror of
https://bitbucket.org/vendoo/vendoo_v1.0.git
synced 2025-12-25 19:57:41 +00:00
Multiple Images Works for Firebase and Facebook
Currently getting the correct number of ebay images uploaded with listing but images are duplicates of the first image posted
This commit is contained in:
parent
0aa8f23789
commit
c11fe99bda
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -207,8 +207,10 @@ extension EbayWebServiceManager {
|
|||||||
self.requestMaker(soapMessage, theRequest: theRequest)
|
self.requestMaker(soapMessage, theRequest: theRequest)
|
||||||
}
|
}
|
||||||
|
|
||||||
func addImagesToListing(listingID: String, imageURL: String, onCompletion: ServiceResponse) {
|
func addImagesToListing(listingID: String, imageURLs: [String], listingOnCompletion: ServiceResponse, body: [String:String],onCompletion: ServiceResponse) {
|
||||||
|
|
||||||
|
listItem(body, imageUrls: imageURLs, completion: listingOnCompletion)
|
||||||
|
/*
|
||||||
var soapMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
|
var soapMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
|
||||||
"<ReviseItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">" +
|
"<ReviseItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">" +
|
||||||
"<RequesterCredentials>" +
|
"<RequesterCredentials>" +
|
||||||
@ -217,21 +219,26 @@ extension EbayWebServiceManager {
|
|||||||
|
|
||||||
soapMessage = soapMessage + "<ErrorLanguage>en_US</ErrorLanguage>" +
|
soapMessage = soapMessage + "<ErrorLanguage>en_US</ErrorLanguage>" +
|
||||||
"<Item>" +
|
"<Item>" +
|
||||||
"<ItemID>\(listingID)</ItemID>" +
|
"<ItemID>\(listingID)</ItemID>"
|
||||||
"<PictureDetails>" +
|
|
||||||
"<PictureURL>\(imageURL.stringByReplacingOccurrencesOfString("&", withString: "&"))</PictureURL>" +
|
for i in 0...(imageURLs.count - 1) {
|
||||||
"</PictureDetails>" +
|
soapMessage = soapMessage + "<PictureDetails>" +
|
||||||
"</Item></ReviseItemRequest>"
|
"<PictureURL>\(imageURLs[i].stringByReplacingOccurrencesOfString("&", withString: "&"))</PictureURL>" +
|
||||||
|
"</PictureDetails>"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
soapMessage = soapMessage + "</Item></ReviseItemRequest>"
|
||||||
|
|
||||||
let url = NSURL(string: self.baseURL)
|
let url = NSURL(string: self.baseURL)
|
||||||
let theRequest = NSMutableURLRequest(URL: url!)
|
let theRequest = NSMutableURLRequest(URL: url!)
|
||||||
theRequest.addValue("ReviseItem", forHTTPHeaderField: "X-EBAY-API-CALL-NAME")
|
theRequest.addValue("ReviseItem", forHTTPHeaderField: "X-EBAY-API-CALL-NAME")
|
||||||
self.completion = onCompletion
|
self.completion = onCompletion
|
||||||
self.requestMaker(soapMessage, theRequest: theRequest)
|
self.requestMaker(soapMessage, theRequest: theRequest)
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
func listItem(params: [String: String], completion: ServiceResponse?){
|
func listItem(params: [String: String], imageUrls: [String], completion: ServiceResponse?){
|
||||||
var dict = EbayWebServiceManager.settingsDictionary
|
var dict = EbayWebServiceManager.settingsDictionary
|
||||||
var emailRetrievalGroup = dispatch_group_create()
|
var emailRetrievalGroup = dispatch_group_create()
|
||||||
var soapMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
|
var soapMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
|
||||||
@ -268,8 +275,15 @@ extension EbayWebServiceManager {
|
|||||||
"<ListingDuration>\(dict["listingDuration"] as! String!)</ListingDuration>" +
|
"<ListingDuration>\(dict["listingDuration"] as! String!)</ListingDuration>" +
|
||||||
"<ListingType>\(dict["listingType"] as! String!)</ListingType>" +
|
"<ListingType>\(dict["listingType"] as! String!)</ListingType>" +
|
||||||
"<PaymentMethods>\(dict["payment"] as! String!)</PaymentMethods>" +
|
"<PaymentMethods>\(dict["payment"] as! String!)</PaymentMethods>" +
|
||||||
"<PayPalEmailAddress>\(dict["paypal_email"] as! String!)</PayPalEmailAddress>" +
|
"<PayPalEmailAddress>\(dict["paypal_email"] as! String!)</PayPalEmailAddress><PictureDetails>"
|
||||||
"<PostalCode>\(dict["postalCode"] as! String!)</PostalCode>" +
|
|
||||||
|
for i in 0...(imageUrls.count - 1) {
|
||||||
|
soapMessage = soapMessage +
|
||||||
|
"<PictureURL>\(imageUrls[i].stringByReplacingOccurrencesOfString("&", withString: "&"))</PictureURL>"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
soapMessage = soapMessage + "</PictureDetails><PostalCode>\(dict["postalCode"] as! String!)</PostalCode>" +
|
||||||
"<Quantity>\(params["quantity"] as String!)</Quantity>" +
|
"<Quantity>\(params["quantity"] as String!)</Quantity>" +
|
||||||
"<ReturnPolicy>" +
|
"<ReturnPolicy>" +
|
||||||
"<ReturnsAcceptedOption>\(dict["return"] as! String!)</ReturnsAcceptedOption>" +
|
"<ReturnsAcceptedOption>\(dict["return"] as! String!)</ReturnsAcceptedOption>" +
|
||||||
@ -285,7 +299,7 @@ extension EbayWebServiceManager {
|
|||||||
"</ShippingDetails>" +
|
"</ShippingDetails>" +
|
||||||
"<Site>US</Site>" +
|
"<Site>US</Site>" +
|
||||||
"</Item></AddItemRequest>"
|
"</Item></AddItemRequest>"
|
||||||
|
print(soapMessage)
|
||||||
let url = NSURL(string: self.baseURL)
|
let url = NSURL(string: self.baseURL)
|
||||||
let theRequest = NSMutableURLRequest(URL: url!)
|
let theRequest = NSMutableURLRequest(URL: url!)
|
||||||
theRequest.addValue("AddItem", forHTTPHeaderField: "X-EBAY-API-CALL-NAME")
|
theRequest.addValue("AddItem", forHTTPHeaderField: "X-EBAY-API-CALL-NAME")
|
||||||
|
|||||||
@ -54,13 +54,13 @@ class HomeViewController: UITabBarController {
|
|||||||
var listingImages: [UIImage] = [mainImage!]
|
var listingImages: [UIImage] = [mainImage!]
|
||||||
var count = 0
|
var count = 0
|
||||||
//Get supporting images
|
//Get supporting images
|
||||||
for i in 2...5 {
|
for i in 1...4 {
|
||||||
let supportListingImg1 = storageRef.child("images/\(key)/\(i).jpg")
|
let supportListingImg1 = storageRef.child("images/\(key)/\(i).jpg")
|
||||||
supportListingImg1.dataWithMaxSize(10 * 1024 * 1024, completion: {
|
supportListingImg1.dataWithMaxSize(10 * 1024 * 1024, completion: {
|
||||||
(data1, error) -> Void in
|
(data1, error) -> Void in
|
||||||
|
|
||||||
if(error != nil){
|
if(error != nil){
|
||||||
print("support image \(i - 1) for key, \(key), does not exist")
|
print("support image \(i) for key, \(key), does not exist")
|
||||||
}else{
|
}else{
|
||||||
listingImages.append(UIImage(data: data1!)!)
|
listingImages.append(UIImage(data: data1!)!)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,13 +14,18 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import FirebaseStorage
|
||||||
//@TODO: Need to make multiple images work for etsy and facebook and need to implement multiple images saving to firebase
|
//@TODO: Need to make multiple images work for etsy and facebook and need to implement multiple images saving to firebase
|
||||||
class ListingPreviewViewController: UIViewController {
|
class ListingPreviewViewController: UIViewController {
|
||||||
|
|
||||||
//IBOutlets
|
//IBOutlets
|
||||||
@IBOutlet weak var containerScrollView: UIScrollView!
|
@IBOutlet weak var containerScrollView: UIScrollView!
|
||||||
@IBOutlet weak var itemQuantity: UITextView!
|
@IBOutlet weak var itemQuantity: UITextView!
|
||||||
@IBOutlet weak var itemPicture: UIImageView!
|
@IBOutlet weak var itemPictureMain: UIImageView!
|
||||||
|
@IBOutlet weak var itemPictureSup1: UIImageView!
|
||||||
|
@IBOutlet weak var itemPictureSup2: UIImageView!
|
||||||
|
@IBOutlet weak var itemPictureSup3: UIImageView!
|
||||||
|
@IBOutlet weak var itemPictureSup4: UIImageView!
|
||||||
@IBOutlet weak var itemTitle: UITextView!
|
@IBOutlet weak var itemTitle: UITextView!
|
||||||
@IBOutlet weak var itemDescription: UITextView!
|
@IBOutlet weak var itemDescription: UITextView!
|
||||||
@IBOutlet weak var itemPrice: UITextView!
|
@IBOutlet weak var itemPrice: UITextView!
|
||||||
@ -62,7 +67,27 @@ class ListingPreviewViewController: UIViewController {
|
|||||||
func setListing(){
|
func setListing(){
|
||||||
|
|
||||||
|
|
||||||
self.itemPicture.image = (self.itemListingDictionary["pictures"] as? [UIImageView])![0].image
|
for i in 0...((self.itemListingDictionary["pictures"] as! [UIImageView]).count - 1) {
|
||||||
|
switch i {
|
||||||
|
case 0:
|
||||||
|
self.itemPictureMain.image = (self.itemListingDictionary["pictures"] as? [UIImageView])![i].image
|
||||||
|
break
|
||||||
|
case 1:
|
||||||
|
self.itemPictureSup1.image = (self.itemListingDictionary["pictures"] as? [UIImageView])![i].image
|
||||||
|
break
|
||||||
|
case 2:
|
||||||
|
self.itemPictureSup2.image = (self.itemListingDictionary["pictures"] as? [UIImageView])![i].image
|
||||||
|
break
|
||||||
|
case 3:
|
||||||
|
self.itemPictureSup3.image = (self.itemListingDictionary["pictures"] as? [UIImageView])![i].image
|
||||||
|
break
|
||||||
|
case 4:
|
||||||
|
self.itemPictureSup4.image = (self.itemListingDictionary["pictures"] as? [UIImageView])![i].image
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
self.itemTitle.text = self.itemListingDictionary["title"] as! String
|
self.itemTitle.text = self.itemListingDictionary["title"] as! String
|
||||||
self.itemDescription.text = self.itemListingDictionary["description"] as! String
|
self.itemDescription.text = self.itemListingDictionary["description"] as! String
|
||||||
self.itemPrice.text = self.itemListingDictionary["price"] as! String
|
self.itemPrice.text = self.itemListingDictionary["price"] as! String
|
||||||
@ -82,7 +107,14 @@ class ListingPreviewViewController: UIViewController {
|
|||||||
self.etsyManager = etsyManager
|
self.etsyManager = etsyManager
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func saveToFirebase(listingImageRef: FIRStorageReference, completion: ServiceResponse! ) {
|
||||||
|
|
||||||
|
listingImageRef.putData(UIImageJPEGRepresentation(self.itemPictureMain.image!, 0.8)!, metadata: nil,completion: {
|
||||||
|
(metadata, error) -> Void in
|
||||||
|
completion(metadata, error)
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - Navigation
|
// MARK: - Navigation
|
||||||
|
|
||||||
@ -96,7 +128,7 @@ class ListingPreviewViewController: UIViewController {
|
|||||||
vc.itemName.text? = self.itemTitle.text
|
vc.itemName.text? = self.itemTitle.text
|
||||||
vc.itemPrice.text? = self.itemPrice.text
|
vc.itemPrice.text? = self.itemPrice.text
|
||||||
vc.itemDescription.text? = self.itemDescription.text
|
vc.itemDescription.text? = self.itemDescription.text
|
||||||
vc.possibleItemImageMain = self.itemPicture
|
vc.possibleItemImageMain = self.itemPictureMain
|
||||||
vc.itemQuantity.text? = self.itemQuantity.text
|
vc.itemQuantity.text? = self.itemQuantity.text
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -131,7 +163,7 @@ extension ListingPreviewViewController {
|
|||||||
|
|
||||||
@IBAction func publishItem(sender: AnyObject) {
|
@IBAction func publishItem(sender: AnyObject) {
|
||||||
|
|
||||||
if(self.itemPicture.image == nil){
|
if(self.itemPictureMain.image == nil){
|
||||||
let alert = UIAlertController(title: "Image Needed", message: "To proceed to choose networks, you must supply at least one picture for your listing", preferredStyle: .Alert)
|
let alert = UIAlertController(title: "Image Needed", message: "To proceed to choose networks, you must supply at least one picture for your listing", preferredStyle: .Alert)
|
||||||
alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: nil)}))
|
alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: nil)}))
|
||||||
|
|
||||||
@ -143,9 +175,13 @@ extension ListingPreviewViewController {
|
|||||||
let newListingRef = self.firManager.ref.child("Users").child("\(self.firManager.user_email)").child("user_Listings").childByAutoId()
|
let newListingRef = self.firManager.ref.child("Users").child("\(self.firManager.user_email)").child("user_Listings").childByAutoId()
|
||||||
let postingGroup: dispatch_group_t = dispatch_group_create()
|
let postingGroup: dispatch_group_t = dispatch_group_create()
|
||||||
|
|
||||||
|
/*if(!(self.networksDictionary["ebay"]!)&&(!(self.networksDictionary["etsy"]!))&&(!(self.networksDictionary["amazon"]!))&&(!(self.networksDictionary["facebook"]!))) {
|
||||||
|
|
||||||
|
}else {
|
||||||
|
dispatch_g
|
||||||
|
}*/
|
||||||
//post to ebay
|
//post to ebay
|
||||||
if(self.networksDictionary["ebay"]!){
|
/*if(self.networksDictionary["ebay"]!){
|
||||||
dispatch_group_enter(postingGroup)
|
dispatch_group_enter(postingGroup)
|
||||||
var categoryCode: String!
|
var categoryCode: String!
|
||||||
var dict = EbayWebServiceManager.settingsDictionary["categories"]!
|
var dict = EbayWebServiceManager.settingsDictionary["categories"]!
|
||||||
@ -267,7 +303,7 @@ extension ListingPreviewViewController {
|
|||||||
self.newInProgressListing["networkIDs"] = networkIDs
|
self.newInProgressListing["networkIDs"] = networkIDs
|
||||||
dispatch_group_leave(postingGroup)
|
dispatch_group_leave(postingGroup)
|
||||||
})
|
})
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
|
||||||
//post to amazon
|
//post to amazon
|
||||||
@ -404,7 +440,7 @@ extension ListingPreviewViewController {
|
|||||||
|
|
||||||
let imageBody = ["listing_id": networkIDs["etsy"] as! Int,
|
let imageBody = ["listing_id": networkIDs["etsy"] as! Int,
|
||||||
//"type":"image/jpg",
|
//"type":"image/jpg",
|
||||||
"image": UIImageJPEGRepresentation(self.itemPicture.image!, 0.45)!]
|
"image": UIImageJPEGRepresentation(self.itemPictureMain.image!, 0.45)!]
|
||||||
|
|
||||||
self.etsyManager.sendPOSTRequest(("listings/\(networkIDs["etsy"] as! Int)/images"), body: imageBody, onCompletion: {
|
self.etsyManager.sendPOSTRequest(("listings/\(networkIDs["etsy"] as! Int)/images"), body: imageBody, onCompletion: {
|
||||||
(dict, error) -> Void in
|
(dict, error) -> Void in
|
||||||
@ -421,26 +457,93 @@ extension ListingPreviewViewController {
|
|||||||
//post to facebook
|
//post to facebook
|
||||||
if(self.networksDictionary["facebook"]!){
|
if(self.networksDictionary["facebook"]!){
|
||||||
dispatch_group_enter(postingGroup)
|
dispatch_group_enter(postingGroup)
|
||||||
|
let fb_group: dispatch_group_t = dispatch_group_create()
|
||||||
|
|
||||||
let tmpDirURL = NSURL.fileURLWithPath(NSTemporaryDirectory(), isDirectory: true)
|
let tmpDirURL = NSURL.fileURLWithPath(NSTemporaryDirectory(), isDirectory: true)
|
||||||
let fileURL = tmpDirURL.URLByAppendingPathComponent("main").URLByAppendingPathExtension("jpg")
|
let fileURL = tmpDirURL.URLByAppendingPathComponent("main").URLByAppendingPathExtension("jpg")
|
||||||
print("FilePath: \(fileURL.path!)")
|
print("FilePath: \(fileURL.path!)")
|
||||||
do {
|
do {
|
||||||
try UIImageJPEGRepresentation(self.itemPicture.image!, 0.45)!.writeToFile(fileURL.path!, options: NSDataWritingOptions.AtomicWrite)
|
try UIImageJPEGRepresentation(self.itemPictureMain.image!, 0.45)!.writeToFile(fileURL.path!, options: NSDataWritingOptions.AtomicWrite)
|
||||||
}catch{
|
}catch{
|
||||||
(error)
|
(error)
|
||||||
print(error)
|
print(error)
|
||||||
}
|
}
|
||||||
|
|
||||||
//let parameters: Dictionary<String, AnyObject> = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!)]
|
|
||||||
|
|
||||||
let parameters: Dictionary<String, AnyObject> = ["Source": UIImageJPEGRepresentation(self.itemPicture.image!, 0.45)!, "published":false]
|
|
||||||
|
|
||||||
self.lastListingKey = newListingRef.key
|
self.lastListingKey = newListingRef.key
|
||||||
self.graphManager.makePOSTResquest("me/photos", params: parameters, onComplete: {
|
|
||||||
(imageId, error) -> Void in
|
|
||||||
|
|
||||||
var listingParams: Dictionary<String, AnyObject> = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!), "attached_media[0]":"{\"media_fbid\":\"\(imageId as! String)\"}"]
|
var imageIDs: [String] = []
|
||||||
|
|
||||||
|
|
||||||
|
//post multiple images to fb
|
||||||
|
for i in 0...(self.itemListingDictionary["pictures"] as! [UIImageView]).count - 1 {
|
||||||
|
var parameters: Dictionary<String, AnyObject> = Dictionary<String, AnyObject>()
|
||||||
|
switch (i) {
|
||||||
|
|
||||||
|
case 0:
|
||||||
|
dispatch_group_enter(fb_group)
|
||||||
|
parameters["Source"] = UIImageJPEGRepresentation(self.itemPictureMain.image!,0.45)!
|
||||||
|
parameters["published"] = false
|
||||||
|
self.graphManager.makePOSTResquest("me/photos", params: parameters, onComplete: {
|
||||||
|
(imageId, error) -> Void in
|
||||||
|
imageIDs.append(imageId as! String)
|
||||||
|
dispatch_group_leave(fb_group)
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 1:
|
||||||
|
dispatch_group_enter(fb_group)
|
||||||
|
parameters["Source"] = UIImageJPEGRepresentation(self.itemPictureSup1.image!,0.45)!
|
||||||
|
parameters["published"] = false
|
||||||
|
self.graphManager.makePOSTResquest("me/photos", params: parameters, onComplete: {
|
||||||
|
(imageId, error) -> Void in
|
||||||
|
imageIDs.append(imageId as! String)
|
||||||
|
dispatch_group_leave(fb_group)
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 2:
|
||||||
|
dispatch_group_enter(fb_group)
|
||||||
|
parameters["Source"] = UIImageJPEGRepresentation(self.itemPictureSup2.image!,0.45)!
|
||||||
|
parameters["published"] = false
|
||||||
|
self.graphManager.makePOSTResquest("me/photos", params: parameters, onComplete: {
|
||||||
|
(imageId, error) -> Void in
|
||||||
|
imageIDs.append(imageId as! String)
|
||||||
|
dispatch_group_leave(fb_group)
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 3:
|
||||||
|
dispatch_group_enter(fb_group)
|
||||||
|
parameters["Source"] = UIImageJPEGRepresentation(self.itemPictureSup3.image!,0.45)!
|
||||||
|
parameters["published"] = false
|
||||||
|
self.graphManager.makePOSTResquest("me/photos", params: parameters, onComplete: {
|
||||||
|
(imageId, error) -> Void in
|
||||||
|
imageIDs.append(imageId as! String)
|
||||||
|
dispatch_group_leave(fb_group)
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 4:
|
||||||
|
dispatch_group_enter(fb_group)
|
||||||
|
parameters["Source"] = UIImageJPEGRepresentation(self.itemPictureSup4.image!,0.45)!
|
||||||
|
parameters["published"] = false
|
||||||
|
self.graphManager.makePOSTResquest("me/photos", params: parameters, onComplete: {
|
||||||
|
(imageId, error) -> Void in
|
||||||
|
imageIDs.append(imageId as! String)
|
||||||
|
dispatch_group_leave(fb_group)
|
||||||
|
})
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//notifies that all images are ready to be attached to new listing on facebook
|
||||||
|
dispatch_group_notify(fb_group, dispatch_get_main_queue(), {
|
||||||
|
|
||||||
|
var listingParams: Dictionary<String, AnyObject> = ["message":("**"+self.itemTitle.text!+"**\n\n"+"Price: "+self.itemPrice.text! + "\n\n"+self.itemDescription.text!)]
|
||||||
|
|
||||||
|
for i in 0...(self.itemListingDictionary["pictures"] as! [UIImageView]).count - 1 {
|
||||||
|
listingParams["attached_media[\(i)]"] = "{\"media_fbid\":\"\(imageIDs[i])\"}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
self.graphManager.makePOSTResquest("me/feed", params: listingParams, onComplete: {
|
self.graphManager.makePOSTResquest("me/feed", params: listingParams, onComplete: {
|
||||||
(listingId, error) -> Void in
|
(listingId, error) -> Void in
|
||||||
|
|
||||||
@ -454,16 +557,13 @@ extension ListingPreviewViewController {
|
|||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
/*
|
|
||||||
|
|
||||||
*/
|
|
||||||
})
|
})
|
||||||
|
|
||||||
//let parameters: Dictionary<String, AnyObject> = ["":""]
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//notifies once all selected networks have been posted to
|
||||||
dispatch_group_notify(postingGroup, dispatch_get_main_queue(), {
|
dispatch_group_notify(postingGroup, dispatch_get_main_queue(), {
|
||||||
self.newInProgressListing.update(["listingID": newListingRef.key,
|
self.newInProgressListing.update(["listingID": newListingRef.key,
|
||||||
"seller email": (NSUserDefaults.standardUserDefaults().objectForKey("email") as? String)!,
|
"seller email": (NSUserDefaults.standardUserDefaults().objectForKey("email") as? String)!,
|
||||||
@ -482,54 +582,122 @@ extension ListingPreviewViewController {
|
|||||||
|
|
||||||
let storageRef = self.firManager.storage.referenceForURL((databaseDict["image_storage"] as? String)!)
|
let storageRef = self.firManager.storage.referenceForURL((databaseDict["image_storage"] as? String)!)
|
||||||
|
|
||||||
|
var imageURLs: [String] = []
|
||||||
|
let completion: ServiceResponse = {(metadata, error) -> Void in
|
||||||
|
|
||||||
|
//for ebay due to its unique posting flow, will use firbase image storage url to add pictures
|
||||||
|
if (self.networksDictionary["ebay"]!){
|
||||||
|
imageURLs.append((metadata?.downloadURL()?.absoluteString)!)
|
||||||
|
dispatch_group_leave(postingGroup)
|
||||||
|
}else{
|
||||||
|
dispatch_group_leave(postingGroup)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//change code to new multi-image saving
|
//change code to new multi-image saving
|
||||||
|
for i in 0...(self.itemListingDictionary["pictures"] as! [UIImageView]).count - 1 {
|
||||||
|
switch (i) {
|
||||||
|
|
||||||
|
case 0:
|
||||||
|
|
||||||
let listingImageRef = storageRef.child("images/\(newListingRef.key)"+".jpg")
|
|
||||||
listingImageRef.putData(UIImageJPEGRepresentation(self.itemPicture.image!, 0.8)!, metadata: nil,completion:
|
|
||||||
{(metadata, error) -> Void in
|
|
||||||
|
|
||||||
//for ebay due to its unique posting flow, will use firbase image storage url to add pictures
|
|
||||||
dispatch_group_enter(postingGroup)
|
dispatch_group_enter(postingGroup)
|
||||||
if (self.networksDictionary["ebay"]!){
|
let listingImageRef = storageRef.child("images/\(newListingRef.key)/main"+".jpg")
|
||||||
var networkIDs = self.newInProgressListing["networkIDs"] as! Dictionary<String, AnyObject>
|
self.saveToFirebase(listingImageRef, completion: completion)
|
||||||
|
break
|
||||||
|
case 1:
|
||||||
|
dispatch_group_enter(postingGroup)
|
||||||
|
let listingImageRef = storageRef.child("images/\(newListingRef.key)/1"+".jpg")
|
||||||
|
self.saveToFirebase(listingImageRef, completion: completion)
|
||||||
|
break
|
||||||
|
case 2:
|
||||||
|
dispatch_group_enter(postingGroup)
|
||||||
|
let listingImageRef = storageRef.child("images/\(newListingRef.key)/2"+".jpg")
|
||||||
|
self.saveToFirebase(listingImageRef, completion: completion)
|
||||||
|
break
|
||||||
|
case 3:
|
||||||
|
dispatch_group_enter(postingGroup)
|
||||||
|
let listingImageRef = storageRef.child("images/\(newListingRef.key)/3"+".jpg")
|
||||||
|
self.saveToFirebase(listingImageRef, completion: completion)
|
||||||
|
break
|
||||||
|
case 4:
|
||||||
|
dispatch_group_enter(postingGroup)
|
||||||
|
let listingImageRef = storageRef.child("images/\(newListingRef.key)/4"+".jpg")
|
||||||
|
self.saveToFirebase(listingImageRef, completion: completion)
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
self.ebayManager.addImagesToListing(networkIDs["ebay"] as! String, imageURL: (metadata?.downloadURL()?.absoluteString)!, onCompletion: {
|
//notify to upload multiple ebay photos
|
||||||
(_, _) -> Void in
|
dispatch_group_notify(postingGroup, dispatch_get_main_queue(), {
|
||||||
dispatch_group_leave(postingGroup)
|
dispatch_group_enter(postingGroup)
|
||||||
})
|
if (self.networksDictionary["ebay"]!){
|
||||||
}else{
|
|
||||||
|
let body: [String: String] = [ "title": self.itemTitle.text,
|
||||||
|
"quantity":self.itemQuantity.text,
|
||||||
|
"description":self.itemDescription.text,
|
||||||
|
"price":self.itemPrice.text,
|
||||||
|
"category_id":self.itemListingDictionary["ebaySubCategoryID"] as! String
|
||||||
|
]
|
||||||
|
let listingCompletion: ServiceResponse = {
|
||||||
|
(listingID, error) -> Void in
|
||||||
|
if((self.newInProgressListing["networkIDs"] == nil)){
|
||||||
|
self.newInProgressListing["networkIDs"] = Dictionary<String, AnyObject>()
|
||||||
|
}
|
||||||
|
var networkIDs = (self.newInProgressListing["networkIDs"] as! Dictionary<String, AnyObject>)
|
||||||
|
networkIDs["ebay"] = listingID as! String
|
||||||
|
self.newInProgressListing["networkIDs"] = networkIDs
|
||||||
dispatch_group_leave(postingGroup)
|
dispatch_group_leave(postingGroup)
|
||||||
}
|
}
|
||||||
|
|
||||||
dispatch_group_notify(postingGroup, dispatch_get_main_queue(), {
|
/*self.ebayManager.listItem(body, completion: {
|
||||||
newListingRef.setValue(self.newInProgressListing)
|
(listingID, error) -> Void in
|
||||||
|
if((self.newInProgressListing["networkIDs"] == nil)){
|
||||||
|
self.newInProgressListing["networkIDs"] = Dictionary<String, AnyObject>()
|
||||||
|
}
|
||||||
|
var networkIDs = (self.newInProgressListing["networkIDs"] as! Dictionary<String, AnyObject>)
|
||||||
|
networkIDs["ebay"] = listingID as! String
|
||||||
|
self.newInProgressListing["networkIDs"] = networkIDs
|
||||||
|
dispatch_group_leave(postingGroup)
|
||||||
|
})*/
|
||||||
|
self.ebayManager.listItem(body, imageUrls: imageURLs, completion: listingCompletion)
|
||||||
|
//self.ebayManager.addImagesToListing(networkIDs["ebay"] as! String, imageURLs: imageURLs, listingOnCompletion: listingCompletion, body: body, onCompletion: {
|
||||||
|
//(_, _) -> Void in
|
||||||
|
//dispatch_group_leave(postingGroup)
|
||||||
|
//})
|
||||||
|
|
||||||
// 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"
|
else {
|
||||||
|
dispatch_group_leave(postingGroup)
|
||||||
|
}
|
||||||
|
|
||||||
|
//notify to save final listing to firebase
|
||||||
|
dispatch_group_notify(postingGroup, dispatch_get_main_queue(), {
|
||||||
|
newListingRef.setValue(self.newInProgressListing)
|
||||||
|
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
|
||||||
//let alert = UIAlertController(title: "Listing Published", message: "Your listing has been published", preferredStyle: .Alert)
|
//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)}))
|
// self.alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in self.alert.dismissViewControllerAnimated(true, completion: nil)}))
|
||||||
|
|
||||||
//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").child(newListingRef.key).setValue(newListingRef.key)
|
||||||
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func editListing(sender: AnyObject) {
|
@IBAction func editListing(sender: AnyObject) {
|
||||||
@ -539,8 +707,8 @@ extension ListingPreviewViewController {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
extension ListingPreviewViewController: UICollectionViewDelegate {
|
extension ListingPreviewViewController: UICollectionViewDelegate {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -1027,7 +1027,11 @@
|
|||||||
<outlet property="containerScrollView" destination="T3U-DI-Ome" id="gad-zv-hsO"/>
|
<outlet property="containerScrollView" destination="T3U-DI-Ome" id="gad-zv-hsO"/>
|
||||||
<outlet property="itemCategory" destination="ije-TG-4S5" id="XGu-Uw-hLl"/>
|
<outlet property="itemCategory" destination="ije-TG-4S5" id="XGu-Uw-hLl"/>
|
||||||
<outlet property="itemDescription" destination="u7b-0N-xli" id="d1N-lw-6sw"/>
|
<outlet property="itemDescription" destination="u7b-0N-xli" id="d1N-lw-6sw"/>
|
||||||
<outlet property="itemPicture" destination="K0z-pp-hzH" id="6Zm-Ig-Rm3"/>
|
<outlet property="itemPictureMain" destination="K0z-pp-hzH" id="cXG-P9-emv"/>
|
||||||
|
<outlet property="itemPictureSup1" destination="ldz-4W-iID" id="PHY-Nf-9Qv"/>
|
||||||
|
<outlet property="itemPictureSup2" destination="MRj-nD-Hnj" id="KPH-H3-Z5z"/>
|
||||||
|
<outlet property="itemPictureSup3" destination="L24-JN-niQ" id="fyJ-HY-klx"/>
|
||||||
|
<outlet property="itemPictureSup4" destination="LsU-De-laD" id="eBn-7o-WIl"/>
|
||||||
<outlet property="itemPrice" destination="Jh9-KG-0Yt" id="nbh-aq-W0b"/>
|
<outlet property="itemPrice" destination="Jh9-KG-0Yt" id="nbh-aq-W0b"/>
|
||||||
<outlet property="itemQuantity" destination="shU-ew-26O" id="yNg-ov-7q5"/>
|
<outlet property="itemQuantity" destination="shU-ew-26O" id="yNg-ov-7q5"/>
|
||||||
<outlet property="itemTitle" destination="WuZ-2K-lz7" id="EkY-UX-lSj"/>
|
<outlet property="itemTitle" destination="WuZ-2K-lz7" id="EkY-UX-lSj"/>
|
||||||
|
|||||||
@ -158,7 +158,7 @@ extension NetworksTableViewController: UITableViewDataSource {
|
|||||||
cell = (self.tableView.dequeueReusableCellWithIdentifier("etsy", forIndexPath: indexPath) as! EtsyTableViewCell)
|
cell = (self.tableView.dequeueReusableCellWithIdentifier("etsy", forIndexPath: indexPath) as! EtsyTableViewCell)
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
//loads network cell for ebay
|
//loads network cell for facebook
|
||||||
cell = (self.tableView.dequeueReusableCellWithIdentifier("facebook", forIndexPath: indexPath) as! FBTableViewCell)
|
cell = (self.tableView.dequeueReusableCellWithIdentifier("facebook", forIndexPath: indexPath) as! FBTableViewCell)
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user