summaryrefslogtreecommitdiffstats
path: root/lasso
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2007-10-04 16:17:35 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2007-10-04 16:17:35 +0000
commite9be9c80c00d5dd160f26910d2a306dfa4151d21 (patch)
tree9316a8c4d7cf2976bd6428a7368693e968f99ab3 /lasso
parent6d7495d6ae05697b030cfbee541e685b06999434 (diff)
downloadlasso-e9be9c80c00d5dd160f26910d2a306dfa4151d21.tar.gz
lasso-e9be9c80c00d5dd160f26910d2a306dfa4151d21.tar.xz
lasso-e9be9c80c00d5dd160f26910d2a306dfa4151d21.zip
changed the way status code is handled to make code simpler
Diffstat (limited to 'lasso')
-rw-r--r--lasso/id-wsf-2.0/data_service.c36
1 files changed, 15 insertions, 21 deletions
diff --git a/lasso/id-wsf-2.0/data_service.c b/lasso/id-wsf-2.0/data_service.c
index a6ea7dc8..6fb8852e 100644
--- a/lasso/id-wsf-2.0/data_service.c
+++ b/lasso/id-wsf-2.0/data_service.c
@@ -190,7 +190,8 @@ lasso_idwsf2_data_service_parse_query_items(LassoIdWsf2DataService *service)
LassoIdWsf2DstRefItemData *data_item;
xmlNode *node;
GList *iter;
- int res = 0;
+ /* Default is Failed, will be OK or Partial when some items are successfully parsed */
+ char *status_code = LASSO_DST_STATUS_CODE_FAILED;
g_return_val_if_fail(LASSO_IS_IDWSF2_DATA_SERVICE(service),
LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
@@ -215,11 +216,6 @@ lasso_idwsf2_data_service_parse_query_items(LassoIdWsf2DataService *service)
LASSO_PROFILE(profile)->response = LASSO_NODE(response);
envelope->Body->any = g_list_append(envelope->Body->any, response);
- response2 = LASSO_IDWSF2_UTIL_RESPONSE(response);
- /* Default is Failed, will be OK or Partial when some items are successfully parsed */
- response2->Status = lasso_idwsf2_util_status_new();
- response2->Status->code = g_strdup(LASSO_DST_STATUS_CODE_FAILED);
-
/* Initialise XML parsing */
doc = xmlNewDoc((xmlChar*)"1.0");
xmlDocSetRootElement(doc, service->data);
@@ -249,12 +245,9 @@ lasso_idwsf2_data_service_parse_query_items(LassoIdWsf2DataService *service)
LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any,
xmlNewText(xpathObj->stringval));
} else {
- /* If status was OK, change it to Partial */
- if (strcmp(response2->Status->code, LASSO_DST_STATUS_CODE_OK) == 0) {
- g_free(response2->Status->code);
- response2->Status->code = g_strdup(LASSO_DST_STATUS_CODE_PARTIAL);
- } else {
- res = LASSO_DST_ERROR_QUERY_FAILED;
+ /* If status was OK, change it to Partial, else keep it Failed */
+ if (strcmp(status_code, LASSO_DST_STATUS_CODE_OK) == 0) {
+ status_code = LASSO_DST_STATUS_CODE_PARTIAL;
}
if (xpathObj != NULL) {
xmlXPathFreeObject(xpathObj);
@@ -264,16 +257,13 @@ lasso_idwsf2_data_service_parse_query_items(LassoIdWsf2DataService *service)
break;
}
-
+ /* Finish handling of a successful item parsing */
+ status_code = LASSO_DST_STATUS_CODE_OK;
if (item_result_query_base->itemID != NULL) {
data_item->itemIDRef = g_strdup(item_result_query_base->itemID);
}
response->Data = g_list_append(response->Data, data);
- /* Success : change status code to OK */
- if (strcmp(response2->Status->code, LASSO_DST_STATUS_CODE_FAILED) == 0) {
- g_free(response2->Status->code);
- response2->Status->code = g_strdup(LASSO_DST_STATUS_CODE_OK);
- }
+
xmlXPathFreeObject(xpathObj);
xpathObj = NULL;
}
@@ -283,11 +273,15 @@ lasso_idwsf2_data_service_parse_query_items(LassoIdWsf2DataService *service)
xmlXPathFreeContext(xpathCtx);
xmlFreeDoc(doc);
- if (res == 0 && strcmp(response2->Status->code, LASSO_DST_STATUS_CODE_FAILED) == 0) {
- res = LASSO_DST_ERROR_QUERY_FAILED;
+ response2 = LASSO_IDWSF2_UTIL_RESPONSE(response);
+ response2->Status = lasso_idwsf2_util_status_new();
+ response2->Status->code = g_strdup(status_code);
+
+ if (strcmp(status_code, LASSO_DST_STATUS_CODE_FAILED) == 0) {
+ return LASSO_DST_ERROR_QUERY_FAILED;
}
- return res;
+ return 0;
}
static gint