Merge "Add uuid module"
[apps/native/tizen-things-daemon.git] / daemon / src / ttd-url.c
1 /*
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Flora License, Version 1.1 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://floralicense.org/license/
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <glib.h>
18 #include "ttd-log.h"
19 #include "ttd-config.h"
20 #include "ttd-url.h"
21
22 #define CONF_URL_GROUP_NAME "url"
23 #define CONF_URL_KEY_ADDRESS "server"
24 #define CONF_URL_KEY_CMD "api_cmd"
25 #define CONF_URL_KEY_REPORT "api_report"
26
27 #define QUERY_KEY_DEVICE_ID "deviceId="
28 #define QUERY_KEY_STATE "state="
29 #define QUERY_PARAM_STATE 0
30
31 /* for test - TO BE Removed */
32 #define TEST_DEVICE_ID "test-page-device"
33
34 static char *__ttd_url_get_address(void)
35 {
36         char *url_address = NULL;
37
38         ttd_config_read_string(CONF_URL_GROUP_NAME,
39                 CONF_URL_KEY_ADDRESS, &url_address);
40         return url_address;
41 }
42
43 static char *__ttd_url_get_device_id(void)
44 {
45         char *device_id = NULL;
46
47         /* TODO : get device id */
48         device_id = g_strdup(TEST_DEVICE_ID);
49         return device_id;
50 }
51
52 static char *_ttd_url_get_cmd(void)
53 {
54         char *cmd_api = NULL;
55         char *device_id = NULL;
56         char *cmd_url = NULL;
57
58         device_id = __ttd_url_get_device_id();
59         retv_if(!device_id, NULL);
60
61         ttd_config_read_string(CONF_URL_GROUP_NAME, CONF_URL_KEY_CMD, &cmd_api);
62         goto_if(!cmd_api, DONE_N_FREE);
63
64         cmd_url = g_strdup_printf("%s?&%s%s&%s%d", cmd_api,
65                 QUERY_KEY_DEVICE_ID, device_id,
66                 QUERY_KEY_STATE, QUERY_PARAM_STATE);
67
68         if (!cmd_url)
69                 _E("failed to create cmd_url");
70
71 DONE_N_FREE:
72         g_free(device_id);
73         g_free(cmd_api);
74
75         return cmd_url;
76 }
77
78 static char *_ttd_url_get_report(void)
79 {
80         char *report_url = NULL;
81
82         ttd_config_read_string(CONF_URL_GROUP_NAME,
83                 CONF_URL_KEY_REPORT, &report_url);
84         retv_if(!report_url, NULL);
85
86         return report_url;
87 }
88
89 char *ttd_url_get_by_type(ttd_url_type_e type)
90 {
91         char *url_addr = NULL;
92         char *url_postfix = NULL;
93         char *url = NULL;
94
95         url_addr = __ttd_url_get_address();
96         retv_if(!url_addr, NULL);
97
98         switch (type) {
99         case TTD_URL_CMD:
100                 url_postfix = _ttd_url_get_cmd();
101                 break;
102         case TTD_URL_REPORT:
103                 url_postfix = _ttd_url_get_report();
104                 break;
105         case TTD_URL_TYPE_NUM:
106         default:
107                 _E("not supported type : %d", type);
108                 break;
109         }
110
111         if (url_postfix) {
112                 url = g_strdup_printf("%s%s", url_addr, url_postfix);
113                 _D("url[%d] - %s", type, url);
114         }
115
116         g_free(url_postfix);
117         g_free(url_addr);
118         return url;
119 }