Add type MatrixUnsignedEventData
This commit is contained in:
parent
526da5f114
commit
033139672f
@ -194,6 +194,20 @@ matrix_presence_event_get_presence
|
||||
matrix_presence_event_set_last_active_ago
|
||||
matrix_presence_event_get_last_active_ago
|
||||
|
||||
<SUBSECTION>
|
||||
MatrixUnsignedEventData
|
||||
matrix_unsigned_event_data_new
|
||||
matrix_unsigned_event_data_new_from_json
|
||||
matrix_unsigned_event_data_ref
|
||||
matrix_unsigned_event_data_unref
|
||||
matrix_unsigned_event_data_set_age
|
||||
matrix_unsigned_event_data_get_age
|
||||
matrix_unsigned_event_data_set_redact_reason
|
||||
matrix_unsigned_event_data_get_redact_reason
|
||||
matrix_unsigned_event_data_set_transaction_id
|
||||
matrix_unsigned_event_data_get_transaction_id
|
||||
matrix_unsigned_event_data_get_json_node
|
||||
|
||||
<SUBSECTION Standard>
|
||||
MATRIX_TYPE_EVENT_FORMAT
|
||||
matrix_event_format_get_type
|
||||
@ -229,6 +243,8 @@ MATRIX_TYPE_STATE_EVENT
|
||||
matrix_state_event_get_type
|
||||
MATRIX_TYPE_PRESENCE_EVENT
|
||||
matrix_presence_event_get_type
|
||||
MATRIX_TYPE_UNSIGNED_EVENT_DATA
|
||||
matrix_unsigned_event_data_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
|
@ -724,4 +724,78 @@ namespace Matrix {
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class to hold unsigned event data, like event age, redact
|
||||
* reason or a transaction ID.
|
||||
*/
|
||||
public class UnsignedEventData : JsonCompact {
|
||||
/**
|
||||
* The age of the event, in seconds.
|
||||
*/
|
||||
public uint age { get; set; default = 0; }
|
||||
|
||||
/**
|
||||
* The reason of redaction, if any.
|
||||
*/
|
||||
public string? redact_reason { get; set; default = null; }
|
||||
|
||||
/**
|
||||
* The transaction ID of the message.
|
||||
*/
|
||||
public string? transaction_id { get; set; default = null; }
|
||||
|
||||
/**
|
||||
* Create an UnsignedEventData object based
|
||||
* on @param json_data.
|
||||
*/
|
||||
public
|
||||
UnsignedEventData.from_json(Json.Node json_data)
|
||||
requires(json_data.get_node_type() == Json.NodeType.OBJECT)
|
||||
{
|
||||
var root = json_data.get_object();
|
||||
Json.Node node;
|
||||
|
||||
if ((node = root.get_member("age")) != null) {
|
||||
age = (uint)node.get_int();
|
||||
}
|
||||
|
||||
if ((node = root.get_member("redacted_because")) != null) {
|
||||
redact_reason = node.get_string();
|
||||
}
|
||||
|
||||
if ((node = root.get_member("transaction_id")) != null) {
|
||||
transaction_id = node.get_string();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the unsigned event data as a JSON node.
|
||||
*/
|
||||
public override Json.Node?
|
||||
get_json_node()
|
||||
throws Matrix.Error
|
||||
{
|
||||
var builder = new Json.Builder();
|
||||
|
||||
builder.begin_object();
|
||||
|
||||
builder.set_member_name("age");
|
||||
builder.add_int_value(age);
|
||||
|
||||
if (redact_reason != null) {
|
||||
builder.set_member_name("redacted_because");
|
||||
builder.add_string_value(redact_reason);
|
||||
}
|
||||
|
||||
if (transaction_id != null) {
|
||||
builder.set_member_name("transaction_id");
|
||||
builder.add_string_value(transaction_id);
|
||||
}
|
||||
|
||||
builder.end_object();
|
||||
|
||||
return builder.get_root();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user