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
|
|
|
|
|
|
|
}
|