aboutsummaryrefslogtreecommitdiff
path: root/QSThingsPlugin/Helpers
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-09-12 21:50:40 +0200
committerRuben Beltran del Rio <git@r.bdr.sh>2025-09-12 21:50:40 +0200
commit182872c760d437556d606cc02c6b7c570667a715 (patch)
tree11795bdb259445e5c3f8dd0177e9426ec77b0399 /QSThingsPlugin/Helpers
parent5870e5cf03ceaff7080174b573618631a413110e (diff)
Add children
Diffstat (limited to 'QSThingsPlugin/Helpers')
-rw-r--r--QSThingsPlugin/Helpers/ObjectHelper.h18
-rw-r--r--QSThingsPlugin/Helpers/ObjectHelper.m58
-rw-r--r--QSThingsPlugin/Helpers/SQLHelper.m2
-rw-r--r--QSThingsPlugin/Helpers/ThingsHelper.h1
-rw-r--r--QSThingsPlugin/Helpers/ThingsHelper.m9
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;