diff --git a/src/matrix-http-api.c b/src/matrix-http-api.c index 829d574..e2b90e3 100644 --- a/src/matrix-http-api.c +++ b/src/matrix-http-api.c @@ -16,8 +16,8 @@ * . */ -#include "matrix-http-api.h" #include "matrix-api.h" +#include "matrix-http-api.h" #include #include @@ -60,6 +60,7 @@ typedef struct _MatrixHTTPAPIPrivate { enum { PROP_VALIDATE_CERTIFICATE = 1, PROP_BASE_URL, + PROP_TOKEN, N_PROPERTIES }; @@ -144,6 +145,15 @@ matrix_http_api_set_property(GObject *gobject, break; } + case PROP_TOKEN: + if (priv->token) { + g_free(priv->token); + } + + priv->token = g_strdup(g_value_get_string(value)); + + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec); } @@ -168,6 +178,12 @@ matrix_http_api_get_property(GObject *gobject, g_value_set_string(value, priv->url); break; + + case PROP_TOKEN: + g_value_set_string(value, priv->token); + + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec); } @@ -208,6 +224,18 @@ matrix_http_api_class_init(MatrixHTTPAPIClass *klass) NULL, G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + /** + * MatrixHTTPAPI:token: + * + * The token to use for authorization. The matrix_http_api_login() + * and matrix_http_api_register() calls set this automatically. + */ + obj_properties[PROP_TOKEN] = g_param_spec_string( + "token", "Authorization token", + "The token to use for authorization", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + g_object_class_install_properties(gobject_class, N_PROPERTIES, obj_properties);