Code Review
/
apps
/
agl-service-data-persistence.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
binding: data-persistence: Modified the response of verb_read
[apps/agl-service-data-persistence.git]
/
src
/
persistence-binding.c
diff --git
a/src/persistence-binding.c
b/src/persistence-binding.c
index
3efb1f0
..
d1327a5
100644
(file)
--- a/
src/persistence-binding.c
+++ b/
src/persistence-binding.c
@@
-236,24
+236,40
@@
static void xdb_delete(afb_req_t req, datum *key)
static void xdb_get(afb_req_t req, datum *key)
{
struct json_object* obj;
static void xdb_get(afb_req_t req, datum *key)
{
struct json_object* obj;
+ struct json_object* args;
+ struct json_object* item = NULL;
datum result;
datum result;
+ /* get the key */
+ args = afb_req_json(req);
+
+ obj = json_object_new_object();
+
+ if (json_object_object_get_ex(args, "key", &item))
+ {
+ json_object_object_add(obj, "key", json_object_get(item));
+ }
+
result = gdbm_fetch(database, *key);
if (result.dptr)
{
result = gdbm_fetch(database, *key);
if (result.dptr)
{
- obj = json_object_new_object();
+
json_object_object_add(obj, "value", json_tokener_parse(result.dptr));
json_object_object_add(obj, "value", json_tokener_parse(result.dptr));
+
afb_req_reply(req, obj, NULL, NULL);
afb_req_reply(req, obj, NULL, NULL);
+
free(result.dptr);
free(result.dptr);
+
}
else
{
}
else
{
+ json_object_object_add(obj, "value", NULL);
AFB_API_ERROR(afbBindingRoot, "can't get key %s: %s%s%s",
DATA_STR(*key),
gdbm_strerror(gdbm_errno),
IFSYS(", ", ""),
IFSYS(strerror(errno), ""));
AFB_API_ERROR(afbBindingRoot, "can't get key %s: %s%s%s",
DATA_STR(*key),
gdbm_strerror(gdbm_errno),
IFSYS(", ", ""),
IFSYS(strerror(errno), ""));
- afb_req_reply_f(req,
NULL
, "failed", "%s", gdbm_strerror(gdbm_errno));
+ afb_req_reply_f(req,
obj
, "failed", "%s", gdbm_strerror(gdbm_errno));
}
}
#endif
}
}
#endif