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

46 lines
1.5 KiB
Vala
Raw Normal View History

2020-05-29 14:19:35 +02:00
public class Tootle.API.Attachment : GLib.Object {
2018-05-04 22:57:31 +02:00
2020-05-29 14:19:35 +02:00
public int64 id { get; construct set; }
public string kind { get; set; }
public string url { get; set; }
public string? description { get; set; default = null; }
2018-05-04 22:57:31 +02:00
2020-05-29 14:19:35 +02:00
public string? _preview_url = null;
public string preview_url {
set { this._preview_url = value; }
get { return (_preview_url == null || _preview_url == "") ? url : _preview_url; }
2018-05-04 22:57:31 +02:00
}
2019-03-07 17:16:52 +01:00
2020-05-29 14:19:35 +02:00
public Attachment (Json.Object obj) {
Object (
id: int64.parse (obj.get_string_member ("id")),
kind: obj.get_string_member ("type"),
preview_url: obj.get_string_member ("preview_url"),
url: obj.get_string_member ("url"),
description: obj.get_string_member ("description")
);
2018-05-04 22:57:31 +02:00
}
2019-03-07 17:16:52 +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 ("type");
2020-05-29 14:19:35 +02:00
builder.add_string_value (kind);
2018-10-30 16:57:37 +01:00
builder.set_member_name ("url");
builder.add_string_value (url);
builder.set_member_name ("preview_url");
builder.add_string_value (preview_url);
2019-03-07 17:16:52 +01:00
2018-10-30 16:57:37 +01:00
if (description != null) {
builder.set_member_name ("description");
builder.add_string_value (description);
}
builder.end_object ();
return builder.get_root ();
}
2018-05-04 22:57:31 +02:00
}