(no commit message)
[ptask.git] / src / tw.c
index 7ed0ae1..1e9a23c 100644 (file)
--- a/src/tw.c
+++ b/src/tw.c
@@ -86,7 +86,7 @@ static struct json_object *task_exec_json(char *opts)
        return NULL;
 }
 
-struct task **get_all_tasks(const char *status)
+struct task **tw_get_all_tasks(const char *status)
 {
        int i, n;
        struct json_object *jtasks, *jtask, *json;
@@ -127,6 +127,13 @@ struct task **get_all_tasks(const char *status)
                else
                        tasks[i]->project = NULL;
 
+               json = json_object_object_get(jtask, "priority");
+               if (json)
+                       tasks[i]->priority
+                               = strdup(json_object_get_string(json));
+               else
+                       tasks[i]->priority = strdup("");
+
                json = json_object_object_get(jtask, "uuid");
                tasks[i]->uuid = strdup(json_object_get_string(json));
 
@@ -174,3 +181,100 @@ char *escape(const char *txt)
        return result;
 }
 
+void tw_modify_description(const char *uuid, const char *newdesc)
+{
+       char *str;
+       char *opts;
+
+       str = escape(newdesc);
+
+       opts = malloc(1
+                     + strlen(uuid)
+                     + strlen(" modify :\"")
+                     + strlen(str)
+                     + strlen("\"")
+                     + 1);
+       sprintf(opts, " %s modify \"%s\"", uuid, str);
+
+       task_exec(opts);
+
+       free(str);
+       free(opts);
+}
+
+void tw_modify_project(const char *uuid, const char *newproject)
+{
+       char *str;
+       char *opts;
+
+       str = escape(newproject);
+
+       opts = malloc(1
+                     + strlen(uuid)
+                     + strlen(" modify project:\"")
+                     + strlen(str)
+                     + strlen("\"")
+                     + 1);
+       sprintf(opts, " %s modify project:\"%s\"", uuid, str);
+
+       task_exec(opts);
+
+       free(str);
+       free(opts);
+}
+
+void tw_modify_priority(const char *uuid, const char *priority)
+{
+       char *str;
+       char *opts;
+
+       str = escape(priority);
+
+       opts = malloc(1
+                     + strlen(uuid)
+                     + strlen(" modify priority:\"")
+                     + strlen(str)
+                     + strlen("\"")
+                     + 1);
+       sprintf(opts, " %s modify priority:\"%s\"", uuid, str);
+
+       task_exec(opts);
+
+       free(str);
+       free(opts);
+}
+
+void tw_add(const char *newdesc)
+{
+       char *str;
+       char *opts;
+
+       str = escape(newdesc);
+
+       opts = malloc(1
+                     + strlen(" add \"")
+                     + strlen(str)
+                     + strlen("\"")
+                     + 1);
+       sprintf(opts, " add \"%s\"", str);
+
+       task_exec(opts);
+
+       free(str);
+       free(opts);
+}
+
+void tw_done(const char *uuid)
+{
+       char *opts;
+
+       opts = malloc(1
+                     + strlen(uuid)
+                     + strlen(" done")
+                     + 1);
+       sprintf(opts, " %s done", uuid);
+
+       task_exec(opts);
+
+       free(opts);
+}