//build an info object and convert to json
NSError *requestError;
NSHTTPURLResponse *responseHTTP;
NSError *dictError;
NSString* requestString = [[NSString alloc] initWithFormat:@"%@%@//Get project details
projects/%@/topology",[CSS getDefaultAPIURL],[CSS getSlug], mProjectID];
NSMutableURLRequest *requestForProjectDetails;
requestForProjectDetailsNSMutableURLRequest *requestForProjectsTree = [[NSMutableURLRequest alloc] init];
[requestForProjectDetailsrequestForProjectsTree setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@/projects/%@",[CSS getDefaultAPIURL],[CSS getSlug],proj.mID]]];requestString]];
[requestString release];
[requestForProjectDetailsrequestForProjectsTree setHTTPMethod:@"GET"];
[requestForProjectDetailsrequestForProjectsTree setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[requestForProjectsTree setValue:[[CommunicationSingleton sharedSingleton] getAuthorization] forHTTPHeaderField:@"Authorization"];
NSData *response = [NSURLConnection sendSynchronousRequest:requestForProjectsTree returningResponse:&responseHTTP error:&requestError];
[requestForProjectsTree release];
NSString *path = [[proj getProjectFolderPath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.topology", mProjectID]];
if ([responseHTTP statusCode] == 200)
{
// Save project topology locally.
[response writeToFile:path atomically:NO];
// Load project topology to memory.
[proj loadTopologyFromData:response];
} else {
// If Failed
// Check if we have the last used topology for this project is available offline (rembember that this is could not be the last version)
if ([requestForProjectDetails setValue:[CSSNSFileManager getAuthorizationdefaultManager] forHTTPHeaderField:@"Authorization"];
fileExistsAtPath:path]) {
NSData *responseForProjectDetails = [NSURLConnection sendSynchronousRequest:requestForProjectDetails returningResponse:&responseHTTP error:&requestError];
// Loading project [requestForProjectDetails release];
topology offline
if (responseHTTP.statusCode == 200) {
// Success, we haveNSData* adata project= detail dictionary
[NSData dataWithContentsOfFile:path];
NSDictionary *projectDetails = [NSJSONSerializationproj JSONObjectWithData:responseForProjectDetails options:NULL error:&dictErrorloadTopologyFromData:data];
// Time to process this project details as} youelse want/need{
[proj processProjectDetails:projectDetails];
// Download Failed + Local }else{
Storage not available
// Download Failed}
return;
}
|