Add JSON getters for MatrixAPI3PidCredential
This commit is contained in:
parent
ccb9e47bb8
commit
07eae08d89
@ -113,6 +113,8 @@ matrix_api_3pid_credential_set_session_id
|
|||||||
matrix_api_3pid_credential_get_session_id
|
matrix_api_3pid_credential_get_session_id
|
||||||
matrix_api_3pid_credential_set_client_secret
|
matrix_api_3pid_credential_set_client_secret
|
||||||
matrix_api_3pid_credential_get_client_secret
|
matrix_api_3pid_credential_get_client_secret
|
||||||
|
matrix_api_3pid_credential_get_json_node
|
||||||
|
matrix_api_3pid_credential_get_json_data
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
MatrixAPIPusher
|
MatrixAPIPusher
|
||||||
|
@ -1759,6 +1759,92 @@ matrix_api_3pid_credential_get_client_secret(MatrixAPI3PidCredential *credential
|
|||||||
return credential->client_secret;
|
return credential->client_secret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* matrix_api_3pid_credential_get_json_node:
|
||||||
|
* @credential: a #MatrixAPI3PidCredential
|
||||||
|
* @error: return location for a #GError, or %NULL
|
||||||
|
*
|
||||||
|
* Get the JSON representation of @credential as a #JsonNode. If any
|
||||||
|
* fields of @credential are empty, it will yield an error, as all
|
||||||
|
* fields are mandatory. In this case, the return value is %NULL.
|
||||||
|
*
|
||||||
|
* Returns: (transfer full) (allow-none): the #JsonNode representation
|
||||||
|
* of @credential
|
||||||
|
*/
|
||||||
|
JsonNode *
|
||||||
|
matrix_api_3pid_credential_get_json_node(MatrixAPI3PidCredential *credential,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
JsonBuilder *builder;
|
||||||
|
JsonNode *node;
|
||||||
|
|
||||||
|
if (!credential->id_server
|
||||||
|
|| !credential->session_id
|
||||||
|
|| !credential->client_secret) {
|
||||||
|
g_set_error(error,
|
||||||
|
MATRIX_API_ERROR, MATRIX_API_ERROR_INCOMPLETE,
|
||||||
|
"All fields of the 3PID credential must be filled!");
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
builder = json_builder_new();
|
||||||
|
json_builder_begin_object(builder);
|
||||||
|
|
||||||
|
json_builder_set_member_name(builder, "id_server");
|
||||||
|
json_builder_add_string_value(builder, credential->id_server);
|
||||||
|
|
||||||
|
json_builder_set_member_name(builder, "session_id");
|
||||||
|
json_builder_add_string_value(builder, credential->session_id);
|
||||||
|
|
||||||
|
json_builder_set_member_name(builder, "client_secret");
|
||||||
|
json_builder_add_string_value(builder, credential->client_secret);
|
||||||
|
|
||||||
|
json_builder_end_object(builder);
|
||||||
|
node = json_builder_get_root(builder);
|
||||||
|
g_object_unref(builder);
|
||||||
|
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* matrix_api_3pid_credential_get_json_data:
|
||||||
|
* @credential: a #MatrixAPI3PidCredential
|
||||||
|
* @datalen: (out): storage location for the length of the JSON data,
|
||||||
|
* or %NULL
|
||||||
|
* @error: a #GError
|
||||||
|
*
|
||||||
|
* Get the JSON representation of @credential as a string. If any
|
||||||
|
* fields of @credential is %NULL, this function returns %NULL and
|
||||||
|
* fills @error wich %MATRIX_API_ERROR_INCOMPLETE.
|
||||||
|
*
|
||||||
|
* Returns: (transfer full) (allow-none): the JSON representation of
|
||||||
|
* @credential, or %NULL
|
||||||
|
*/
|
||||||
|
gchar *
|
||||||
|
matrix_api_3pid_credential_get_json_data(MatrixAPI3PidCredential *credential,
|
||||||
|
gsize *datalen,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
JsonGenerator *generator;
|
||||||
|
JsonNode *node;
|
||||||
|
gchar *data;
|
||||||
|
|
||||||
|
if ((node = matrix_api_3pid_credential_get_json_node(
|
||||||
|
credential, error)) == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
generator = json_generator_new();
|
||||||
|
json_generator_set_root(generator, node);
|
||||||
|
json_node_free(node);
|
||||||
|
|
||||||
|
data = json_generator_to_data(generator, datalen);
|
||||||
|
g_object_unref(generator);
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MatrixAPIPusher:
|
* MatrixAPIPusher:
|
||||||
*
|
*
|
||||||
|
@ -232,6 +232,11 @@ const gchar *matrix_api_3pid_credential_get_session_id(MatrixAPI3PidCredential *
|
|||||||
void matrix_api_3pid_credential_set_client_secret(MatrixAPI3PidCredential *credential,
|
void matrix_api_3pid_credential_set_client_secret(MatrixAPI3PidCredential *credential,
|
||||||
const gchar *client_secret);
|
const gchar *client_secret);
|
||||||
const gchar *matrix_api_3pid_credential_get_client_secret(MatrixAPI3PidCredential *credential);
|
const gchar *matrix_api_3pid_credential_get_client_secret(MatrixAPI3PidCredential *credential);
|
||||||
|
JsonNode *matrix_api_3pid_credential_get_json_node(MatrixAPI3PidCredential *credential,
|
||||||
|
GError **error);
|
||||||
|
gchar *matrix_api_3pid_credential_get_json_data(MatrixAPI3PidCredential *credential,
|
||||||
|
gsize *datalen,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
typedef struct _MatrixAPIPusher MatrixAPIPusher;
|
typedef struct _MatrixAPIPusher MatrixAPIPusher;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user