diff options
Diffstat (limited to 'QSThingsPlugin/Helpers')
| -rw-r--r-- | QSThingsPlugin/Helpers/ObjectHelper.h | 18 | ||||
| -rw-r--r-- | QSThingsPlugin/Helpers/ObjectHelper.m | 58 | ||||
| -rw-r--r-- | QSThingsPlugin/Helpers/SQLHelper.m | 2 | ||||
| -rw-r--r-- | QSThingsPlugin/Helpers/ThingsHelper.h | 1 | ||||
| -rw-r--r-- | QSThingsPlugin/Helpers/ThingsHelper.m | 9 |
5 files changed, 77 insertions, 11 deletions
diff --git a/QSThingsPlugin/Helpers/ObjectHelper.h b/QSThingsPlugin/Helpers/ObjectHelper.h new file mode 100644 index 0000000..fdb0a48 --- /dev/null +++ b/QSThingsPlugin/Helpers/ObjectHelper.h @@ -0,0 +1,18 @@ +#import "Constants.h" +#import <Foundation/Foundation.h> +#import <QSCore/QSCore.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + Helper class to generate QSObjects + */ +@interface ObjectHelper : NSObject + ++ (QSObject *) areaFromSQLResult:(NSDictionary *)result usingPath:(NSString *)path; ++ (QSObject *) projectFromSQLResult:(NSDictionary *)result usingPath:(NSString *)path; ++ (QSObject *) taskFromSQLResult:(NSDictionary *)result usingPath:(NSString *)path; ++ (QSObject *) tagFromSQLResult:(NSDictionary *)result usingPath:(NSString *)path; +@end + +NS_ASSUME_NONNULL_END diff --git a/QSThingsPlugin/Helpers/ObjectHelper.m b/QSThingsPlugin/Helpers/ObjectHelper.m new file mode 100644 index 0000000..cf26127 --- /dev/null +++ b/QSThingsPlugin/Helpers/ObjectHelper.m @@ -0,0 +1,58 @@ +#import "ObjectHelper.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation ObjectHelper + +#pragma mark - SQL Results to QSObjects + ++ (QSObject *) areaFromSQLResult:(NSDictionary *)result usingPath:(NSString *)path { + NSMutableDictionary *configuration = [result mutableCopy]; + [configuration setObject:path forKey:@"path"]; + QSObject *area = [QSObject + makeObjectWithIdentifier:[result objectForKey:@"uuid"]]; + [area setObject:configuration forType:kAreaType]; + [area setName:[result objectForKey:@"title"]]; + [area setPrimaryType:kAreaType]; + return area; +} + ++ (QSObject *) projectFromSQLResult:(NSDictionary *)result usingPath:(NSString *)path { + NSMutableDictionary *configuration = [result mutableCopy]; + [configuration setObject:path forKey:@"path"]; + QSObject *project = [QSObject + makeObjectWithIdentifier:[result objectForKey:@"uuid"]]; + [project setObject:configuration forType:kProjectType]; + [project setName:[result objectForKey:@"title"]]; + [project setDetails:[result objectForKey:@"notes"]]; + [project setPrimaryType:kProjectType]; + + return project; +} ++ (QSObject *) taskFromSQLResult:(NSDictionary *)result usingPath:(NSString *)path { + NSMutableDictionary *configuration = [result mutableCopy]; + [configuration setObject:path forKey:@"path"]; + QSObject *task = [QSObject + makeObjectWithIdentifier:[result objectForKey:@"uuid"]]; + [task setObject:configuration forType:kTaskType]; + [task setName:[result objectForKey:@"title"]]; + [task setDetails:[result objectForKey:@"notes"]]; + [task setPrimaryType:kTaskType]; + + return task; +} ++ (QSObject *) tagFromSQLResult:(NSDictionary *)result usingPath:(NSString *)path { + NSMutableDictionary *configuration = [result mutableCopy]; + [configuration setObject:path forKey:@"path"]; + QSObject *tag = [QSObject + makeObjectWithIdentifier:[result objectForKey:@"uuid"]]; + [tag setObject:configuration forType:kTagType]; + [tag setName:[result objectForKey:@"title"]]; + [tag setPrimaryType:kTagType]; + + return tag; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/QSThingsPlugin/Helpers/SQLHelper.m b/QSThingsPlugin/Helpers/SQLHelper.m index c44ea22..c26dfc5 100644 --- a/QSThingsPlugin/Helpers/SQLHelper.m +++ b/QSThingsPlugin/Helpers/SQLHelper.m @@ -9,7 +9,7 @@ FMDatabase *database = [FMDatabase databaseWithPath:path]; if (![database openWithFlags:0x00000001]) { // 1 = SQLITE_OPEN_READONLY - NSLog(@"Could not open Firefox's places.sqlite DB."); + NSLog(@"Could not open Things database."); return @[]; } [database goodConnection]; diff --git a/QSThingsPlugin/Helpers/ThingsHelper.h b/QSThingsPlugin/Helpers/ThingsHelper.h index 29d3092..3f1ab6a 100644 --- a/QSThingsPlugin/Helpers/ThingsHelper.h +++ b/QSThingsPlugin/Helpers/ThingsHelper.h @@ -28,7 +28,6 @@ extern ThingsURLRoute const ThingsURLRouteAddProject; @returns YES if the URL was successfully opened, NO if something went wrong. */ + (BOOL)callRoute:(ThingsURLRoute)route withParameters:(NSDictionary *)parameters; - @end NS_ASSUME_NONNULL_END diff --git a/QSThingsPlugin/Helpers/ThingsHelper.m b/QSThingsPlugin/Helpers/ThingsHelper.m index cc7267b..be54d8c 100644 --- a/QSThingsPlugin/Helpers/ThingsHelper.m +++ b/QSThingsPlugin/Helpers/ThingsHelper.m @@ -11,15 +11,6 @@ ThingsURLRoute const ThingsURLRouteAddProject = @"add-project"; @implementation ThingsHelper -+ (instancetype)sharedInstance { - static ThingsHelper *sharedInstance = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedInstance = [[self alloc] init]; - }); - return sharedInstance; -} - + (BOOL)requiresAuthentication:(ThingsURLRoute)route { if ([route isEqualToString:ThingsURLRouteSearch] || [route isEqualToString:ThingsURLRouteShow]) { return NO; |