// // P4FileRev.swift // SearchDemo // // Created by Ralf Gronkowski on 13/10/14. // Copyright (c) 2014 Ralf Gronkowski. All rights reserved. // import Foundation class P4FileRev:NSObject { var file:NSString var rev:String var type:String var time:String var action:String var change:String var data:NSData? init(file:String!, rev:String!, type:String!, time:String!, action:String!, change:String!) { self.file = file self.rev = rev self.type = type self.time = time self.action = action self.change = change } func getFileRev() -> NSString{ return file + "#" + rev } func getP4FileType() -> NSString{ return type } func getTime() -> NSTimeInterval?{ return nil } func getSwarmURL() -> NSString{ let swarmURL = file.substringFromIndex(2) + "?v=" + rev return swarmURL } func getDataFromSwarm() -> NSData{ if (self.data == nil){ var response: NSURLResponse? var error: NSError? //for Swarm var viewURL = NSUserDefaults.standardUserDefaults().stringForKey(SettingsKeys.swarmURLPreferenceKey)! + "view/" let swarmBaseUrl = NSURL(string: viewURL + getSwarmURL()) let swarmConfig = NSURLSessionConfiguration.defaultSessionConfiguration() //user and password need to come from some app settings var userId:NSString? = NSUserDefaults.standardUserDefaults().stringForKey(SettingsKeys.namePreferenceKey) var password = NSUserDefaults.standardUserDefaults().stringForKey(SettingsKeys.passwordPreferenceKey) let userPasswordString = "\(userId!):\(password!)" let userPasswordData = userPasswordString.dataUsingEncoding(NSUTF8StringEncoding) let base64EncodedCredential = userPasswordData!.base64EncodedStringWithOptions(nil) let authString = "Basic \(base64EncodedCredential)" let request = NSMutableURLRequest(URL: swarmBaseUrl) request.HTTPMethod = "POST" request.setValue("Basic \(base64EncodedCredential)", forHTTPHeaderField: "Authorization") let swarmConnection = NSURLConnection(request: request, delegate: self) var data: NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: &error)! if let actualError = error { NSLog("Swarm error: \(actualError.localizedDescription)") } else { self.data = data } } return self.data! } }