osrfHash* meta = osrfHashGet( (osrfHash*) ctx->method->userData, "class" );
jsonObject* target = jsonObjectGetIndex( ctx->params, 0 );
+ jsonObject* options = jsonObjectGetIndex( ctx->params, 1 );
if (!verifyObjectClass(ctx, target)) {
*err = -1;
buffer_free(_id);
}
- jsonObject* fake_params = jsonParseString("[]");
- jsonObjectPush(fake_params, jsonParseString("{}"));
+ if ( !options
+ || !jsonObjectGetKey( options, "quiet")
+ || strcmp( jsonObjectToSimpleString(jsonObjectGetKey( options, "quiet")), "true" )
+ ) {
- jsonObjectSetKey(
- jsonObjectGetIndex(fake_params, 0),
- osrfHashGet(meta, "primarykey"),
- jsonNewObject(id)
- );
+ jsonObject* fake_params = jsonParseString("[]");
+ jsonObjectPush(fake_params, jsonParseString("{}"));
+
+ jsonObjectSetKey(
+ jsonObjectGetIndex(fake_params, 0),
+ osrfHashGet(meta, "primarykey"),
+ jsonNewObject(id)
+ );
- jsonObject* list = doSearch( ctx,meta, fake_params, err);
+ jsonObject* list = doSearch( ctx,meta, fake_params, err);
- if(*err) {
+ if(*err) {
+ jsonObjectFree( fake_params );
+ obj = jsonNULL;
+ } else {
+ obj = jsonObjectClone( jsonObjectGetIndex(list, 0) );
+ }
+
+ jsonObjectFree( list );
jsonObjectFree( fake_params );
- obj = jsonNULL;
+
} else {
- obj = jsonObjectClone( jsonObjectGetIndex(list, 0) );
+ obj = jsonNewObject(id);
}
- jsonObjectFree( list );
- jsonObjectFree( fake_params );
-
}
free(query);