related sturct and queryparam
[platform/upstream/iotivity.git] / service / notification / src / provider / NSProviderResource.c
1 //******************************************************************
2 //
3 // Copyright 2016 Samsung Electronics All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 #include "NSProviderResource.h"
22
23 NSNotificationResource NotificationResource;
24 NSMessageResource NotificationMessageResource;
25 NSSyncResource NotificationSyncResource;
26
27 NSResult NSCreateResource(char *uri)
28 {
29     NS_LOG(DEBUG, "NSCreateResource - IN");
30     if (!uri)
31     {
32         NS_LOG(NS_ERROR, "Resource URI cannot be NULL");
33         return NS_ERROR;
34     }
35
36     if (strcmp(uri, NS_ROOT_URI) == 0)
37     {
38         NotificationResource.accepter = 0;
39         NotificationResource.message_uri = NS_COLLECTION_MESSAGE_URI;
40         NotificationResource.sync_uri = NS_COLLECTION_SYNC_URI;
41         NotificationResource.handle = NULL;
42
43         if (OCCreateResource(&NotificationResource.handle, NS_ROOT_TYPE, NS_DEFAULT_INTERFACE,
44                 NS_ROOT_URI, NSEntityHandlerNotificationCb, NULL, OC_DISCOVERABLE) != OC_STACK_OK)
45         {
46             NS_LOG(NS_ERROR, "Fail to Create Notification Resource");
47             return NS_ERROR;
48         }
49     }
50     else if (strcmp(uri, NS_COLLECTION_MESSAGE_URI) == 0)
51     {
52
53         NotificationMessageResource.messageId = 0;
54
55         (NotificationMessageResource.providerId)[0] = '\0';
56         NotificationMessageResource.type = 0;
57         NotificationMessageResource.dateTime = NULL;
58         NotificationMessageResource.ttl = 0;
59         NotificationMessageResource.title = NULL;
60         NotificationMessageResource.contentText = NULL;
61         NotificationMessageResource.sourceName = NULL;
62         NotificationMessageResource.mediaContents = NULL;
63
64         if (OCCreateResource(&NotificationMessageResource.handle, NS_COLLECTION_MESSAGE_TYPE,
65                 NS_DEFAULT_INTERFACE, NS_COLLECTION_MESSAGE_URI, NSEntityHandlerMessageCb, NULL,
66                 OC_OBSERVABLE) != OC_STACK_OK)
67         {
68             NS_LOG(NS_ERROR, "Fail to Create Notification Message Resource");
69             return NS_ERROR;
70         }
71     }
72     else if (strcmp(uri, NS_COLLECTION_SYNC_URI) == 0)
73     {
74         NotificationSyncResource.id = NULL;
75         NotificationSyncResource.state = NULL;
76         NotificationSyncResource.handle = NULL;
77
78         if (OCCreateResource(&(NotificationSyncResource.handle), NS_COLLECTION_SYNC_TYPE,
79                 NS_DEFAULT_INTERFACE, NS_COLLECTION_SYNC_URI, NSEntityHandlerSyncCb, NULL,
80                 OC_OBSERVABLE) != OC_STACK_OK)
81         {
82             NS_LOG(NS_ERROR, "Fail to Create Notification Sync Resource");
83             return NS_ERROR;
84         }
85     }
86     else
87     {
88         NS_LOG(ERROR, "Fail to create resource with invalid URI");
89         return NS_ERROR;
90     }
91
92     NS_LOG(DEBUG, "NSCreateResource - OUT");
93     return NS_OK;
94 }
95
96 NSResult NSRegisterResource()
97 {
98     NS_LOG(DEBUG, "NSRegisterResource - IN");
99
100     if (NSCreateResource(NS_COLLECTION_SYNC_URI) != NS_OK)
101     {
102         NS_LOG(ERROR, "Fail to register Sync Resource");
103         return NS_ERROR;
104     }
105
106     if (NSCreateResource(NS_COLLECTION_MESSAGE_URI) != NS_OK)
107     {
108         NS_LOG(ERROR, "Fail to register Message Resource");
109         return NS_ERROR;
110     }
111
112     if (NSCreateResource(NS_ROOT_URI) != NS_OK)
113     {
114         NS_LOG(ERROR, "Fail to register Notification Resource");
115         return NS_ERROR;
116     }
117
118     NS_LOG(DEBUG, "NSRegisterResource - OUT");
119     return NS_OK;
120 }
121
122 NSResult NSUnRegisterResource()
123 {
124     NS_LOG(DEBUG, "NSUnRegisterResource - IN");
125
126     if (OCDeleteResource(NotificationResource.handle) != OC_STACK_OK)
127     {
128         NS_LOG(ERROR, "Fail to Delete Notification Resource");
129         return NS_ERROR;
130     }
131
132     if (OCDeleteResource(NotificationMessageResource.handle) != OC_STACK_OK)
133     {
134         NS_LOG(ERROR, "Fail to Delete Notification Message Resource");
135         return NS_ERROR;
136     }
137
138     if (OCDeleteResource(NotificationSyncResource.handle) != OC_STACK_OK)
139     {
140         NS_LOG(ERROR, "Fail to Delete Notification Sync Resource");
141         return NS_ERROR;
142     }
143
144     NS_LOG(DEBUG, "NSUnRegisterResource - OUT");
145     return NS_OK;
146 }
147
148 NSResult NSPutNotificationResource(int accepter, OCResourceHandle * handle)
149 {
150     NS_LOG(DEBUG, "NSPutNotificationResource - IN");
151
152     NotificationResource.accepter = accepter;
153     NotificationResource.message_uri = NS_COLLECTION_MESSAGE_URI;
154     NotificationResource.sync_uri = NS_COLLECTION_SYNC_URI;
155
156     *handle = NotificationResource.handle;
157
158     NS_LOG(DEBUG, "NSPutNotificationResource - OUT");
159     return NS_OK;
160 }
161
162 NSResult NSPutMessageResource(NSMessage *msg, OCResourceHandle * handle)
163 {
164     NS_LOG(DEBUG, "NSPutMessageResource - IN");
165
166     if(msg != NULL)
167     {
168         NS_LOG(DEBUG, "NSMessage is valid");
169
170         NotificationMessageResource.messageId = msg->messageId;
171         OICStrcpy(NotificationMessageResource.providerId, UUID_STRING_SIZE, msg->providerId);
172         NotificationMessageResource.type = msg->type;
173         NotificationMessageResource.dateTime = msg->dateTime;
174         NotificationMessageResource.ttl = msg->ttl;
175         NotificationMessageResource.title = msg->title;
176         NotificationMessageResource.contentText = msg->contentText;
177         NotificationMessageResource.sourceName = msg->sourceName;
178         NotificationMessageResource.mediaContents = msg->mediaContents;
179     }
180     else
181     {
182         NS_LOG(ERROR, "NSMessage is NULL");
183     }
184
185     *handle = NotificationMessageResource.handle;
186     NS_LOG(DEBUG, "NSPutMessageResource - OUT");
187
188     return NS_OK;
189 }
190
191 NSResult NSPutSyncResource(NSSyncInfo *sync, OCResourceHandle * handle)
192 {
193     NS_LOG(DEBUG, "NSPutSyncResource - IN");
194
195     (void) sync;
196
197     *handle = NotificationSyncResource.handle;
198
199     NS_LOG(DEBUG, "NSPutSyncResource - OUT");
200     return NS_OK;
201 }