NewBranch.bjs
[gitlive] / RooTicket.vala
index a68ed90..e02ad88 100644 (file)
@@ -22,13 +22,27 @@ class RooTicket : Object
     }
        public Gee.ArrayList<RooTicket> tickets; // only available for singletonn.
 
-       public int id;
+       public string  id; // not really important that they are numbers..
        public string summary;
        public string description;
        public string project_id_name;
 
 
-       public void loadTickets()
+
+       public void addTicket(JSON.Object t)
+       {
+               var add = new Roo.Ticket();
+               add.id = t.get_string_member("id");
+               add.summary = t.get_string_member("summary");
+               add.description = t.get_string_member("description");
+               add.project_id_name = t.get_string_member("project_id_name");                                           
+               this.tickets.add(add);
+               
+       }
+
+
+
+       static public void loadTickets()
        {
                var url = "https://roojs.com/admin.php/Roo/mtrack_ticket");
                
@@ -52,14 +66,40 @@ class RooTicket : Object
                var message = new Soup.Message ("GET", url);
                
                
-               this.setAuth(message);
+               RooTicket.setAuth(message);
                
                session.send_message (message);
                
-               return (string) message.response_body.flatten().data;
+               var data = (string) message.response_body.flatten().data;
+               GLib.debug("got %s", data);
+               try {
+                       var parser = new Json.Parser ();
+                       parser.load_from_data (data, -1);
+
+                       var response = parser.get_root().get_object();
+                       var status = response.get_boolean_member("success");
+               
+                       if(!status){
+                               GLib.error(response.get_string_member("errorMsg"));
+                               return;
+                       }
+                       var data = response.get_array_member ("data");
+                       
+                       // got a valid result...
+                       _this = RooTicket.singleton();
+                       for(var i = 0; i < data.get_length(); i++) {
+                               _this.addTicket(data.get_object_element(i);
+                       }
+                       
+               
+               } catch (Error e) {
+                       GLib.error(e.message);
+                       return;
+               }
+               
        }
        
-       public void setAuth(message) {
+       static public void setAuth(message) {
        
                string str;
                var username = "";