Merged branch Seller-Networks-Settings into master

This commit is contained in:
Okechi Onyeje 2016-08-01 05:08:11 -04:00
commit 00e2803d2b
7 changed files with 151 additions and 66 deletions

View File

@ -9,11 +9,42 @@
import UIKit import UIKit
class EbaySettingsViewController: UIViewController { class EbaySettingsViewController: UIViewController {
var wereDefaultsChanged: Bool = NSUserDefaults.standardUserDefaults().boolForKey("ebayDefaultsOverriden")
//IBOutlets
@IBOutlet weak var listingTypeBtn: UIButton!
@IBOutlet weak var conditonBtn: UIButton!
@IBOutlet weak var listingDurationBtn: UIButton!
@IBOutlet weak var ebaySite: UIButton!
@IBOutlet weak var shippingBtn: UIButton!
@IBOutlet weak var paymentBtn: UIButton!
@IBOutlet weak var returnPolicyBtn: UIButton!
@IBOutlet weak var userID: UILabel!
var ebayManager: EbayWebServiceManager!
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.ebayManager.reinit()
// Do any additional setup after loading the view. // Do any additional setup after loading the view.
if(wereDefaultsChanged) {
//change button labels to reflect user selected defaults
}
dispatch_async(dispatch_get_main_queue(), {
print(EbayWebServiceManager.settingsDictionary["userID"] as? String)
self.userID.text = EbayWebServiceManager.settingsDictionary["userID"] as? String
})
} }
override func didReceiveMemoryWarning() { override func didReceiveMemoryWarning() {
@ -22,6 +53,8 @@ class EbaySettingsViewController: UIViewController {
} }
/* /*
// MARK: - Navigation // MARK: - Navigation
@ -32,8 +65,16 @@ class EbaySettingsViewController: UIViewController {
} }
*/ */
} }
//MARK:- Class Methods
extension EbaySettingsViewController {
func loadManager (ebayManager: EbayWebServiceManager) {
self.ebayManager = ebayManager
}
}
//MARK:- IBActions //MARK:- IBActions
extension EbaySettingsViewController { extension EbaySettingsViewController {
@ -44,4 +85,25 @@ extension EbaySettingsViewController {
} }
@IBAction func selectListingType(sender: AnyObject) {
}
@IBAction func selectCondition(sender: AnyObject) {
}
@IBAction func selectListingDuration(sender: AnyObject) {
}
@IBAction func selectEbaySite(sender: AnyObject) {
}
@IBAction func selectShipping(sender: AnyObject) {
}
@IBAction func selectPayment(sender: AnyObject) {
}
@IBAction func selectReturnPolicy(sender: AnyObject) {
}
} }

View File

@ -31,6 +31,7 @@ class EbayWebServiceManager: NSObject {
private var xmlResponseDictionary: Dictionary<String, AnyObject!> = Dictionary<String, AnyObject!>() private var xmlResponseDictionary: Dictionary<String, AnyObject!> = Dictionary<String, AnyObject!>()
var delegate: EbayWebServiceManagerDelegate? var delegate: EbayWebServiceManagerDelegate?
var isAuthorized: Bool = NSUserDefaults.standardUserDefaults().boolForKey("ebayAuthorized") var isAuthorized: Bool = NSUserDefaults.standardUserDefaults().boolForKey("ebayAuthorized")
static var settingsDictionary = Dictionary<String , AnyObject>()
//let tradingClient = EBayTradingServiceClient.sharedClient() //let tradingClient = EBayTradingServiceClient.sharedClient()
//---------------------------------------------// //---------------------------------------------//
//let tradingClient = SOAPEngine() //let tradingClient = SOAPEngine()
@ -51,51 +52,46 @@ class EbayWebServiceManager: NSObject {
self.xmlResponseDictionary["eBayAuthToken"] = dictionary?["ebay_oauth"] as? String self.xmlResponseDictionary["eBayAuthToken"] = dictionary?["ebay_oauth"] as? String
} }
//set default posting settings for ebay
if(NSUserDefaults.standardUserDefaults().boolForKey("ebayDefaultsOverriden")) {
/* EbayWebServiceManager.settingsDictionary = (NSUserDefaults.standardUserDefaults().objectForKey("ebaySettings") as? Dictionary<String, AnyObject>)!
tradingClient.userAgent = "SOAPEngine" }
tradingClient.actionNamespaceSlash = true else{
tradingClient.version = SOAPVersion.VERSION_1_1
tradingClient.responseHeader = true
tradingClient.header = "<key name=\"X-EBAY-API-COMPATIBILITY-LEVEL\">967</key>"+"<key name=\"X-EBAY-API-DEV-NAME\">" + self.devKey + "</key>" + "<key name=\"X-EBAY-API-CERT-NAME\">" + self.certID + "</key>" + "<key name=\"X-EBAY-API-CALL-NAME\">GetSessionID</key>"
tradingClient.setIntegerValue(967, forKey: "X-EBAY-API-COMPATIBILITY-LEVEL") EbayWebServiceManager.settingsDictionary = ([
//tradingClient.setValue(self.devKey, forKey: "X-EBAY-API-DEV-NAME") "listingType":"FixedPriceItem",
//tradingClient.setValue(tradingClient.apiKey, forKey: "X-EBAY-API-APP-NAME") "condition":"1500",
tradingClient.setIntegerValue(0, forKey: "X-EBAY-API-SITEID") "listingDuration":"Days_7",
//tradingClient.setValue(self.certID, forKey: "X-EBAY-API-CERT-NAME") "ebaySite":"US",
//tradingClient.setValue("GeteBayOfficialTime", forKey: "X-EBAY-API-CALL-NAME") "currency":"USD",
tradingClient.envelope = "xmlns=\"urn:ebay:apis:eBLBaseComponents\"" "shipping": [
tradingClient.authorizationMethod = SOAPAuthorization.AUTH_TOKEN "shippingType": "Flat",
tradingClient.requestURL(self.baseURL, soapAction: self.baseURL+"GetSessionID", completeWithDictionary: "freeShipping": "true",
{(statusCode : Int, "shippingServicePriority": "1",
dict : [NSObject : AnyObject]!) -> Void in "shippingService":"UPSGround",
print(statusCode) "shippingServiceAdditionalCost":"0.00"
let result:Dictionary = dict as Dictionary ],
NSLog("%@", result) "payment":"PayPal",
}, failWithError: "return":"ReturnsNotAccepted",
{(error : NSError!) -> Void in "postalCode":"00000"
NSLog("%@", error)
})
*/
/*tradingClient.requestURL(baseURL, soapAction: baseURL+"/GetSessionID", completeWithDictionary: ] as Dictionary<String, AnyObject>)
{(statusCode : Int,
dict : [NSObject : AnyObject]!) -> Void in
let result:Dictionary = dict as Dictionary
NSLog("%@", result)
}, failWithError:
{(error : NSError!) -> Void in
NSLog("%@", error)
})*/
NSUserDefaults.standardUserDefaults().setObject(EbayWebServiceManager.settingsDictionary, forKey: "ebaySettings")
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "ebayDefaultsOverriden")
}
} }
} }
func reinit() {
EbayWebServiceManager.settingsDictionary = (NSUserDefaults.standardUserDefaults().objectForKey("ebaySettings") as? Dictionary<String, AnyObject>)!
}
} }
@ -242,13 +238,30 @@ extension EbayWebServiceManager: NSXMLParserDelegate {
//Test authentication //Test authentication
let soapmessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + let soapmessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<GeteBayOfficialTimeRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">" + "<GetUserRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">" +
"<RequesterCredentials><eBayAuthToken>\(string)</eBayAuthToken>" + "<RequesterCredentials><eBayAuthToken>\(string)</eBayAuthToken>" +
"</RequesterCredentials></GeteBayOfficialTimeRequest>" "</RequesterCredentials></GetUserRequest>"
/*
*<?xml version="1.0" encoding="utf-8"?>
<GetUserRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<!-- Call-specific Input Fields -->
<IncludeFeatureEligibility> boolean </IncludeFeatureEligibility>
<ItemID> ItemIDType (string) </ItemID>
<UserID> string </UserID>
<!-- Standard Input Fields -->
<DetailLevel> DetailLevelCodeType </DetailLevel>
<!-- ... more DetailLevel values allowed here ... -->
<ErrorLanguage> string </ErrorLanguage>
<MessageID> string </MessageID>
<Version> string </Version>
<WarningLevel> WarningLevelCodeType </WarningLevel>
</GetUserRequest>
*/
let url = NSURL(string: self.baseURL) let url = NSURL(string: self.baseURL)
let theRequest = NSMutableURLRequest(URL: url!) let theRequest = NSMutableURLRequest(URL: url!)
theRequest.addValue("GeteBayOfficialTime", forHTTPHeaderField: "X-EBAY-API-CALL-NAME") theRequest.addValue("GetUser", forHTTPHeaderField: "X-EBAY-API-CALL-NAME")
self.requestMaker(soapmessage, theRequest: theRequest) self.requestMaker(soapmessage, theRequest: theRequest)
@ -265,6 +278,11 @@ extension EbayWebServiceManager: NSXMLParserDelegate {
case "HardExpirationTime" : case "HardExpirationTime" :
print(string) print(string)
break break
case "UserID" :
print(string)
EbayWebServiceManager.settingsDictionary["userID"] = string
NSUserDefaults.standardUserDefaults().setObject(EbayWebServiceManager.settingsDictionary, forKey: "ebaySettings")
break
default: default:
//print(string) //print(string)
print("\(self.currentElementName):\(string)") print("\(self.currentElementName):\(string)")

View File

@ -112,6 +112,9 @@ extension NetworksTableViewController {
(segue.destinationViewController as! ListingPreviewViewController).setManagers(self.graphManager, fireManager: self.firManager, ebayManager: self.ebayManager, etsyManager: self.etsyManager) (segue.destinationViewController as! ListingPreviewViewController).setManagers(self.graphManager, fireManager: self.firManager, ebayManager: self.ebayManager, etsyManager: self.etsyManager)
} }
if(segue.identifier == "EbaySettingsSegue") {
(segue.destinationViewController as! EbaySettingsViewController).loadManager(self.ebayManager)
}
if(segue.identifier == "EtsySettingsSegue") { if(segue.identifier == "EtsySettingsSegue") {
(segue.destinationViewController as! EtsySettingsViewController).loadManager(self.etsyManager) (segue.destinationViewController as! EtsySettingsViewController).loadManager(self.etsyManager)
} }
@ -631,8 +634,8 @@ extension NetworksTableViewController: UITableViewDelegate {
break break
} }*/
*/
} }
@ -677,12 +680,14 @@ extension NetworksTableViewController: UITableViewDelegate {
} }
extension NetworksTableViewController: EbayWebServiceManagerDelegate { extension NetworksTableViewController: EbayWebServiceManagerDelegate {
func signInUser(signInString : String!) { func signInUser(signInString : String!) {
let myWebView:UIWebView = UIWebView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height)) let myWebView:UIWebView = UIWebView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))
myWebView.delegate = self myWebView.delegate = self
myWebView.loadRequest(NSURLRequest(URL: NSURL(string: signInString)!)) myWebView.loadRequest(NSURLRequest(URL: NSURL(string: signInString)!))
self.view.addSubview(myWebView) self.view.addSubview(myWebView)
} }
} }
extension NetworksTableViewController: UIWebViewDelegate { extension NetworksTableViewController: UIWebViewDelegate {
@ -691,7 +696,7 @@ extension NetworksTableViewController: UIWebViewDelegate {
print("Webview fail with error \(error)"); print("Webview fail with error \(error)");
} }
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
return true; return true;
} }
func webViewDidStartLoad(webView: UIWebView) { func webViewDidStartLoad(webView: UIWebView) {
print("Webview started Loading") print("Webview started Loading")
@ -709,17 +714,17 @@ extension NetworksTableViewController: UIWebViewDelegate {
} }
/*var data : NSData? = NSData(contentsOfURL: NSURL(string: responseString as! String)!)! /*var data : NSData? = NSData(contentsOfURL: NSURL(string: responseString as! String)!)!
if (data != nil){ if (data != nil){
let jsonObject: AnyObject? let jsonObject: AnyObject?
do { do {
try jsonObject = NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) try jsonObject = NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves)
print(jsonObject) print(jsonObject)
} }
catch { catch {
} }
}*/ }*/
} }
@ -768,7 +773,7 @@ extension NetworksTableViewController {
break break
} }
} }
//DeAuthorize app //DeAuthorize app
else { else {
switch (sender.superview?.superview?.classForCoder){ switch (sender.superview?.superview?.classForCoder){
case is EbayTableViewCell.Type: case is EbayTableViewCell.Type: