static void get_json (GDataParsable *parsable, JsonBuilder *builder) { GDataAccessRule *access_rule; const gchar *id, *etag, *role, *scope_type, *scope_value; access_rule = GDATA_ACCESS_RULE (parsable); id = gdata_entry_get_id (GDATA_ENTRY (parsable)); if (id != NULL) { json_builder_set_member_name (builder, "id"); json_builder_add_string_value (builder, id); } json_builder_set_member_name (builder, "kind"); json_builder_add_string_value (builder, "calendar#aclRule"); /* Add the ETag, if available. */ etag = gdata_entry_get_etag (GDATA_ENTRY (parsable)); if (etag != NULL) { json_builder_set_member_name (builder, "etag"); json_builder_add_string_value (builder, etag); } role = gdata_access_rule_get_role (access_rule); if (role != NULL) { json_builder_set_member_name (builder, "role"); json_builder_add_string_value (builder, role_v2_to_v3 (role)); } gdata_access_rule_get_scope (access_rule, &scope_type, &scope_value); if (scope_type != NULL || scope_value != NULL) { json_builder_set_member_name (builder, "scope"); json_builder_begin_object (builder); if (scope_type != NULL) { json_builder_set_member_name (builder, "type"); json_builder_add_string_value (builder, scope_type_v2_to_v3 (scope_type)); } if (scope_value != NULL) { json_builder_set_member_name (builder, "value"); json_builder_add_string_value (builder, scope_value); } json_builder_end_object (builder); } }
static void get_json (GDataParsable *parsable, JsonBuilder *builder) { const gchar *key; const gchar *role; const gchar *scope_type; const gchar *scope_value; GDATA_PARSABLE_CLASS (gdata_documents_access_rule_parent_class)->get_json (parsable, builder); key = gdata_access_rule_get_key (GDATA_ACCESS_RULE (parsable)); if (key != NULL && key[0] != '\0') { json_builder_set_member_name (builder, "authKey"); json_builder_add_string_value (builder, key); } role = gdata_access_rule_get_role (GDATA_ACCESS_RULE (parsable)); if (role != NULL && role[0] != '\0') { json_builder_set_member_name (builder, "role"); json_builder_add_string_value (builder, role); } gdata_access_rule_get_scope (GDATA_ACCESS_RULE (parsable), &scope_type, &scope_value); if (scope_type != NULL && scope_type[0] != '\0') { if (g_strcmp0 (scope_type, GDATA_ACCESS_SCOPE_DEFAULT) == 0) scope_type = "anyone"; json_builder_set_member_name (builder, "type"); json_builder_add_string_value (builder, scope_type); } if (scope_value != NULL && scope_value[0] != '\0') { json_builder_set_member_name (builder, "value"); json_builder_add_string_value (builder, scope_value); } }