summaryrefslogtreecommitdiffstats
path: root/src/afm-binding.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/afm-binding.c')
-rw-r--r--src/afm-binding.c36
1 files changed, 32 insertions, 4 deletions
diff --git a/src/afm-binding.c b/src/afm-binding.c
index 7fe9f3d..e4375a5 100644
--- a/src/afm-binding.c
+++ b/src/afm-binding.c
@@ -39,6 +39,7 @@ static const char _a_l_c_[] = "application-list-changed";
static const char _detail_[] = "detail";
static const char _id_[] = "id";
static const char _install_[] = "install";
+static const char _lang_[] = "lang";
static const char _not_found_[] = "not-found";
static const char _once_[] = "once";
static const char _pause_[] = "pause";
@@ -90,6 +91,22 @@ static void application_list_changed(const char *operation, const char *data)
}
/*
+ * Retrieve the required language from 'req'.
+ */
+static const char *get_lang(struct afb_req req)
+{
+ const char *lang;
+
+ /* get the optional language */
+ lang = afb_req_value(req, _lang_);
+
+ /* TODO use the req to get the lang of the session (if any) */
+
+ return lang;
+}
+
+
+/*
* retrieves the 'appid' in parameters received with the
* request 'req' for the 'method'.
*
@@ -187,9 +204,14 @@ static void reply_status(struct afb_req req, int status, const char *errstr)
*/
static void runnables(struct afb_req req)
{
+ const char *lang;
struct json_object *resp;
- INFO("method runnables called");
- resp = afm_udb_applications_public(afudb, afb_req_get_uid(req));
+
+ /* get the language */
+ lang = get_lang(req);
+
+ /* get the details */
+ resp = afm_udb_applications_public(afudb, afb_req_get_uid(req), lang);
afb_req_success(req, resp, NULL);
}
@@ -198,6 +220,7 @@ static void runnables(struct afb_req req)
*/
static void detail(struct afb_req req)
{
+ const char *lang;
const char *appid;
struct json_object *resp;
@@ -205,8 +228,11 @@ static void detail(struct afb_req req)
if (!onappid(req, _detail_, &appid))
return;
+ /* get the language */
+ lang = get_lang(req);
+
/* wants details for appid */
- resp = afm_udb_get_application_public(afudb, appid, afb_req_get_uid(req));
+ resp = afm_udb_get_application_public(afudb, appid, afb_req_get_uid(req), lang);
if (resp)
afb_req_success(req, resp, NULL);
else
@@ -324,7 +350,6 @@ static void terminate(struct afb_req req)
static void runners(struct afb_req req)
{
struct json_object *resp;
- INFO("method runners called");
resp = afm_urun_list(afudb, afb_req_get_uid(req));
afb_req_success(req, resp, NULL);
}
@@ -342,6 +367,9 @@ static void state(struct afb_req req)
}
}
+/*
+ * On querying installation of widget(s)
+ */
static void install(struct afb_req req)
{
const char *wgtfile;