Update change log and spec for wrt-plugins-tizen_0.4.70
[framework/web/wrt-plugins-tizen.git] / src / Contact / plugin_config.cpp
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18
19 #include <Commons/FunctionDefinition.h>
20 #include <Commons/FunctionDeclaration.h>
21 #include <iostream>
22 #include <Commons/Exception.h>
23 #include <dpl/exception.h>
24 #include <map>
25
26 #include "plugin_config.h"
27
28 #define CONTACT_FEATURE_API_READ  "http://tizen.org/privilege/contact.read"
29 #define CONTACT_FEATURE_API_WRITE "http://tizen.org/privilege/contact.write"
30
31 #define CONTACT_DEVICE_CAP_READ "contact.read"
32 #define CONTACT_DEVICE_CAP_WRITE "contact.write"
33
34 using namespace WrtDeviceApis::Commons;
35
36 namespace DeviceAPI {
37 namespace Contact {
38
39 static FunctionMapping createContactFunctions();
40
41 static FunctionMapping ContactFunctions =
42     createContactFunctions();
43
44 DEFINE_FUNCTION_GETTER(Contact, ContactFunctions);
45
46 static FunctionMapping createContactFunctions()
47 {
48     /**
49      * Device capabilities
50      */
51     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTACT_READ, CONTACT_DEVICE_CAP_READ);
52     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTACT_WRITE, CONTACT_DEVICE_CAP_WRITE);
53
54     ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
55
56     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTACT_READ);
57     ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTACT_READ, DEVICE_CAP_CONTACT_READ);
58
59     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTACT_WRITE);
60     ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTACT_WRITE, DEVICE_CAP_CONTACT_WRITE);
61
62     /**
63      * Api Features
64      */
65     ACE_CREATE_FEATURE(FEATURE_CONTACT_READ, CONTACT_FEATURE_API_READ);
66     ACE_CREATE_FEATURE(FEATURE_CONTACT_WRITE, CONTACT_FEATURE_API_WRITE);
67
68     ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_CONTACT_READ);
69     ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_READ, FEATURE_CONTACT_READ);
70
71     ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_CONTACT_WRITE);
72     ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_WRITE, FEATURE_CONTACT_WRITE);
73
74     /**
75      * Functions
76      */
77
78     FunctionMapping contactMapping;
79
80     //ContactManager.getAddressBooks
81     AceFunction contactManagerGetAddressBooksFunc = ACE_CREATE_FUNCTION(
82             FUNCTION_CONTACT_MANAGER_GET_ADDRESS_BOOKS,
83             CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_ADDRESS_BOOKS,
84             CONTACT_FEATURES_CONTACT_READ,
85             DEVICE_LIST_CONTACT_READ);
86
87     contactMapping.insert(std::make_pair(
88                                CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_ADDRESS_BOOKS,
89                                contactManagerGetAddressBooksFunc));
90
91     //ContactManager.getDefaultAddressBook
92     AceFunction contactManagerGetDefaultAddressBookFunc = ACE_CREATE_FUNCTION(
93             FUNCTION_CONTACT_MANAGER_GET_DEFAULT_ADDRESS_BOOK,
94             CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_DEFAULT_ADDRESS_BOOK,
95             CONTACT_FEATURES_CONTACT_READ,
96             DEVICE_LIST_CONTACT_READ);
97
98     contactMapping.insert(std::make_pair(
99                                CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_DEFAULT_ADDRESS_BOOK,
100                                contactManagerGetDefaultAddressBookFunc));
101
102     //ContactManager.getUnifiedAddressBook
103     AceFunction contactManagerGetUnifiedAddressBookFunc = ACE_CREATE_FUNCTION(
104             FUNCTION_CONTACT_MANAGER_GET_UNIFIED_ADDRESS_BOOK,
105             CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_UNIFIED_ADDRESS_BOOK,
106             CONTACT_FEATURES_CONTACT_READ,
107             DEVICE_LIST_CONTACT_READ);
108
109     contactMapping.insert(std::make_pair(
110                                CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_UNIFIED_ADDRESS_BOOK,
111                                contactManagerGetUnifiedAddressBookFunc));
112
113     //ContactManager.getAddressBook
114     AceFunction contactManagerGetAddressBookFunc = ACE_CREATE_FUNCTION(
115             FUNCTION_CONTACT_MANAGER_GET_ADDRESS_BOOK,
116             CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_ADDRESS_BOOK,
117             CONTACT_FEATURES_CONTACT_READ,
118             DEVICE_LIST_CONTACT_READ);
119
120     contactMapping.insert(std::make_pair(
121                                CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_ADDRESS_BOOK,
122                                contactManagerGetAddressBookFunc));
123
124
125     //ContactManager.get
126     AceFunction contactManagerGetFunc = ACE_CREATE_FUNCTION(
127             FUNCTION_CONTACT_MANAGER_GET,
128             CONTACT_FUNCTION_API_CONTACT_MANAGER_GET,
129             CONTACT_FEATURES_CONTACT_READ,
130             DEVICE_LIST_CONTACT_READ);
131
132     contactMapping.insert(std::make_pair(
133                                CONTACT_FUNCTION_API_CONTACT_MANAGER_GET,
134                                contactManagerGetFunc));
135
136     //ContactManager.update
137     AceFunction contactManagerUpdateFunc = ACE_CREATE_FUNCTION(
138             FUNCTION_CONTACT_MANAGER_UPDATE,
139             CONTACT_FUNCTION_API_CONTACT_MANAGER_UPDATE,
140             CONTACT_FEATURES_CONTACT_WRITE,
141             DEVICE_LIST_CONTACT_WRITE);
142
143     contactMapping.insert(std::make_pair(
144                                CONTACT_FUNCTION_API_CONTACT_MANAGER_UPDATE,
145                                contactManagerUpdateFunc));
146
147     //ContactManager.updateBatch
148     AceFunction contactManagerUpdateBatchFunc = ACE_CREATE_FUNCTION(
149             FUNCTION_CONTACT_MANAGER_UPDATE_BATCH,
150             CONTACT_FUNCTION_API_CONTACT_MANAGER_UPDATE_BATCH,
151             CONTACT_FEATURES_CONTACT_WRITE,
152             DEVICE_LIST_CONTACT_WRITE);
153
154     contactMapping.insert(std::make_pair(
155                                CONTACT_FUNCTION_API_CONTACT_MANAGER_UPDATE_BATCH,
156                                contactManagerUpdateBatchFunc));
157
158     //ContactManager.remove
159     AceFunction contactManagerRemoveFunc = ACE_CREATE_FUNCTION(
160             FUNCTION_CONTACT_MANAGER_REMOVE,
161             CONTACT_FUNCTION_API_CONTACT_MANAGER_REMOVE,
162             CONTACT_FEATURES_CONTACT_WRITE,
163             DEVICE_LIST_CONTACT_WRITE);
164
165     contactMapping.insert(std::make_pair(
166                                CONTACT_FUNCTION_API_CONTACT_MANAGER_REMOVE,
167                                contactManagerRemoveFunc));
168
169     //ContactManager.removeBatch
170     AceFunction contactManagerRemoveBatchFunc = ACE_CREATE_FUNCTION(
171             FUNCTION_CONTACT_MANAGER_REMOVE_BATCH,
172             CONTACT_FUNCTION_API_CONTACT_MANAGER_REMOVE_BATCH,
173             CONTACT_FEATURES_CONTACT_WRITE,
174             DEVICE_LIST_CONTACT_WRITE);
175
176     contactMapping.insert(std::make_pair(
177                                CONTACT_FUNCTION_API_CONTACT_MANAGER_REMOVE_BATCH,
178                                contactManagerRemoveBatchFunc));
179
180     //ContactManager.find
181     AceFunction contactManagerFindFunc = ACE_CREATE_FUNCTION(
182             FUNCTION_CONTACT_MANAGER_FIND,
183             CONTACT_FUNCTION_API_CONTACT_MANAGER_FIND,
184             CONTACT_FEATURES_CONTACT_READ,
185             DEVICE_LIST_CONTACT_READ);
186
187     contactMapping.insert(std::make_pair(
188                                CONTACT_FUNCTION_API_CONTACT_MANAGER_FIND,
189                                contactManagerFindFunc));
190
191     //ContactManager.addChangeListener
192     AceFunction contactManagerAddChangeListenerFunc = ACE_CREATE_FUNCTION(
193             FUNCTION_CONTACT_MANAGER_ADD_CHANGE_LISTENER,
194             CONTACT_FUNCTION_API_CONTACT_MANAGER_ADD_CHANGE_LISTENER,
195             CONTACT_FEATURES_CONTACT_READ,
196             DEVICE_LIST_CONTACT_READ);
197
198     contactMapping.insert(std::make_pair(
199                                CONTACT_FUNCTION_API_CONTACT_MANAGER_ADD_CHANGE_LISTENER,
200                                contactManagerAddChangeListenerFunc));
201
202     //ContactManager.removeChangeListener
203     AceFunction contactManagerRemoveChangeListenerFunc = ACE_CREATE_FUNCTION(
204             FUNCTION_CONTACT_MANAGER_REMOVE_CHANGE_LISTENER,
205             CONTACT_FUNCTION_API_CONTACT_MANAGER_REMOVE_CHANGE_LISTENER,
206             CONTACT_FEATURES_CONTACT_READ,
207             DEVICE_LIST_CONTACT_READ);
208
209     contactMapping.insert(std::make_pair(
210                                CONTACT_FUNCTION_API_CONTACT_MANAGER_REMOVE_CHANGE_LISTENER,
211                                contactManagerRemoveChangeListenerFunc));
212
213     //AddressBook.get
214     AceFunction addressBookGetFunc = ACE_CREATE_FUNCTION(
215             FUNCTION_ADDRESS_BOOK_GET,
216             CONTACT_FUNCTION_API_ADDRESS_BOOK_GET,
217             CONTACT_FEATURES_CONTACT_READ,
218             DEVICE_LIST_CONTACT_READ);
219
220     contactMapping.insert(std::make_pair(
221                                CONTACT_FUNCTION_API_ADDRESS_BOOK_GET,
222                                addressBookGetFunc));
223
224     //AddressBook.add
225     AceFunction addressBookAddFunc = ACE_CREATE_FUNCTION(
226             FUNCTION_ADDRESS_BOOK_ADD,
227             CONTACT_FUNCTION_API_ADDRESS_BOOK_ADD,
228             CONTACT_FEATURES_CONTACT_WRITE,
229             DEVICE_LIST_CONTACT_WRITE);
230
231     contactMapping.insert(std::make_pair(
232                                CONTACT_FUNCTION_API_ADDRESS_BOOK_ADD,
233                                addressBookAddFunc));
234
235     //AddressBook.addBatch
236     AceFunction addressBookAddBatchFunc = ACE_CREATE_FUNCTION(
237             FUNCTION_ADDRESS_BOOK_ADD_BATCH,
238             CONTACT_FUNCTION_API_ADDRESS_BOOK_ADD_BATCH,
239             CONTACT_FEATURES_CONTACT_WRITE,
240             DEVICE_LIST_CONTACT_WRITE);
241
242     contactMapping.insert(std::make_pair(
243                                CONTACT_FUNCTION_API_ADDRESS_BOOK_ADD_BATCH,
244                                addressBookAddBatchFunc));
245
246     //AddressBook.update
247     AceFunction addressBookUpdateFunc = ACE_CREATE_FUNCTION(
248             FUNCTION_ADDRESS_BOOK_UPDATE,
249             CONTACT_FUNCTION_API_ADDRESS_BOOK_UPDATE,
250             CONTACT_FEATURES_CONTACT_WRITE,
251             DEVICE_LIST_CONTACT_WRITE);
252
253     contactMapping.insert(std::make_pair(
254                                CONTACT_FUNCTION_API_ADDRESS_BOOK_UPDATE,
255                                addressBookUpdateFunc));
256
257     //AddressBook.updateBatch
258     AceFunction addressBookUpdateBatchFunc = ACE_CREATE_FUNCTION(
259             FUNCTION_ADDRESS_BOOK_UPDATE_BATCH,
260             CONTACT_FUNCTION_API_ADDRESS_BOOK_UPDATE_BATCH,
261             CONTACT_FEATURES_CONTACT_WRITE,
262             DEVICE_LIST_CONTACT_WRITE);
263
264     contactMapping.insert(std::make_pair(
265                                CONTACT_FUNCTION_API_ADDRESS_BOOK_UPDATE_BATCH,
266                                addressBookUpdateBatchFunc));
267
268     //AddressBook.remove
269     AceFunction addressBookRemoveFunc = ACE_CREATE_FUNCTION(
270             FUNCTION_ADDRESS_BOOK_REMOVE,
271             CONTACT_FUNCTION_API_ADDRESS_BOOK_REMOVE,
272             CONTACT_FEATURES_CONTACT_WRITE,
273             DEVICE_LIST_CONTACT_WRITE);
274
275     contactMapping.insert(std::make_pair(
276                                CONTACT_FUNCTION_API_ADDRESS_BOOK_REMOVE,
277                                addressBookRemoveFunc));
278
279     //AddressBook.removeBatch
280     AceFunction addressBookRemoveBatchFunc = ACE_CREATE_FUNCTION(
281             FUNCTION_ADDRESS_BOOK_REMOVE_BATCH,
282             CONTACT_FUNCTION_API_ADDRESS_BOOK_REMOVE_BATCH,
283             CONTACT_FEATURES_CONTACT_WRITE,
284             DEVICE_LIST_CONTACT_WRITE);
285
286     contactMapping.insert(std::make_pair(
287                                CONTACT_FUNCTION_API_ADDRESS_BOOK_REMOVE_BATCH,
288                                addressBookRemoveBatchFunc));
289
290     //AddressBook.find
291     AceFunction addressBookFindFunc = ACE_CREATE_FUNCTION(
292             FUNCTION_ADDRESS_BOOK_FIND,
293             CONTACT_FUNCTION_API_ADDRESS_BOOK_FIND,
294             CONTACT_FEATURES_CONTACT_READ,
295             DEVICE_LIST_CONTACT_READ);
296
297     contactMapping.insert(std::make_pair(
298                                CONTACT_FUNCTION_API_ADDRESS_BOOK_FIND,
299                                addressBookFindFunc));
300
301     //AddressBook.addChangeListener
302     AceFunction addressBookAddChangeListenerFunc = ACE_CREATE_FUNCTION(
303             FUNCTION_ADDRESS_BOOK_ADD_CHANGE_LISTENER,
304             CONTACT_FUNCTION_API_ADDRESS_BOOK_ADD_CHANGE_LISTENER,
305             CONTACT_FEATURES_CONTACT_READ,
306             DEVICE_LIST_CONTACT_READ);
307
308     contactMapping.insert(std::make_pair(
309                                CONTACT_FUNCTION_API_ADDRESS_BOOK_ADD_CHANGE_LISTENER,
310                                addressBookAddChangeListenerFunc));
311
312     //AddressBook.removeChangeListener
313     AceFunction addressBookRemoveChangeListenerFunc = ACE_CREATE_FUNCTION(
314             FUNCTION_ADDRESS_BOOK_REMOVE_CHANGE_LISTENER,
315             CONTACT_FUNCTION_API_ADDRESS_BOOK_REMOVE_CHANGE_LISTENER,
316             CONTACT_FEATURES_CONTACT_READ,
317             DEVICE_LIST_CONTACT_READ);
318
319     contactMapping.insert(std::make_pair(
320                                CONTACT_FUNCTION_API_ADDRESS_BOOK_REMOVE_CHANGE_LISTENER,
321                                addressBookRemoveChangeListenerFunc));
322     //AddressBook.getGroup
323     AceFunction addressBookGetGroupFunc = ACE_CREATE_FUNCTION(
324             FUNCTION_ADDRESS_BOOK_GET_GROUP,
325             CONTACT_FUNCTION_API_ADDRESS_BOOK_GET_GROUP,
326             CONTACT_FEATURES_CONTACT_READ,
327             DEVICE_LIST_CONTACT_READ);
328
329     contactMapping.insert(std::make_pair(
330                                CONTACT_FUNCTION_API_ADDRESS_BOOK_GET_GROUP,
331                                addressBookGetGroupFunc));
332
333     //AddressBook.addGroup
334     AceFunction addressBookAddGroupFunc = ACE_CREATE_FUNCTION(
335             FUNCTION_ADDRESS_BOOK_ADD_GROUP,
336             CONTACT_FUNCTION_API_ADDRESS_BOOK_ADD_GROUP,
337             CONTACT_FEATURES_CONTACT_WRITE,
338             DEVICE_LIST_CONTACT_WRITE);
339
340     contactMapping.insert(std::make_pair(
341                                CONTACT_FUNCTION_API_ADDRESS_BOOK_ADD_GROUP,
342                                addressBookAddGroupFunc));
343
344     //AddressBook.updateGroup
345     AceFunction addressBookUpdateGroupFunc = ACE_CREATE_FUNCTION(
346             FUNCTION_ADDRESS_BOOK_UPDATE_GROUP,
347             CONTACT_FUNCTION_API_ADDRESS_BOOK_UPDATE_GROUP,
348             CONTACT_FEATURES_CONTACT_WRITE,
349             DEVICE_LIST_CONTACT_WRITE);
350
351     contactMapping.insert(std::make_pair(
352                                CONTACT_FUNCTION_API_ADDRESS_BOOK_UPDATE_GROUP,
353                                addressBookUpdateGroupFunc));
354
355     //AddressBook.removeGroup
356     AceFunction addressBookRemoveGroupFunc = ACE_CREATE_FUNCTION(
357             FUNCTION_ADDRESS_BOOK_REMOVE_GROUP,
358             CONTACT_FUNCTION_API_ADDRESS_BOOK_REMOVE_GROUP,
359             CONTACT_FEATURES_CONTACT_WRITE,
360             DEVICE_LIST_CONTACT_WRITE);
361
362     contactMapping.insert(std::make_pair(
363                                CONTACT_FUNCTION_API_ADDRESS_BOOK_REMOVE_GROUP,
364                                addressBookRemoveGroupFunc));
365
366     //AddressBook.getGroups
367     AceFunction addressBookGetGroupsFunc = ACE_CREATE_FUNCTION(
368             FUNCTION_ADDRESS_BOOK_GET_GROUPS,
369             CONTACT_FUNCTION_API_ADDRESS_BOOK_GET_GROUPS,
370             CONTACT_FEATURES_CONTACT_READ,
371             DEVICE_LIST_CONTACT_READ);
372
373     contactMapping.insert(std::make_pair(
374                                CONTACT_FUNCTION_API_ADDRESS_BOOK_GET_GROUPS,
375                                addressBookGetGroupsFunc));
376
377     //Person.link
378     AceFunction personLinkFunc = ACE_CREATE_FUNCTION(
379             FUNCTION_PERSON_LINK,
380             CONTACT_FUNCTION_API_PERSON_LINK,
381             CONTACT_FEATURES_CONTACT_WRITE,
382             DEVICE_LIST_CONTACT_WRITE);
383
384     contactMapping.insert(std::make_pair(
385                                CONTACT_FUNCTION_API_PERSON_LINK,
386                                personLinkFunc));
387
388     //Person.unlink
389     AceFunction personUnlinkFunc = ACE_CREATE_FUNCTION(
390             FUNCTION_PERSON_UNLINK,
391             CONTACT_FUNCTION_API_PERSON_UNLINK,
392             CONTACT_FEATURES_CONTACT_WRITE,
393             DEVICE_LIST_CONTACT_WRITE);
394
395     contactMapping.insert(std::make_pair(
396                                CONTACT_FUNCTION_API_PERSON_UNLINK,
397                                personUnlinkFunc));
398
399     return contactMapping;
400 }
401
402 }
403