X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=RooTicket.vala;h=18f5e6ba06f29ddb10541881d16a54cd99e3cd73;hb=b4911e42c0727c4346a81e6a879dbc99342e0899;hp=5d3c357c8ff5d6330ffb0c70518f913c4acd0630;hpb=424eebf8a96c11d28b3da871c3e1560638d3511f;p=gitlive diff --git a/RooTicket.vala b/RooTicket.vala index 5d3c357c..18f5e6ba 100644 --- a/RooTicket.vala +++ b/RooTicket.vala @@ -34,29 +34,20 @@ public class RooOption : Object } -public class RooProject : Object -{ - public string id; // not really important that they are numbers.. - public string code; - public string name; - public string type; - -} - - static RooTicket _RooTicket; public class RooTicket : Object { - public enum NotMe { - TRUE, - FALSE + + public enum Who { + ANYBODY, + ME } - public enum Closed { - TRUE, - FALSE + public enum Status { + ALL, + ACTIVE } //const string baseurl = "https://roojs.com/admin.php/Ro/mtrack_ticket"; @@ -66,14 +57,14 @@ public class RooTicket : Object if (_RooTicket == null) { _RooTicket = new RooTicket(); _RooTicket.tickets = new Gee.ArrayList(); - _RooTicket.projects = new Gee.ArrayList(); + _RooTicket.repos = new Gee.ArrayList(); _RooTicket.loadRepos(); // initalize it.. } return _RooTicket; } public Gee.ArrayList tickets; // only available for singletonn. - public Gee.ArrayList projects; // only available for singletonn. + public Gee.ArrayList repos; // only available for singletonn. public Gee.ArrayList milestones; @@ -140,18 +131,7 @@ public class RooTicket : Object GLib.debug("ADD ticket %s : %s : %s", add.id, add.summary, add.project_id_name); return add; } - public RooProject addProject(Json.Object t) - { - var add = new RooProject(); - add.id = t.get_string_member("id"); - add.name = t.get_string_member("name"); - add.type = t.get_string_member("type"); - add.code = t.get_string_member("code"); - this.projects.add(add); - GLib.debug("ADD project %s : %s : %s", add.id, add.code, add.name); - return add; - } - + public RooRepo addRepo(Json.Object t) { var add = new RooRepo(); @@ -171,9 +151,7 @@ public class RooTicket : Object if (rt.repos.size < 1) { rt.loadRepos(); } - if (rt.projects.size < 1) { - rt.loadProjects(); - } + var pid = ""; foreach(var roo_repo in rt.repos) { @@ -187,7 +165,7 @@ public class RooTicket : Object return null; } // get project by id... - foreach(var roo_project in rt.projects) { + foreach(var roo_project in RooProject.projects()) { if (roo_project.id == pid) { GLib.debug("getProjectByRepo: project_id = %s", pid); return roo_project; @@ -270,24 +248,18 @@ public class RooTicket : Object } } - public void loadTickets(string project_id, NotMe not_me, Closed closed) + public void loadTickets(string project_id, Who who, Status status) { RooTicket.singleton().tickets = new Gee.ArrayList(); var table = new GLib.HashTable(str_hash, str_equal); - if (not_me == NotMe.FALSE) { - table.insert("query[viewtype]","me"); - } else { - - } - if (closed == Closed.TRUE) { - table.insert("query[viewtype]","me"); - } else { + + table.insert("_developer", who.to_string().down().substring(15)); - } + table.insert("query[viewtype]", status.to_string().down().substring(18)); - table.insert("limit","999"); + table.insert("limit","200"); table.insert("sort","summary"); table.insert("dir","ASC"); @@ -318,9 +290,9 @@ public class RooTicket : Object parser.load_from_data (data, -1); var response = parser.get_root().get_object(); - var status = response.get_boolean_member("success"); + var success = response.get_boolean_member("success"); - if(!status){ + if(!success){ GLib.error(response.get_string_member("errorMsg")); return; } @@ -340,62 +312,7 @@ public class RooTicket : Object } - - public void loadProjects() - { - RooTicket.singleton().projects = new Gee.ArrayList(); - - - var table = new GLib.HashTable(str_hash, str_equal); - table.insert("query[project_filter]","P,N,U"); - table.insert("limit","999"); - table.insert("sort","name"); - table.insert("dir","ASC"); - - var params = Soup.Form.encode_hash(table); - - var url = "%s/%s?%s" . printf(roourl, "core_project", params); - - GLib.debug("request %s", url); - - var session = new Soup.Session (); - session.timeout = 0; - var message = new Soup.Message ("GET", url); - - - RooTicket.setAuth(message); - - session.send_message (message); - - 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 rd = response.get_array_member ("data"); - - // got a valid result... - var _this = RooTicket.singleton(); - for(var i = 0; i < rd.get_length(); i++) { - _this.addProject(rd.get_object_element(i)); - } - - - } catch (Error e) { - GLib.error(e.message); - return; - } - - } public void loadRepos() { RooTicket.singleton().repos = new Gee.ArrayList(); @@ -404,7 +321,7 @@ public class RooTicket : Object var table = new GLib.HashTable(str_hash, str_equal); - table.insert("limit","999"); + table.insert("limit","200"); table.insert("sort","shortname"); table.insert("dir","ASC");