{"action":"created","comment":{"url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/comments/23719316","id":23719316,"diff_hunk":"@@ -0,0 +1,1265 @@\n+//\n+//  ServerCommunicationController.m\n+//  EMBRACE\n+//\n+//  Created by Rishabh Chaudhry on 12/17/13.\n+//  Copyright (c) 2013 Andreea Danielescu. All rights reserved.\n+//\n+\n+#import \"ServerCommunicationController.h\"\n+#import \"LibraryViewController.h\"\n+#import \"BookCellView.h\"\n+#import \"BookHeaderView.h\"\n+#import \"Book.h\"\n+#import \"PMViewController.h\"\n+#import \"foundation/foundation.h\"\n+#import \"DDXML.h\"\n+#import \"DDXMLNode.h\"\n+#import \"DDXMLElement.h\"\n+#import \"DDXMLDocument.h\"\n+#import \"DDXMLElementAdditions.h\"\n+#import \"DDXMLPrivate.h\"\n+#import \"NSString+DDXML.h\"\n+\n+DDXMLDocument *xmlDocTemp;\n+DDXMLElement *nodeStudyContext;\n+DDXMLElement *nodeStudy;\n+\n+@implementation ServerCommunicationController\n+\n+@synthesize student;\n+@synthesize movenum;\n+@synthesize bookView;\n+@synthesize study;\n+@synthesize xmlDoc;\n+@synthesize UserActionIDTag;\n+@synthesize studyConditionString;\n+@synthesize studyExperimenterString;\n+@synthesize studyDayString;\n+@synthesize userNameString;\n+@synthesize studyFileName;\n+@synthesize studyParticipantString;\n+@synthesize studySchoolString;\n+\n+#pragma mark Singleton Methods\n+\n++ (id)sharedManager {\n+    static ServerCommunicationController *sharedMyManager = nil;\n+    static dispatch_once_t onceToken;\n+    dispatch_once(&onceToken, ^{\n+        sharedMyManager = [[self alloc] init];\n+        \n+    });\n+    return sharedMyManager;\n+}\n+\n+- (id)init {\n+    if (self = [super init]) {\n+        //someProperty = [[NSString alloc] initWithString:@\"Default Property Value\"];\n+        \n+        //initialize xml document\n+        //study = (DDXMLElement *)[DDXMLNode elementWithName:@\"study\"];\n+        //DDXMLDocument *xmlDoctemp = [[DDXMLDocument alloc] initWithXMLString:@\"<study/>\" options:0 error:nil];\n+        xmlDocTemp = [[DDXMLDocument alloc] initWithXMLString:@\"<study/>\" options:0 error:nil];\n+        study = [xmlDocTemp rootElement];\n+        NSLog(@\"gets to init of logging\");\n+        \n+        //xmlDoc = xmlDoctemp;\n+        \n+        //DDXMLDocument *xmlDoc = [[DDXMLDocument alloc] initWithXMLString:@\"<study/>\" options:0 error:nil];\n+        \n+        //[xmlDoc setVersion:@\"1.0\"];\n+        //[xmlDoc setCharacterEncoding:@\"UTF-8\"];\n+        \n+        UserActionIDTag = 0;\n+        \n+    }\n+    return self;\n+}\n+\n+- (void)dealloc {\n+    // Should never be called, but just here for clarity really.\n+}\n+\n+\n+- (void)logUserName : (Student *) userdetails;\n+{\n+    //[super logDetails];\n+    //NSLog(@\"NameRbh2: %@\", [student firstName]);\n+    //NSLog(@\"NameRbh2: %@\", num);\n+    if(userdetails != nil) {\n+        //Logging Information to the server\n+        //Author: Udai Arora\n+        //Create a date object\n+        NSDate *currentTime = [NSDate date];\n+        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];\n+        [dateFormatter setDateFormat:@\"MM-dd-yyyy hh-mm\"];\n+        NSString *resultString = [dateFormatter stringFromDate: currentTime];\n+        \n+        //Setup POST method with proper encoding\n+        NSString *post = [NSString stringWithFormat:@\"fname=%@&lname=%@&time=%@\",[userdetails firstName],[userdetails lastName],resultString];\n+        NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];\n+        NSString *postLength = [NSString stringWithFormat:@\"%lu\", (unsigned long)[postData length]];\n+        \n+        //Add the necessary URL, Headers and POST Body toNSMutableURLRequest\n+        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];\n+        [request setURL:[NSURL URLWithString:@\"http://129.219.28.98/embrace-login.php\"]];\n+        [request setHTTPMethod:@\"POST\"];\n+        [request setValue:postLength forHTTPHeaderField:@\"Content-Length\"];\n+        [request setValue:@\"application/x-www-form-urlencoded;charset=UTF-8\" forHTTPHeaderField:@\"Content-Type\"];\n+        [request setHTTPBody:postData];\n+        \n+        //To send and recieve a response\n+        NSURLResponse *response;\n+        NSData *POSTReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];\n+        NSString *theReply = [[NSString alloc] initWithBytes:[POSTReply bytes] length:[POSTReply length] encoding: NSASCIIStringEncoding];\n+        NSLog(@\"Reply: %@\", theReply);\n+        \n+        \n+    }\n+    \n+    \n+}\n+\n+- (void) resetMovenum{\n+    movenum=@0;\n+    \n+}\n+\n+- (void) logMovements :(NSString *)objid :(float) posx :(float) posy\n+{\n+ \n+    NSLog(@\"%ld\", (long)movenum.integerValue);\n+    movenum = @(movenum.integerValue + 1);\n+    //Setup POST method with proper encoding\n+    NSString *post = [NSString stringWithFormat:@\"movenum=%ld&objectid=%@&posx=%f&posy=%f\", (long)movenum.integerValue, objid, posx, posy];\n+    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];\n+    NSString *postLength = [NSString stringWithFormat:@\"%lu\", (unsigned long)[postData length]];\n+    \n+    //Add the necessary URL, Headers and POST Body toNSMutableURLRequest\n+    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];\n+    [request setURL:[NSURL URLWithString:@\"http://129.219.28.98/embrace-log-objects.php\"]];\n+    [request setHTTPMethod:@\"POST\"];\n+    [request setValue:postLength forHTTPHeaderField:@\"Content-Length\"];\n+    [request setValue:@\"application/x-www-form-urlencoded;charset=UTF-8\" forHTTPHeaderField:@\"Content-Type\"];\n+    [request setHTTPBody:postData];\n+    \n+    //To send and recieve a response\n+    NSURLResponse *response;\n+    NSData *POSTReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];\n+    NSString *theReply = [[NSString alloc] initWithBytes:[POSTReply bytes] length:[POSTReply length] encoding: NSASCIIStringEncoding];\n+    NSLog(@\"Reply: %@\", theReply);\n+    \n+   }\n+\n+//local XML logging starts here\n+\n+//stores general context of participant, condition and expermenter as global elements\n+-(void) logContext : (Student *) userdetails\n+{\n+    if(userdetails != nil) {\n+        [self init]; //start a new log file\n+        \n+        //formats username string into \"firstname lastname\"\n+        NSString *FileNameValue = [NSString stringWithFormat:@\"%@ %@ %@\",[userdetails schoolName],[userdetails firstName],[userdetails lastName]];\n+        \n+        //sets global variables to be used by returnContext function\n+        studySchoolString = [userdetails schoolName];\n+        studyExperimenterString = [userdetails experimenterName];\n+        studyConditionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@\"CFBundleDisplayName\"]; //comes from app name\n+        studyParticipantString = [userdetails firstName];\n+        studyDayString = [userdetails lastName];\n+        studyFileName = FileNameValue;\n+    }\n+\n+}\n+\n+\n+//Logging Computer Actions\n+//logging object manipulation\n+\n+\n+/*\n+ Action Type: Automatic Computer Move Object\n+ UserActionIDTag: currentIDTag\n+ Selection: ObjID of image being moved\n+ Action: Move Object(s)\n+ Input: What objects, start location, end location\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+-(void) logComputerMoveObject : (NSString *) movingObjectID : (NSString *) collisionObjectorLocationID : (float) startPosX : (float) startPosY : (float) endPosX : (float) endPosY : (NSString *) computerAction : (NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    \n+    //logging structure for computer actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection objectID\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Image\"];\n+    \n+    //input parent\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating input children\n+    DDXMLElement *nodeMovingObject = [DDXMLElement elementWithName:@\"Moving Object\" stringValue:movingObjectID];\n+    DDXMLElement *nodeWaypointID = [DDXMLElement elementWithName:@\"Waypoint ID\" stringValue:collisionObjectorLocationID];\n+    DDXMLElement *nodeStartPosition = [DDXMLElement elementWithName:@\"Start Position\" stringValue:[NSString stringWithFormat:@\"%f, %f\", startPosX, startPosY]];\n+    DDXMLElement *nodeEndPosition = [DDXMLElement elementWithName:@\"End Position\" stringValue:[NSString stringWithFormat:@\"%f, %f\", endPosX, endPosY]];\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeMovingObject];\n+    [nodeInput addChild:nodeWaypointID];\n+    [nodeInput addChild:nodeStartPosition];\n+    [nodeInput addChild:nodeEndPosition];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:@\"Move to Waypoint\"];\n+    //move to waypoint/move to object/move to location\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to UserAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+    \n+    //bool successfulWrite = [[ServerCommunicationController sharedManager] writeToFile:userNameString ofType:@\"txt\"];\n+\n+}\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: objectID\n+ Action: Reset Object(s)\n+ Input: What object(s), start location, end location\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+-(void) logComputerResetObject : (NSString *) movingObjectID : (float) startPosX : (float) startPosY : (float) endPosX : (float) endPosY : (NSString *) computerAction :(NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    \n+    \n+    //logging structure for computer actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Image\"];\n+    \n+    //input parent node\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating Input children nodes\n+    DDXMLElement *nodeObject = [DDXMLElement elementWithName:@\"Object\" stringValue:movingObjectID];\n+    DDXMLElement *nodeStartPosition = [DDXMLElement elementWithName:@\"Start Position\" stringValue:[NSString stringWithFormat:@\"%f, %f\", startPosX, startPosY]];\n+    DDXMLElement *nodeEndPosition = [DDXMLElement elementWithName:@\"End Position\" stringValue:[NSString stringWithFormat:@\"%f, %f\", endPosX, endPosY]];\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeObject];\n+    [nodeInput addChild:nodeStartPosition];\n+    [nodeInput addChild:nodeEndPosition];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:@\"Reset Object\"];\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to UserAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+    \n+    //bool successfulWrite = [[ServerCommunicationController sharedManager] writeToFile:userNameString ofType:@\"txt\"];\n+}\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: objectID\n+ Action: Disappear Object(s)\n+ Input: What object(s)\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+-(void) logComputerDisappearObject : (NSString *) computerAction : (NSString *) objectID : (NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    //logging structure for computer actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Image\"];\n+    \n+    // input parent node\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating Input children nodes\n+    DDXMLElement *nodeObject = [DDXMLElement elementWithName:@\"Object\" stringValue:objectID];\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeObject];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:computerAction];\n+    //disappear or appear object\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to UserAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+    \n+    //bool successfulWrite = [[ServerCommunicationController sharedManager] writeToFile:userNameString ofType:@\"txt\"];\n+}\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: objectID\n+ Action: Swap Images\n+ Input: What Image, original image source, new image source\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+-(void) logComputerSwapImages : (NSString *) objectID : (NSString *) swapImageID  : (NSString *) computerAction : (NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue :(NSString *) sentenceValue : (NSString *) stepValue\n+{\n+\n+}\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: objectID\n+ Action: Group Objects\n+ Input: moving object, collision object\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+-(void) logComputerGroupingObjects : (NSString*) computerActionValue : (NSString *) movingObjectID : (NSString *) collisionObjectID : (NSString *) groupAtLocation :(NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    //logging structure for computer actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Image\"];\n+    \n+    //input parent node\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating input children nodes\n+    DDXMLElement *nodeMovingObj = [DDXMLElement elementWithName:@\"Object 1\" stringValue:movingObjectID];\n+    DDXMLElement *nodeCollisionObj = [DDXMLElement elementWithName:@\"Object 2\" stringValue:collisionObjectID];\n+    DDXMLElement *nodeGroupAtLocation = [DDXMLElement elementWithName:@\"Grouping Location\" stringValue:groupAtLocation];\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeMovingObj];\n+    [nodeInput addChild:nodeCollisionObj];\n+    [nodeInput addChild:nodeGroupAtLocation];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:computerActionValue]; // computerActionValue can be group/ungroup\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to ComputerAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+    \n+   // bool successfulWrite = [[ServerCommunicationController sharedManager] writeToFile:userNameString ofType:@\"txt\"];\n+}\n+\n+//logging computer navigation functions\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: Next Button\n+ Action: Next Chapter\n+ Input: current chapter, next chapter\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+- (void) logNextChapterNavigation : (NSString *) buttonPressedValue :(NSString *) curChapterValue :(NSString *) nextChapterValue :(NSString *) computerActionValue :(NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    //logging structure for computer actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Button\"];\n+    \n+    // Input parent node\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating input children nodes\n+    DDXMLElement *nodeNextChapter = [DDXMLElement elementWithName:@\"Next Chapter\" stringValue:nextChapterValue];\n+    DDXMLElement *nodeButtonValue = [DDXMLElement elementWithName:@\"Button Type\" stringValue:buttonPressedValue];\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeNextChapter];\n+    [nodeInput addChild:nodeButtonValue];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:computerActionValue];// computerActionValue can be load first page/no chapters left/load next chapter\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to UserAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+    \n+    //upon going to next chapter store all chapter log data\n+    [[ServerCommunicationController sharedManager] writeToFile:studyFileName ofType:@\"txt\"];\n+}\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: Next Button\n+ Action: Next Page\n+ Input: curent page number, next page number\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+- (void) logNextPageNavigation : (NSString *) buttonPressedValue :(NSString *) curPageValue : (NSString *) nextPageValue :(NSString *) computerActionValue :(NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    //logging structure for user actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Button\"];\n+    \n+    //Input parent node\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating inpud children nodes\n+    DDXMLElement *nodeNextPage = [DDXMLElement elementWithName:@\"Next Page\" stringValue:nextPageValue];\n+    DDXMLElement *nodeButtonValue = [DDXMLElement elementWithName:@\"Button Type\" stringValue:buttonPressedValue];\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeNextPage];\n+    [nodeInput addChild:nodeButtonValue];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:@\"Load Next Page\"];\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to UserAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+    \n+    [[ServerCommunicationController sharedManager] writeToFile:studyFileName ofType:@\"txt\"];\n+}\n+\n+/*\n+ UserActionIDTag: useractionID\n+ Selection: Next Button\n+ Action: Next Chapter\n+ Input: curent sentence, next sentence\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+- (void) logNextSentenceNavigation : (NSString *) buttonPressedValue :(NSString *) curSentenceValue :(NSString *)nextSentenceValue :(NSString *) computerActionValue : (NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    //logging structure for computer action\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Button\"];\n+    \n+    //Input parent node\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating input children nodes\n+    DDXMLElement *nodeNextSentence = [DDXMLElement elementWithName:@\"Next Sentence\" stringValue:nextSentenceValue];\n+    DDXMLElement *nodeButtonValue = [DDXMLElement elementWithName:@\"Button Type\" stringValue:buttonPressedValue];\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeNextSentence];\n+    [nodeInput addChild:nodeButtonValue];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:@\"Load Next Sentence\"];\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to UserAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+\n+    //bool successfulWrite = [[ServerCommunicationController sharedManager] writeToFile:userNameString ofType:@\"txt\"];\n+}\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: (user action or computer action)\n+ Action: Next Step\n+ Input: from where to where\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+- (void) logNextStepNavigation : (NSString *) buttonPressedValue : (NSString *) curStepValue :(NSString *) nextStepValue :(NSString *) computerActionValue : (NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    //logging structure for computer actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Button\"];\n+    \n+    //Input parent node\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating input children nodes\n+    DDXMLElement *nodeNextStep = [DDXMLElement elementWithName:@\"Next Step\" stringValue:nextStepValue];\n+    DDXMLElement *nodeButtonValue = [DDXMLElement elementWithName:@\"Button Type\" stringValue:buttonPressedValue];\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeNextStep];\n+    [nodeInput addChild:nodeButtonValue];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:@\"Load Next Step\"];\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to UserAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+    \n+    //bool successfulWrite = [[ServerCommunicationController sharedManager] writeToFile:userNameString ofType:@\"txt\"];\n+}\n+\n+\n+//logging non-object manipulation actions\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: objectID\n+ Action: Action Verification\n+ Input: correctness, what action\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+-(void) logComputerVerification: (NSString*)action : (BOOL) verificationValue : (NSString *) objectSelected : (NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    //logging structure for user actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:objectSelected];\n+    \n+    //input parent node\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating input children nodes\n+    DDXMLElement *nodeVerficiation;\n+    //logging Input\n+    if (verificationValue)\n+    {\n+         nodeVerficiation = [DDXMLElement elementWithName:@\"Verification\" stringValue:@\"Correct\"];\n+    }\n+    else\n+    {\n+        nodeVerficiation = [DDXMLElement elementWithName:@\"Verification\" stringValue:@\"Incorrect\"];\n+    }\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeVerficiation];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:action];//moving object to hotspot/move object to object/menu item selected\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to UserAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+    \n+    //bool successfulWrite = [[ServerCommunicationController sharedManager] writeToFile:userNameString ofType:@\"txt\"];\n+}\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: menu item, object id, word\n+ Action: Play Audio\n+ Input: AudioValue\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+-(void) logComputerPlayAudio: (NSString *) computerAction : (NSString *)  LanguageType : (NSString *) audioFileName : (NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    UserActionIDTag++;\n+    \n+    //logging structure for computer actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Audio\"];\n+    \n+    //Input parent node\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    \n+    //creating inpud children nodes\n+    DDXMLElement *nodeAudioFilename = [DDXMLElement elementWithName:@\"Audio Filename\" stringValue:audioFileName];\n+    DDXMLElement *nodeAudioLanguage = [DDXMLElement elementWithName:@\"Audio Language\" stringValue:LanguageType];\n+    \n+    //adding child nodes to Input parent\n+    [nodeInput addChild:nodeAudioFilename];\n+    [nodeInput addChild:nodeAudioLanguage];\n+    \n+    //logging action\n+    DDXMLElement *nodeAction = [DDXMLElement elementWithName:@\"Action\" stringValue:computerAction];\n+    \n+    //logging Context\n+    DDXMLElement *nodeContext = [[ServerCommunicationController sharedManager] returnContext:storyValue :chapterValue :pageValue :sentenceValue :stepValue];\n+    \n+    //add SAIC to UserAction parent\n+    [nodeComputerAction addChild:nodeUserActionID];\n+    [nodeComputerAction addChild:nodeSelection];\n+    [nodeComputerAction addChild:nodeAction];\n+    [nodeComputerAction addChild:nodeInput];\n+    [nodeComputerAction addChild:nodeContext];\n+    \n+    //bool successfulWrite = [[ServerCommunicationController sharedManager] writeToFile:userNameString ofType:@\"txt\"];\n+}\n+\n+/*\n+ UserActionIDTag: current useractionID\n+ Selection: ??\n+ Action: Display Menu Items\n+ Input: displayedMenuItems\n+ Context: story, chapter, page, sentence, step, username, condition, experimenter\n+ */\n+-(void) logComputerDisplayMenuItems :  (NSArray *) displayedMenuInteractions :(NSArray *)displayedMenuImages : (NSArray*) displayedMenuRelationships : (NSString *) storyValue : (NSString *) chapterValue : (NSString *) pageValue : (NSString *) sentenceValue : (NSString *) stepValue\n+{\n+    UserActionIDTag++;\n+    \n+    //logging structure for user actions\n+    DDXMLElement *nodeComputerAction = [DDXMLElement elementWithName:@\"Computer Action\"];\n+    [study addChild:nodeComputerAction];\n+    \n+    //logging userAction relationship\n+    DDXMLElement *nodeUserActionID = [DDXMLElement elementWithName:@\"User Action ID\" stringValue:[NSString stringWithFormat:@\"%ld\",(long)UserActionIDTag]];\n+    \n+    //logging selection\n+    DDXMLElement *nodeSelection = [DDXMLElement elementWithName:@\"Selection\" stringValue:@\"Image\"];\n+    \n+    //logging Input\n+    DDXMLElement *nodeInput = [DDXMLElement elementWithName:@\"Input\"];\n+    DDXMLElement *nodeDisplayedMenuItem1;\n+    DDXMLElement *nodeDisplayedMenuItem2;\n+    DDXMLElement *nodeDisplayedMenuItem3;\n+    \n+    // checks the number of menu items displayed then extracts the menu item data and parses data into a string for each menu item for logging\n+    if( [displayedMenuInteractions count] == 2 )","path":"EMBRACE_Client/ServerCommunicationController.m","position":710,"original_position":710,"commit_id":"4ad29a907060c7dfc24a91183fd94773b09b49d6","original_commit_id":"4ad29a907060c7dfc24a91183fd94773b09b49d6","user":{"login":"aewong","id":5873554,"avatar_url":"https://avatars.githubusercontent.com/u/5873554?v=3","gravatar_id":"","url":"https://api.github.com/users/aewong","html_url":"https://github.com/aewong","followers_url":"https://api.github.com/users/aewong/followers","following_url":"https://api.github.com/users/aewong/following{/other_user}","gists_url":"https://api.github.com/users/aewong/gists{/gist_id}","starred_url":"https://api.github.com/users/aewong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aewong/subscriptions","organizations_url":"https://api.github.com/users/aewong/orgs","repos_url":"https://api.github.com/users/aewong/repos","events_url":"https://api.github.com/users/aewong/events{/privacy}","received_events_url":"https://api.github.com/users/aewong/received_events","type":"User","site_admin":false},"body":"Might want to add more comments to describe what is going on in this if-else. It's not very clear right now.","created_at":"2015-01-28T20:15:30Z","updated_at":"2015-01-28T20:15:30Z","html_url":"https://github.com/hcilabasu/EMBRACE-iPad/pull/32#discussion_r23719316","pull_request_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/32","_links":{"self":{"href":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/comments/23719316"},"html":{"href":"https://github.com/hcilabasu/EMBRACE-iPad/pull/32#discussion_r23719316"},"pull_request":{"href":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/32"}}},"pull_request":{"url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/32","id":20115539,"html_url":"https://github.com/hcilabasu/EMBRACE-iPad/pull/32","diff_url":"https://github.com/hcilabasu/EMBRACE-iPad/pull/32.diff","patch_url":"https://github.com/hcilabasu/EMBRACE-iPad/pull/32.patch","issue_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues/32","number":32,"state":"open","locked":false,"title":"Introduction branch","user":{"login":"jonlemosz","id":1839164,"avatar_url":"https://avatars.githubusercontent.com/u/1839164?v=3","gravatar_id":"","url":"https://api.github.com/users/jonlemosz","html_url":"https://github.com/jonlemosz","followers_url":"https://api.github.com/users/jonlemosz/followers","following_url":"https://api.github.com/users/jonlemosz/following{/other_user}","gists_url":"https://api.github.com/users/jonlemosz/gists{/gist_id}","starred_url":"https://api.github.com/users/jonlemosz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonlemosz/subscriptions","organizations_url":"https://api.github.com/users/jonlemosz/orgs","repos_url":"https://api.github.com/users/jonlemosz/repos","events_url":"https://api.github.com/users/jonlemosz/events{/privacy}","received_events_url":"https://api.github.com/users/jonlemosz/received_events","type":"User","site_admin":false},"body":"Contains the login branch changes James made and that Audrey merged into this branch.","created_at":"2014-08-21T15:07:04Z","updated_at":"2015-01-28T20:15:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"35dfb9ee8b56da078c79d198d324bbe057d8053a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/32/commits","review_comments_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/32/comments","review_comment_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/comments/{number}","comments_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues/32/comments","statuses_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/statuses/4ad29a907060c7dfc24a91183fd94773b09b49d6","head":{"label":"hcilabasu:IntroductionBranch","ref":"IntroductionBranch","sha":"4ad29a907060c7dfc24a91183fd94773b09b49d6","user":{"login":"hcilabasu","id":4299369,"avatar_url":"https://avatars.githubusercontent.com/u/4299369?v=3","gravatar_id":"","url":"https://api.github.com/users/hcilabasu","html_url":"https://github.com/hcilabasu","followers_url":"https://api.github.com/users/hcilabasu/followers","following_url":"https://api.github.com/users/hcilabasu/following{/other_user}","gists_url":"https://api.github.com/users/hcilabasu/gists{/gist_id}","starred_url":"https://api.github.com/users/hcilabasu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hcilabasu/subscriptions","organizations_url":"https://api.github.com/users/hcilabasu/orgs","repos_url":"https://api.github.com/users/hcilabasu/repos","events_url":"https://api.github.com/users/hcilabasu/events{/privacy}","received_events_url":"https://api.github.com/users/hcilabasu/received_events","type":"User","site_admin":false},"repo":{"id":12091350,"name":"EMBRACE-iPad","full_name":"hcilabasu/EMBRACE-iPad","owner":{"login":"hcilabasu","id":4299369,"avatar_url":"https://avatars.githubusercontent.com/u/4299369?v=3","gravatar_id":"","url":"https://api.github.com/users/hcilabasu","html_url":"https://github.com/hcilabasu","followers_url":"https://api.github.com/users/hcilabasu/followers","following_url":"https://api.github.com/users/hcilabasu/following{/other_user}","gists_url":"https://api.github.com/users/hcilabasu/gists{/gist_id}","starred_url":"https://api.github.com/users/hcilabasu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hcilabasu/subscriptions","organizations_url":"https://api.github.com/users/hcilabasu/orgs","repos_url":"https://api.github.com/users/hcilabasu/repos","events_url":"https://api.github.com/users/hcilabasu/events{/privacy}","received_events_url":"https://api.github.com/users/hcilabasu/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/hcilabasu/EMBRACE-iPad","description":"","fork":false,"url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad","forks_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/forks","keys_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/teams","hooks_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/hooks","issue_events_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues/events{/number}","events_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/events","assignees_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/assignees{/user}","branches_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/branches{/branch}","tags_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/tags","blobs_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/refs{/sha}","trees_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/statuses/{sha}","languages_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/languages","stargazers_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/stargazers","contributors_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/contributors","subscribers_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/subscribers","subscription_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/subscription","commits_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/commits{/sha}","git_commits_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/commits{/sha}","comments_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/comments{/number}","issue_comment_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues/comments/{number}","contents_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/contents/{+path}","compare_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/merges","archive_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/downloads","issues_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues{/number}","pulls_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls{/number}","milestones_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/milestones{/number}","notifications_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/labels{/name}","releases_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/releases{/id}","created_at":"2013-08-13T19:57:53Z","updated_at":"2014-08-25T23:48:37Z","pushed_at":"2015-01-28T19:55:00Z","git_url":"git://github.com/hcilabasu/EMBRACE-iPad.git","ssh_url":"git@github.com:hcilabasu/EMBRACE-iPad.git","clone_url":"https://github.com/hcilabasu/EMBRACE-iPad.git","svn_url":"https://github.com/hcilabasu/EMBRACE-iPad","homepage":null,"size":114452,"stargazers_count":1,"watchers_count":1,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":6,"forks":0,"open_issues":6,"watchers":1,"default_branch":"master"}},"base":{"label":"hcilabasu:master","ref":"master","sha":"b16a925b02a71a8f73be4cf95f63152d6b62ba36","user":{"login":"hcilabasu","id":4299369,"avatar_url":"https://avatars.githubusercontent.com/u/4299369?v=3","gravatar_id":"","url":"https://api.github.com/users/hcilabasu","html_url":"https://github.com/hcilabasu","followers_url":"https://api.github.com/users/hcilabasu/followers","following_url":"https://api.github.com/users/hcilabasu/following{/other_user}","gists_url":"https://api.github.com/users/hcilabasu/gists{/gist_id}","starred_url":"https://api.github.com/users/hcilabasu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hcilabasu/subscriptions","organizations_url":"https://api.github.com/users/hcilabasu/orgs","repos_url":"https://api.github.com/users/hcilabasu/repos","events_url":"https://api.github.com/users/hcilabasu/events{/privacy}","received_events_url":"https://api.github.com/users/hcilabasu/received_events","type":"User","site_admin":false},"repo":{"id":12091350,"name":"EMBRACE-iPad","full_name":"hcilabasu/EMBRACE-iPad","owner":{"login":"hcilabasu","id":4299369,"avatar_url":"https://avatars.githubusercontent.com/u/4299369?v=3","gravatar_id":"","url":"https://api.github.com/users/hcilabasu","html_url":"https://github.com/hcilabasu","followers_url":"https://api.github.com/users/hcilabasu/followers","following_url":"https://api.github.com/users/hcilabasu/following{/other_user}","gists_url":"https://api.github.com/users/hcilabasu/gists{/gist_id}","starred_url":"https://api.github.com/users/hcilabasu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hcilabasu/subscriptions","organizations_url":"https://api.github.com/users/hcilabasu/orgs","repos_url":"https://api.github.com/users/hcilabasu/repos","events_url":"https://api.github.com/users/hcilabasu/events{/privacy}","received_events_url":"https://api.github.com/users/hcilabasu/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/hcilabasu/EMBRACE-iPad","description":"","fork":false,"url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad","forks_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/forks","keys_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/teams","hooks_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/hooks","issue_events_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues/events{/number}","events_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/events","assignees_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/assignees{/user}","branches_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/branches{/branch}","tags_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/tags","blobs_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/refs{/sha}","trees_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/statuses/{sha}","languages_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/languages","stargazers_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/stargazers","contributors_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/contributors","subscribers_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/subscribers","subscription_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/subscription","commits_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/commits{/sha}","git_commits_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/git/commits{/sha}","comments_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/comments{/number}","issue_comment_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues/comments/{number}","contents_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/contents/{+path}","compare_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/merges","archive_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/downloads","issues_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues{/number}","pulls_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls{/number}","milestones_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/milestones{/number}","notifications_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/labels{/name}","releases_url":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/releases{/id}","created_at":"2013-08-13T19:57:53Z","updated_at":"2014-08-25T23:48:37Z","pushed_at":"2015-01-28T19:55:00Z","git_url":"git://github.com/hcilabasu/EMBRACE-iPad.git","ssh_url":"git@github.com:hcilabasu/EMBRACE-iPad.git","clone_url":"https://github.com/hcilabasu/EMBRACE-iPad.git","svn_url":"https://github.com/hcilabasu/EMBRACE-iPad","homepage":null,"size":114452,"stargazers_count":1,"watchers_count":1,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":6,"forks":0,"open_issues":6,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/32"},"html":{"href":"https://github.com/hcilabasu/EMBRACE-iPad/pull/32"},"issue":{"href":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues/32"},"comments":{"href":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/issues/32/comments"},"review_comments":{"href":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/32/comments"},"review_comment":{"href":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/pulls/32/commits"},"statuses":{"href":"https://api.github.com/repos/hcilabasu/EMBRACE-iPad/statuses/4ad29a907060c7dfc24a91183fd94773b09b49d6"}}}}