Implement i_sync
This commit is contained in:
parent
0b17b583ab
commit
c2593c6cd0
@ -2115,6 +2115,67 @@ i_notify_room_typing(MatrixAPI *api,
|
|||||||
g_free(path);
|
g_free(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
i_sync(MatrixAPI *api,
|
||||||
|
MatrixAPICallback callback,
|
||||||
|
gpointer user_data,
|
||||||
|
const gchar *filter_id,
|
||||||
|
const MatrixAPIFilter *filter,
|
||||||
|
const gchar *since,
|
||||||
|
gboolean full_state,
|
||||||
|
gboolean set_presence,
|
||||||
|
gulong timeout,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
GHashTable *params;
|
||||||
|
|
||||||
|
params = create_query_params();
|
||||||
|
|
||||||
|
if (filter_id && filter) {
|
||||||
|
g_set_error(error,
|
||||||
|
MATRIX_API_ERROR, MATRIX_API_ERROR_BAD_REQUEST,
|
||||||
|
"Cannot set both filter_id and filter");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filter_id) {
|
||||||
|
g_hash_table_replace(params, "filter", g_strdup(filter_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filter) {
|
||||||
|
g_hash_table_replace(params,
|
||||||
|
"filter",
|
||||||
|
matrix_api_filter_get_json_data(
|
||||||
|
(MatrixAPIFilter *)filter,
|
||||||
|
NULL));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (since) {
|
||||||
|
g_hash_table_replace(params, "since", g_strdup(since));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_hash_table_replace(params,
|
||||||
|
"full_state",
|
||||||
|
g_strdup((full_state) ? "true" : "false"));
|
||||||
|
|
||||||
|
if (!set_presence) {
|
||||||
|
g_hash_table_replace(params, "set_presence", g_strdup("offline"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (timeout != 0) {
|
||||||
|
g_hash_table_replace(params,
|
||||||
|
"timeout",
|
||||||
|
g_strdup_printf("%lu", timeout));
|
||||||
|
}
|
||||||
|
|
||||||
|
_send(MATRIX_HTTP_API(api),
|
||||||
|
callback, user_data,
|
||||||
|
CALL_API,
|
||||||
|
"GET", "sync", params, NULL, NULL, NULL,
|
||||||
|
FALSE, error);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
matrix_http_api_matrix_api_init(MatrixAPIInterface *iface)
|
matrix_http_api_matrix_api_init(MatrixAPIInterface *iface)
|
||||||
{
|
{
|
||||||
@ -2177,7 +2238,7 @@ matrix_http_api_matrix_api_init(MatrixAPIInterface *iface)
|
|||||||
iface->get_room_state = i_get_room_state;
|
iface->get_room_state = i_get_room_state;
|
||||||
iface->send_room_event = i_send_room_event;
|
iface->send_room_event = i_send_room_event;
|
||||||
iface->notify_room_typing = i_notify_room_typing;
|
iface->notify_room_typing = i_notify_room_typing;
|
||||||
iface->sync = NULL;
|
iface->sync = i_sync;
|
||||||
iface->create_filter = NULL;
|
iface->create_filter = NULL;
|
||||||
iface->download_filter = NULL;
|
iface->download_filter = NULL;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user