add url for log
[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 #define CONF_URL_KEY_DATA "api_data"
27 #define CONF_URL_KEY_LOG "api_log"
28
29 #define QUERY_KEY_DEVICE_ID "deviceId="
30 #define QUERY_KEY_STATE "state="
31 #define QUERY_PARAM_STATE 0
32
33 /* for test - TO BE Removed */
34 #define TEST_DEVICE_ID "test-page-device"
35
36 static char *__ttd_url_get_address(void)
37 {
38         char *url_address = NULL;
39
40         ttd_config_read_string(CONF_URL_GROUP_NAME,
41                 CONF_URL_KEY_ADDRESS, &url_address);
42         return url_address;
43 }
44
45 static char *__ttd_url_get_device_id(void)
46 {
47         char *device_id = NULL;
48
49         /* TODO : get device id */
50         device_id = g_strdup(TEST_DEVICE_ID);
51         return device_id;
52 }
53
54 static char *__ttd_url_get_by_key(const char *key)
55 {
56         char *url = NULL;
57         retv_if(!key, NULL);
58
59         ttd_config_read_string(CONF_URL_GROUP_NAME, key, &url);
60         return url;
61 }
62
63 static char *_ttd_url_get_log(void)
64 {
65         char *log_api = NULL;
66         char *device_id = NULL;
67         char *log_url = NULL;
68
69         device_id = __ttd_url_get_device_id();
70         retv_if(!device_id, NULL);
71
72         log_api = __ttd_url_get_by_key(CONF_URL_KEY_LOG);
73         goto_if(!log_api, DONE_N_FREE);
74
75         log_url = g_strdup_printf("%s?&%s%s", log_api,
76                 QUERY_KEY_DEVICE_ID, device_id);
77
78         if (!log_url)
79                 _E("failed to create log_url");
80
81 DONE_N_FREE:
82         g_free(device_id);
83         g_free(log_api);
84
85         return log_url;
86 }
87
88 static char *_ttd_url_get_cmd(void)
89 {
90         char *cmd_api = NULL;
91         char *device_id = NULL;
92         char *cmd_url = NULL;
93
94         device_id = __ttd_url_get_device_id();
95         retv_if(!device_id, NULL);
96
97         cmd_api = __ttd_url_get_by_key(CONF_URL_KEY_CMD);
98         goto_if(!cmd_api, DONE_N_FREE);
99
100         cmd_url = g_strdup_printf("%s?&%s%s&%s%d", cmd_api,
101                 QUERY_KEY_DEVICE_ID, device_id,
102                 QUERY_KEY_STATE, QUERY_PARAM_STATE);
103
104         if (!cmd_url)
105                 _E("failed to create cmd_url");
106
107 DONE_N_FREE:
108         g_free(device_id);
109         g_free(cmd_api);
110
111         return cmd_url;
112 }
113
114 static char *_ttd_url_get_report(void)
115 {
116         return __ttd_url_get_by_key(CONF_URL_KEY_REPORT);
117 }
118
119 static char *_ttd_url_get_data(void)
120 {
121         return __ttd_url_get_by_key(CONF_URL_KEY_DATA);
122 }
123
124 char *ttd_url_get_by_type(ttd_url_type_e type)
125 {
126         char *url_addr = NULL;
127         char *url_postfix = NULL;
128         char *url = NULL;
129
130         url_addr = __ttd_url_get_address();
131         retv_if(!url_addr, NULL);
132
133         switch (type) {
134         case TTD_URL_CMD:
135                 url_postfix = _ttd_url_get_cmd();
136                 break;
137         case TTD_URL_REPORT:
138                 url_postfix = _ttd_url_get_report();
139                 break;
140         case TTD_URL_DATA:
141                 url_postfix = _ttd_url_get_data();
142                 break;
143         case TTD_URL_LOG:
144                 url_postfix = _ttd_url_get_log();
145                 break;
146         case TTD_URL_TYPE_NUM:
147         default:
148                 _E("not supported type : %d", type);
149                 break;
150         }
151
152         if (url_postfix) {
153                 url = g_strdup_printf("%s%s", url_addr, url_postfix);
154                 _D("url[%d] - %s", type, url);
155         }
156
157         g_free(url_postfix);
158         g_free(url_addr);
159         return url;
160 }