tootle-linux-client/src/API/Mention.vala

46 lines
1.2 KiB
Vala
Raw Normal View History

2019-03-11 15:14:37 +01:00
public class Tootle.API.Mention : GLib.Object {
2018-04-28 18:27:10 +02:00
public int64 id;
public string username;
public string acct;
public string url;
2018-10-23 12:05:24 +02:00
public Mention (int64 _id){
id = _id;
2018-04-28 18:27:10 +02:00
}
2019-03-11 15:14:37 +01:00
2018-10-23 12:05:24 +02:00
public Mention.from_account (Account account){
id = account.id;
username = account.username;
acct = account.acct;
url = account.url;
2018-04-28 18:27:10 +02:00
}
2019-03-11 15:14:37 +01:00
2018-04-28 18:27:10 +02:00
public static Mention parse (Json.Object obj){
var id = int64.parse (obj.get_string_member ("id"));
var mention = new Mention (id);
2019-03-11 15:14:37 +01:00
2018-04-28 18:27:10 +02:00
mention.username = obj.get_string_member ("username");
mention.acct = obj.get_string_member ("acct");
mention.url = obj.get_string_member ("url");
2019-03-11 15:14:37 +01:00
2018-04-28 18:27:10 +02:00
return mention;
}
2019-03-11 15:14:37 +01:00
2018-10-30 16:57:37 +01:00
public Json.Node? serialize () {
var builder = new Json.Builder ();
builder.begin_object ();
builder.set_member_name ("id");
builder.add_string_value (id.to_string ());
builder.set_member_name ("username");
builder.add_string_value (username);
builder.set_member_name ("acct");
builder.add_string_value (acct);
builder.set_member_name ("url");
builder.add_string_value (url);
builder.end_object ();
return builder.get_root ();
}
2018-04-28 18:27:10 +02:00
}