Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Deck of Cards
idgetProjectTopology
Card
labelObjectiveC
Code Block
borderColorGreen
langjava
titleJSON
//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;
        }
Card
labelC#