Uncommited changes synced
[gitlive] / tests / tickets.js
1 /**
2  *
3  * let's see if we can pull a list of tickets from the tracker..
4  *
5  */
6
7 GI      = imports.gi.GIRepository
8 GLib        = imports.gi.GLib;
9
10 // we add this in, as it appears to get lost sometimes if we set it using the ENV. variable in builder.sh
11 GI.IRepository.prepend_search_path(GLib.get_home_dir() + '/.Builder/girepository-1.1');
12
13 Soup = imports.gi.Soup ;
14
15
16 File = imports['../File.js'].File;
17
18 Tickets = {
19     
20     parseNetrc : function()
21     {
22         this.machines = {};
23         // very basic parsing - only support single line version..
24         var lines = File.read(GLib.get_home_dir() + '/.netrc').split(/\n/);
25         var t = this;
26         lines.forEach(function(l)  {
27             if (!l.match(/^machine/)) {
28                 return;
29             }
30             var ar = l.split(/\s+/);
31             // assume machine XXX login XXX password XXXX
32             t.machines[ar[1]] = { login : ar[3], password: ar[5]}
33         });
34         
35         
36     },
37     
38     fetchBugs : function(url)
39     {
40         Tickets.parseNetrc();
41         var ar = url.split('/');
42         print(JSON.stringify(ar, null, 4));
43         var auth = new Soup.Auth()
44         var session = new Soup.SessionSync();
45         session.signal.authenticate.connect(function(sess, msg, auth, rt) {
46             //print("authenticate?");
47             auth.authenticate(
48                     Tickets.machines[ar[2]].login,
49                     Tickets.machines[ar[2]].password
50             );
51         });
52         var request = new Soup.Message({
53                 method:"GET",
54                 uri:new Soup.URI.c_new(url)
55             });
56         var status = session.send_message(request); 
57         
58         var data = request.response_body.data;
59         return JSON.parse(data).data;
60         
61     }
62     
63     
64     
65 }
66
67
68 //print ( JSON.stringify(Tickets.machines) );
69
70
71
72
73 //Tickets.fetchBugs("http://www.roojs.com/mtrack/index.php/Gitlive/web.hex");
74