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
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() {
super.viewDidLoad()
self.ebayManager.reinit()
// 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() {
@ -21,6 +52,8 @@ class EbaySettingsViewController: UIViewController {
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
@ -31,9 +64,17 @@ class EbaySettingsViewController: UIViewController {
// Pass the selected object to the new view controller.
}
*/
}
//MARK:- Class Methods
extension EbaySettingsViewController {
func loadManager (ebayManager: EbayWebServiceManager) {
self.ebayManager = ebayManager
}
}
//MARK:- IBActions
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!>()
var delegate: EbayWebServiceManagerDelegate?
var isAuthorized: Bool = NSUserDefaults.standardUserDefaults().boolForKey("ebayAuthorized")
static var settingsDictionary = Dictionary<String , AnyObject>()
//let tradingClient = EBayTradingServiceClient.sharedClient()
//---------------------------------------------//
//let tradingClient = SOAPEngine()
@ -51,51 +52,46 @@ class EbayWebServiceManager: NSObject {
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>)!
}
else{
/*
tradingClient.userAgent = "SOAPEngine"
tradingClient.actionNamespaceSlash = true
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")
//tradingClient.setValue(self.devKey, forKey: "X-EBAY-API-DEV-NAME")
//tradingClient.setValue(tradingClient.apiKey, forKey: "X-EBAY-API-APP-NAME")
tradingClient.setIntegerValue(0, forKey: "X-EBAY-API-SITEID")
//tradingClient.setValue(self.certID, forKey: "X-EBAY-API-CERT-NAME")
//tradingClient.setValue("GeteBayOfficialTime", forKey: "X-EBAY-API-CALL-NAME")
tradingClient.envelope = "xmlns=\"urn:ebay:apis:eBLBaseComponents\""
tradingClient.authorizationMethod = SOAPAuthorization.AUTH_TOKEN
tradingClient.requestURL(self.baseURL, soapAction: self.baseURL+"GetSessionID", completeWithDictionary:
{(statusCode : Int,
dict : [NSObject : AnyObject]!) -> Void in
print(statusCode)
let result:Dictionary = dict as Dictionary
NSLog("%@", result)
}, failWithError:
{(error : NSError!) -> Void in
NSLog("%@", error)
})
*/
/*tradingClient.requestURL(baseURL, soapAction: baseURL+"/GetSessionID", completeWithDictionary:
{(statusCode : Int,
dict : [NSObject : AnyObject]!) -> Void in
EbayWebServiceManager.settingsDictionary = ([
"listingType":"FixedPriceItem",
"condition":"1500",
"listingDuration":"Days_7",
"ebaySite":"US",
"currency":"USD",
"shipping": [
"shippingType": "Flat",
"freeShipping": "true",
"shippingServicePriority": "1",
"shippingService":"UPSGround",
"shippingServiceAdditionalCost":"0.00"
],
"payment":"PayPal",
"return":"ReturnsNotAccepted",
"postalCode":"00000"
let result:Dictionary = dict as Dictionary
NSLog("%@", result)
}, failWithError:
{(error : NSError!) -> Void in
NSLog("%@", error)
})*/
] as Dictionary<String, AnyObject>)
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
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></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 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)
@ -265,6 +278,11 @@ extension EbayWebServiceManager: NSXMLParserDelegate {
case "HardExpirationTime" :
print(string)
break
case "UserID" :
print(string)
EbayWebServiceManager.settingsDictionary["userID"] = string
NSUserDefaults.standardUserDefaults().setObject(EbayWebServiceManager.settingsDictionary, forKey: "ebaySettings")
break
default:
//print(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)
}
if(segue.identifier == "EbaySettingsSegue") {
(segue.destinationViewController as! EbaySettingsViewController).loadManager(self.ebayManager)
}
if(segue.identifier == "EtsySettingsSegue") {
(segue.destinationViewController as! EtsySettingsViewController).loadManager(self.etsyManager)
}
@ -368,7 +371,7 @@ extension NetworksTableViewController: UITableViewDelegate {
//code to deselect network
self.networksDictionary["ebay"] = false
}
else{
@ -394,7 +397,7 @@ extension NetworksTableViewController: UITableViewDelegate {
})
//code to deselect network
self.networksDictionary["amazon"] = false
}
else{
@ -404,7 +407,7 @@ extension NetworksTableViewController: UITableViewDelegate {
})
//code to select network
self.networksDictionary["amazon"] = true
}
break
@ -487,7 +490,7 @@ extension NetworksTableViewController: UITableViewDelegate {
break
}
}
else{
@ -566,7 +569,7 @@ extension NetworksTableViewController: UITableViewDelegate {
//code to deauthorize network
let tabBar = self.tabBarController
((tabBar as? HomeViewController)?.etsyManager.deAuthorizeApp(self))!
cell.networkToggle.on = ((tabBar as? HomeViewController)?.etsyManager.isAuthorized)!
}
@ -579,7 +582,7 @@ extension NetworksTableViewController: UITableViewDelegate {
//this is the type of code desired to access the rest management classes
let tabBar = self.tabBarController
((tabBar as? HomeViewController)?.etsyManager.authorizeApp(self))!
@ -631,8 +634,8 @@ extension NetworksTableViewController: UITableViewDelegate {
break
}
*/
}*/
}
@ -677,21 +680,23 @@ extension NetworksTableViewController: UITableViewDelegate {
}
extension NetworksTableViewController: EbayWebServiceManagerDelegate {
func signInUser(signInString : String!) {
let myWebView:UIWebView = UIWebView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))
myWebView.delegate = self
myWebView.loadRequest(NSURLRequest(URL: NSURL(string: signInString)!))
self.view.addSubview(myWebView)
}
}
extension NetworksTableViewController: UIWebViewDelegate {
func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
print("Webview fail with error \(error)");
}
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
return true;
return true;
}
func webViewDidStartLoad(webView: UIWebView) {
print("Webview started Loading")
@ -709,22 +714,22 @@ extension NetworksTableViewController: UIWebViewDelegate {
}
/*var data : NSData? = NSData(contentsOfURL: NSURL(string: responseString as! String)!)!
if (data != nil){
let jsonObject: AnyObject?
do {
try jsonObject = NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves)
print(jsonObject)
}
catch {
}
}*/
if (data != nil){
let jsonObject: AnyObject?
do {
try jsonObject = NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves)
print(jsonObject)
}
catch {
}
}*/
}
}
}
extension NetworksTableViewController {
@ -768,7 +773,7 @@ extension NetworksTableViewController {
break
}
}
//DeAuthorize app
//DeAuthorize app
else {
switch (sender.superview?.superview?.classForCoder){
case is EbayTableViewCell.Type: