#import "CompleteTaskAction.h" NS_ASSUME_NONNULL_BEGIN @implementation CompleteTaskAction - (QSObject *)completeTask:(QSObject *)directObject { NSSet *validTypes = [NSSet setWithObjects:kProjectType, kTaskType, nil]; NSString *authenticationKey = [KeychainHelper authenticationKey]; if (!authenticationKey) { NSLog(@"There is no authentication key."); } if (authenticationKey && [validTypes containsObject:directObject.primaryType]) { NSDictionary *contents = [directObject objectForType:directObject.primaryType]; NSString *path = @"update"; if (directObject.primaryType == kProjectType) { path = @"update-project"; } if (contents) { NSString *uuid = [contents objectForKey:@"uuid"]; if (uuid) { NSString *urlString = [NSString stringWithFormat:@"things:///%@?id=%@&auth-token=%@&completed=true", path, uuid, authenticationKey]; NSURL *url = [NSURL URLWithString:urlString]; [[NSWorkspace sharedWorkspace] openURL:url]; } else { NSLog(@"Things object did not have a uuid."); } } else { NSLog(@"Could not get the contents of the Things object."); } } return directObject; } @end NS_ASSUME_NONNULL_END