2018-04-14 14:09:06 +02:00
|
|
|
using Soup;
|
|
|
|
using GLib;
|
|
|
|
using Json;
|
|
|
|
|
|
|
|
public class Tootle.NetManager : GLib.Object{
|
|
|
|
|
|
|
|
public abstract signal void started();
|
|
|
|
public abstract signal void finished();
|
|
|
|
|
|
|
|
private int requests_processing = 0;
|
|
|
|
private Soup.Session session;
|
|
|
|
|
|
|
|
construct{
|
|
|
|
session = new Soup.Session ();
|
|
|
|
session.request_unqueued.connect (() => {
|
|
|
|
requests_processing--;
|
|
|
|
if(requests_processing <= 0)
|
|
|
|
finished ();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
public NetManager(){
|
|
|
|
GLib.Object();
|
|
|
|
}
|
|
|
|
|
|
|
|
public Soup.Message queue(Soup.Message msg, Soup.SessionCallback cb){
|
|
|
|
requests_processing++;
|
|
|
|
started ();
|
|
|
|
|
2018-04-27 20:50:08 +02:00
|
|
|
var token = Tootle.settings.access_token;
|
2018-04-14 14:09:06 +02:00
|
|
|
if(token != "null")
|
|
|
|
msg.request_headers.append ("Authorization", "Bearer " + token);
|
|
|
|
|
|
|
|
session.queue_message (msg, cb);
|
|
|
|
return msg;
|
|
|
|
}
|
|
|
|
|
2018-04-27 20:50:08 +02:00
|
|
|
public Json.Object parse(Soup.Message msg) throws GLib.Error{
|
2018-04-16 20:22:42 +02:00
|
|
|
// stdout.printf ("Status Code: %u\n", msg.status_code);
|
|
|
|
// stdout.printf ("Message length: %lld\n", msg.response_body.length);
|
2018-04-25 16:30:44 +02:00
|
|
|
// stdout.printf ("Object: \n%s\n", (string) msg.response_body.data);
|
2018-04-14 14:09:06 +02:00
|
|
|
|
|
|
|
var parser = new Json.Parser ();
|
|
|
|
parser.load_from_data ((string) msg.response_body.flatten ().data, -1);
|
|
|
|
return parser.get_root ().get_object ();
|
|
|
|
}
|
|
|
|
|
2018-04-27 20:50:08 +02:00
|
|
|
public Json.Array parse_array(Soup.Message msg) throws GLib.Error{
|
2018-04-16 20:22:42 +02:00
|
|
|
// stdout.printf ("Status Code: %u\n", msg.status_code);
|
|
|
|
// stdout.printf ("Message length: %lld\n", msg.response_body.length);
|
2018-04-25 16:30:44 +02:00
|
|
|
// stdout.printf ("Array: \n%s\n", (string) msg.response_body.data);
|
2018-04-14 14:09:06 +02:00
|
|
|
|
|
|
|
var parser = new Json.Parser ();
|
|
|
|
parser.load_from_data ((string) msg.response_body.flatten ().data, -1);
|
|
|
|
return parser.get_root ().get_array ();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|