int ttd_http_fini(void);
int ttd_http_command_get(char **cmd_json, long *res_code);
int ttd_http_report_post(const char *result_json, long *res_code);
-int ttd_http_appdata_post(const char *url, const char *data, long *res_code);
+int ttd_http_appdata_post(
+ const char *project, const char *data, long *res_code);
#endif /* __TT_DAEMON_HTTP_H__ */
typedef enum {
TTD_URL_CMD = 0,
TTD_URL_REPORT,
+ TTD_URL_DATA,
TTD_URL_TYPE_NUM
} ttd_url_type_e;
while (TRUE) {
ttd_app_data *app_data = NULL;
int ret = 0;
+ long res_code = 0;
app_data = g_async_queue_pop(handle->data_queue);
if (!app_data)
_D("receiving queue_quit_marker");
break;
}
-#if 0 /* Enable it if API url for posting data is created */
- /* TODO : get API url for posting data to replace POST_DATA_URL */
- long res_code = 0;
- char *url = NULL;
- /* TODO : get url based on project name */
- url = __get_projcet_url(ttd_app_data_get_project_name(app_data));
- ret = ttd_http_appdata_post(url,
+ ret = ttd_http_appdata_post(ttd_app_data_get_project_name(app_data),
ttd_app_data_get_data(app_data), &res_code);
if (!ret) {
_E("failed to post data, retry it - code[%ld]", res_code);
/* 0.5 sec sleep before retry it */
continue;
}
-#endif
+
_D("msg posted : %s", ttd_app_data_get_data(app_data));
ttd_app_data_free(app_data);
}
struct curl_slist *headers = NULL;
const char *url = NULL;
+ retvm_if(!result_json, -1, "result_json is NULL");
+
url = __get_url_by_type(TTD_URL_REPORT);
retvm_if(!url, -1, "failed to get url for command POST");
return __ttd_http_post(url, result_json, headers, res_code);
}
-int ttd_http_appdata_post(const char *url, const char *data, long *res_code)
+int ttd_http_appdata_post(
+ const char *project, const char *data_json, long *res_code)
{
struct curl_slist *headers = NULL;
+ const char *url = NULL;
+ char *p_url = NULL;
+ int ret = 0;
+
+ retvm_if(!project, -1, "project is NULL");
+ retvm_if(!data_json, -1, "data_json is NULL");
+
+ url = __get_url_by_type(TTD_URL_DATA);
+ retvm_if(!url, -1, "failed to get url for DATA");
+
+ p_url = g_strdup_printf("%s%s", url, project);
+ retvm_if(!p_url, -1, "failed to create url for project");
+
+ _D("[%s] : %s", project, data_json);
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, "Content-Type: application/json");
/* add here http headers to set new one */
- return __ttd_http_post(url, data, headers, res_code);
+ ret = __ttd_http_post(p_url, data_json, headers, res_code);
+ g_free(p_url);
+
+ return ret;
}
#define CONF_URL_KEY_ADDRESS "server"
#define CONF_URL_KEY_CMD "api_cmd"
#define CONF_URL_KEY_REPORT "api_report"
+#define CONF_URL_KEY_DATA "api_data"
#define QUERY_KEY_DEVICE_ID "deviceId="
#define QUERY_KEY_STATE "state="
return device_id;
}
+static char *__ttd_url_get_by_key(const char *key)
+{
+ char *url = NULL;
+ retv_if(!key, NULL);
+
+ ttd_config_read_string(CONF_URL_GROUP_NAME, key, &url);
+ return url;
+}
+
static char *_ttd_url_get_cmd(void)
{
char *cmd_api = NULL;
device_id = __ttd_url_get_device_id();
retv_if(!device_id, NULL);
- ttd_config_read_string(CONF_URL_GROUP_NAME, CONF_URL_KEY_CMD, &cmd_api);
+ cmd_api = __ttd_url_get_by_key(CONF_URL_KEY_CMD);
goto_if(!cmd_api, DONE_N_FREE);
cmd_url = g_strdup_printf("%s?&%s%s&%s%d", cmd_api,
static char *_ttd_url_get_report(void)
{
- char *report_url = NULL;
-
- ttd_config_read_string(CONF_URL_GROUP_NAME,
- CONF_URL_KEY_REPORT, &report_url);
- retv_if(!report_url, NULL);
+ return __ttd_url_get_by_key(CONF_URL_KEY_REPORT);
+}
- return report_url;
+static char *_ttd_url_get_data(void)
+{
+ return __ttd_url_get_by_key(CONF_URL_KEY_DATA);
}
char *ttd_url_get_by_type(ttd_url_type_e type)
case TTD_URL_REPORT:
url_postfix = _ttd_url_get_report();
break;
+ case TTD_URL_DATA:
+ url_postfix = _ttd_url_get_data();
+ break;
case TTD_URL_TYPE_NUM:
default:
_E("not supported type : %d", type);