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

39 lines
1.1 KiB
Vala

public class Tootle.API.Notification : Entity, Widgetizable {
public string id { get; set; }
public API.Account account { get; set; }
public API.NotificationType kind { get; set; }
public string created_at { get; set; }
public API.Status? status { get; set; default = null; }
public override Gtk.Widget to_widget () {
return new Widgets.Notification (this);
}
public Soup.Message? dismiss () {
if (kind == NotificationType.FOLLOW_REQUEST)
return reject_follow_request ();
var req = new Request.POST ("/api/v1/notifications/dismiss")
.with_account (accounts.active)
.with_param ("id", id)
.exec ();
return req;
}
public Soup.Message accept_follow_request () {
var req = new Request.POST (@"/api/v1/follow_requests/$(account.id)/authorize")
.with_account (accounts.active)
.exec ();
return req;
}
public Soup.Message reject_follow_request () {
var req = new Request.POST (@"/api/v1/follow_requests/$(account.id)/reject")
.with_account (accounts.active)
.exec ();
return req;
}
}