3d5dc8aa0d95b05ce3172b2037d978516584cc93
[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 QUERY_KEY_DEVICE_ID "deviceId="
27 #define QUERY_KEY_STATE "state="
28 #define QUERY_PARAM_STATE "created"
29
30 /* for test */
31 #define TEST_DEVICE_ID "test-page-device"
32
33 static char *__ttd_url_get_address(void)
34 {
35         char *url_address = NULL;
36
37         ttd_config_read_string(CONF_URL_GROUP_NAME,
38                 CONF_URL_KEY_ADDRESS, &url_address);
39         return url_address;
40 }
41
42 static char *__ttd_url_get_device_id(void)
43 {
44         char *device_id = NULL;
45
46         /* TODO : get device id */
47         g_strdup(TEST_DEVICE_ID);
48         return device_id;
49 }
50
51 static char *_ttd_url_get_cmd(void)
52 {
53         char *cmd_api = NULL;
54         char *device_id = NULL;
55         char *cmd_url = NULL;
56
57         device_id = __ttd_url_get_device_id();
58         retv_if(!device_id, NULL);
59
60         ttd_config_read_string(CONF_URL_GROUP_NAME, CONF_URL_KEY_CMD, &cmd_api);
61         goto_if(!cmd_api, DONE_N_FREE);
62
63         cmd_url = g_strdup_printf("%s?&%s%s&%s%s", cmd_api,
64                 QUERY_KEY_DEVICE_ID, device_id,
65                 QUERY_KEY_STATE, QUERY_PARAM_STATE);
66
67         if (cmd_url)
68                 _D("cmd url - %s", cmd_url);
69         else
70                 _E("failed to create cmd_url");
71
72 DONE_N_FREE:
73         g_free(device_id);
74         g_free(cmd_api);
75
76         return cmd_url;
77 }
78
79 static char *_ttd_url_get_report(void)
80 {
81         char *report_url = NULL;
82
83         ttd_config_read_string(CONF_URL_GROUP_NAME,
84                 CONF_URL_KEY_REPORT, &report_url);
85         retv_if(!report_url, NULL);
86
87         _D("report url - %s", report_url);
88
89         return report_url;
90 }
91
92 char *ttd_url_get_by_type(ttd_url_type_e type)
93 {
94         char *url_addr = NULL;
95         char *url_postfix = NULL;
96         char *url = NULL;
97
98         url_addr = __ttd_url_get_address();
99         retv_if(!url_addr, NULL);
100
101         switch (type) {
102         case TTD_URL_CMD:
103                 url_postfix = _ttd_url_get_cmd();
104                 break;
105         case TTD_URL_REPORT:
106                 url_postfix = _ttd_url_get_report();
107                 break;
108         }
109
110         if (url_postfix) {
111                 url = g_strdup_printf("%s%s", url_addr, url_postfix);
112                 _D("url[%d] - %s", type, url);
113         }
114
115         g_free(url_postfix);
116         g_free(url_addr);
117         return url;
118 }