4 * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
23 #ifdef ENABLE_LOG_FEATURE
24 #include "contacts_phone_log_internal.h"
25 #endif /* ENABLE_LOG_FEATURE */
27 #include "ctsvc_server_service.h"
28 #include "ctsvc_db_init.h"
30 #include "ctsvc_server_activity.h"
31 #include "ctsvc_server_person.h"
32 #include "ctsvc_server_group.h"
33 #include "ctsvc_server_phonelog.h"
34 #include "ctsvc_server_setting.h"
36 #include "ctsvc_db_access_control.h"
38 #include "ctsvc_ipc_marshal.h"
39 #include "ctsvc_internal.h"
40 #include "ctsvc_ipc_server.h"
41 #include "ctsvc_db_utils.h"
42 #include "ctsvc_handle.h"
43 #include "ctsvc_server_utils.h"
45 void ctsvc_ipc_activity_delete_by_contact_id(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
47 int ret = CONTACTS_ERROR_NONE;
49 contacts_h contact = NULL;
52 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
53 if (CONTACTS_ERROR_NONE != ret) {
54 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
57 ret = ctsvc_ipc_unmarshal_int(indata, &contact_id);
58 if (ret != CONTACTS_ERROR_NONE) {
59 ERR("ctsvc_ipc_unmarshal_int() Fail");
63 ERR("ctsvc_ipc_server_db_insert_record() Fail");
67 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
68 ret = CONTACTS_ERROR_PERMISSION_DENIED;
71 ret = ctsvc_activity_delete_by_contact_id(contact_id);
77 *outdata = pims_ipc_data_create(0);
78 if (NULL == *outdata) {
79 ERR("pims_ipc_data_create() Fail");
83 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
84 pims_ipc_data_destroy(*outdata);
86 ERR("ctsvc_ipc_marshal_int() Fail");
90 if (ret == CONTACTS_ERROR_NONE) {
91 int transaction_ver = ctsvc_get_transaction_ver();
92 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
93 pims_ipc_data_destroy(*outdata);
95 ERR("ctsvc_ipc_marshal_int() Fail");
100 ERR("outdata is NULL");
103 ctsvc_handle_destroy(contact);
104 ctsvc_server_start_timeout();
108 void ctsvc_ipc_activity_delete_by_account_id(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
110 int ret = CONTACTS_ERROR_NONE;
112 contacts_h contact = NULL;
115 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
116 if (CONTACTS_ERROR_NONE != ret) {
117 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
120 ret = ctsvc_ipc_unmarshal_int(indata, &account_id);
121 if (ret != CONTACTS_ERROR_NONE) {
122 ERR("ctsvc_ipc_unmarshal_int() Fail");
126 ERR("ctsvc_ipc_activity_delete_by_account_id() Fail");
130 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
131 ret = CONTACTS_ERROR_PERMISSION_DENIED;
134 ret = ctsvc_activity_delete_by_account_id(account_id);
139 *outdata = pims_ipc_data_create(0);
140 if (NULL == *outdata) {
141 ERR("pims_ipc_data_create() Fail");
144 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
145 pims_ipc_data_destroy(*outdata);
147 ERR("ctsvc_ipc_marshal_int() Fail");
151 if (ret == CONTACTS_ERROR_NONE) {
152 int transaction_ver = ctsvc_get_transaction_ver();
153 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
154 pims_ipc_data_destroy(*outdata);
156 ERR("ctsvc_ipc_marshal_int() Fail");
161 ERR("outdata is NULL");
164 ctsvc_handle_destroy(contact);
165 ctsvc_server_start_timeout();
169 void ctsvc_ipc_group_add_contact(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
171 int ret = CONTACTS_ERROR_NONE;
174 contacts_h contact = NULL;
177 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
178 if (CONTACTS_ERROR_NONE != ret) {
179 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
182 ret = ctsvc_ipc_unmarshal_int(indata, &group_id);
183 if (ret != CONTACTS_ERROR_NONE) {
184 ERR("ctsvc_ipc_unmarshal_int() Fail");
187 ret = ctsvc_ipc_unmarshal_int(indata, &contact_id);
188 if (ret != CONTACTS_ERROR_NONE) {
189 ERR("ctsvc_ipc_unmarshal_int() Fail");
193 ERR("ctsvc_ipc_group_add_contact() Fail");
197 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
198 ret = CONTACTS_ERROR_PERMISSION_DENIED;
202 ret = ctsvc_group_add_contact(group_id, contact_id);
207 *outdata = pims_ipc_data_create(0);
208 if (NULL == *outdata) {
209 ERR("pims_ipc_data_create() Fail");
212 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
213 pims_ipc_data_destroy(*outdata);
215 ERR("ctsvc_ipc_marshal_int() Fail");
219 if (ret == CONTACTS_ERROR_NONE) {
220 int transaction_ver = ctsvc_get_transaction_ver();
221 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
222 pims_ipc_data_destroy(*outdata);
224 ERR("ctsvc_ipc_marshal_int() Fail");
229 ERR("outdata is NULL");
232 ctsvc_handle_destroy(contact);
233 ctsvc_server_start_timeout();
237 void ctsvc_ipc_group_remove_contact(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
239 int ret = CONTACTS_ERROR_NONE;
242 contacts_h contact = NULL;
245 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
246 if (CONTACTS_ERROR_NONE != ret) {
247 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
250 ret = ctsvc_ipc_unmarshal_int(indata, &group_id);
251 if (ret != CONTACTS_ERROR_NONE) {
252 ERR("ctsvc_ipc_unmarshal_int() Fail");
255 ret = ctsvc_ipc_unmarshal_int(indata, &contact_id);
256 if (ret != CONTACTS_ERROR_NONE) {
257 ERR("ctsvc_ipc_unmarshal_int() Fail");
261 ERR("ctsvc_ipc_group_remove_contact() Fail");
265 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
266 ret = CONTACTS_ERROR_PERMISSION_DENIED;
271 ret = ctsvc_group_remove_contact(group_id, contact_id);
276 *outdata = pims_ipc_data_create(0);
277 if (NULL == *outdata) {
278 ERR("pims_ipc_data_create() Fail");
281 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
282 pims_ipc_data_destroy(*outdata);
284 ERR("ctsvc_ipc_marshal_int() Fail");
287 if (ret == CONTACTS_ERROR_NONE) {
288 int transaction_ver = ctsvc_get_transaction_ver();
289 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
290 pims_ipc_data_destroy(*outdata);
292 ERR("ctsvc_ipc_marshal_int() Fail");
298 ERR("outdata is NULL");
301 ctsvc_handle_destroy(contact);
302 ctsvc_server_start_timeout();
306 void ctsvc_ipc_group_set_group_order(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
308 int ret = CONTACTS_ERROR_NONE;
310 int previous_group_id;
313 contacts_h contact = NULL;
315 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
316 if (CONTACTS_ERROR_NONE != ret) {
317 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
320 ret = ctsvc_ipc_unmarshal_int(indata, &group_id);
321 if (ret != CONTACTS_ERROR_NONE) {
322 ERR("ctsvc_ipc_unmarshal_int() Fail");
325 ret = ctsvc_ipc_unmarshal_int(indata, &previous_group_id);
326 if (ret != CONTACTS_ERROR_NONE) {
327 ERR("ctsvc_ipc_unmarshal_int() Fail");
330 ret = ctsvc_ipc_unmarshal_int(indata, &next_group_id);
331 if (ret != CONTACTS_ERROR_NONE) {
332 ERR("ctsvc_ipc_unmarshal_int() Fail");
336 ERR("ctsvc_ipc_group_link_group() Fail");
340 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
341 ret = CONTACTS_ERROR_PERMISSION_DENIED;
345 ret = ctsvc_group_set_group_order(group_id, previous_group_id, next_group_id);
350 *outdata = pims_ipc_data_create(0);
351 if (NULL == *outdata) {
352 ERR("pims_ipc_data_create() Fail");
355 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
356 pims_ipc_data_destroy(*outdata);
358 ERR("ctsvc_ipc_marshal_int() Fail");
361 if (ret == CONTACTS_ERROR_NONE) {
362 int transaction_ver = ctsvc_get_transaction_ver();
363 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
364 pims_ipc_data_destroy(*outdata);
366 ERR("ctsvc_ipc_marshal_int() Fail");
371 ERR("outdata is NULL");
374 ctsvc_handle_destroy(contact);
375 ctsvc_server_start_timeout();
379 void ctsvc_ipc_person_link_person(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
381 int ret = CONTACTS_ERROR_NONE;
382 int base_person_id = 0;
385 contacts_h contact = NULL;
387 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
388 if (CONTACTS_ERROR_NONE != ret) {
389 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
392 ret = ctsvc_ipc_unmarshal_int(indata, &base_person_id);
393 if (ret != CONTACTS_ERROR_NONE) {
394 ERR("ctsvc_ipc_unmarshal_int() Fail");
397 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
398 if (ret != CONTACTS_ERROR_NONE) {
399 ERR("ctsvc_ipc_unmarshal_int() Fail");
403 ERR("ctsvc_ipc_person_link_person() Fail");
407 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
408 ret = CONTACTS_ERROR_PERMISSION_DENIED;
412 ret = ctsvc_person_link_person(base_person_id, person_id);
417 *outdata = pims_ipc_data_create(0);
418 if (NULL == *outdata) {
419 ERR("pims_ipc_data_create() Fail");
422 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
423 pims_ipc_data_destroy(*outdata);
425 ERR("ctsvc_ipc_marshal_int() Fail");
428 if (ret == CONTACTS_ERROR_NONE) {
429 int transaction_ver = ctsvc_get_transaction_ver();
430 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
431 pims_ipc_data_destroy(*outdata);
433 ERR("ctsvc_ipc_marshal_int() Fail");
438 ERR("outdata is NULL");
441 ctsvc_handle_destroy(contact);
442 ctsvc_server_start_timeout();
445 void ctsvc_ipc_person_unlink_contact(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
447 int ret = CONTACTS_ERROR_NONE;
451 contacts_h contact = NULL;
453 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
454 if (CONTACTS_ERROR_NONE != ret) {
455 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
458 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
459 if (ret != CONTACTS_ERROR_NONE) {
460 ERR("ctsvc_ipc_unmarshal_int() Fail");
463 ret = ctsvc_ipc_unmarshal_int(indata, &contact_id);
464 if (ret != CONTACTS_ERROR_NONE) {
465 ERR("ctsvc_ipc_unmarshal_int() Fail");
469 ERR("ctsvc_ipc_person_link_person() Fail");
473 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
474 ret = CONTACTS_ERROR_PERMISSION_DENIED;
478 int unlinked_person_id;
479 ret = ctsvc_person_unlink_contact(person_id, contact_id, &unlinked_person_id);
484 *outdata = pims_ipc_data_create(0);
485 if (NULL == *outdata) {
486 ERR("pims_ipc_data_create() Fail");
489 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
490 pims_ipc_data_destroy(*outdata);
492 ERR("ctsvc_ipc_marshal_int() Fail");
495 if (ret == CONTACTS_ERROR_NONE) {
496 int transaction_ver = ctsvc_get_transaction_ver();
497 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
498 pims_ipc_data_destroy(*outdata);
500 ERR("ctsvc_ipc_marshal_int() Fail");
504 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(unlinked_person_id, *outdata)) {
505 pims_ipc_data_destroy(*outdata);
507 ERR("ctsvc_ipc_marshal_int() Fail");
512 ERR("outdata is NULL");
515 ctsvc_handle_destroy(contact);
516 ctsvc_server_start_timeout();
519 void ctsvc_ipc_person_reset_usage(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
521 int ret = CONTACTS_ERROR_NONE;
523 contacts_usage_type_e type;
524 contacts_h contact = NULL;
527 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
528 if (CONTACTS_ERROR_NONE != ret) {
529 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
532 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
533 if (ret != CONTACTS_ERROR_NONE) {
534 ERR("ctsvc_ipc_unmarshal_int() Fail");
538 ret = ctsvc_ipc_unmarshal_int(indata, &temp);
540 if (ret != CONTACTS_ERROR_NONE) {
541 ERR("ctsvc_ipc_unmarshal_int() Fail");
545 ERR("ctsvc_ipc_person_link_person() Fail");
549 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
550 ret = CONTACTS_ERROR_PERMISSION_DENIED;
554 ret = ctsvc_person_reset_usage(person_id, type);
559 *outdata = pims_ipc_data_create(0);
560 if (NULL == *outdata) {
561 ERR("pims_ipc_data_create() Fail");
564 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
565 pims_ipc_data_destroy(*outdata);
567 ERR("ctsvc_ipc_marshal_int() Fail");
570 if (ret == CONTACTS_ERROR_NONE) {
571 int transaction_ver = ctsvc_get_transaction_ver();
572 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
573 pims_ipc_data_destroy(*outdata);
575 ERR("ctsvc_ipc_marshal_int() Fail");
580 ERR("outdata is NULL");
583 ctsvc_handle_destroy(contact);
584 ctsvc_server_start_timeout();
587 void ctsvc_ipc_person_set_favorite_order(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
589 int ret = CONTACTS_ERROR_NONE;
591 int previous_person_id;
593 contacts_h contact = NULL;
596 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
597 if (CONTACTS_ERROR_NONE != ret) {
598 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
601 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
602 if (ret != CONTACTS_ERROR_NONE) {
603 ERR("ctsvc_ipc_unmarshal_int() Fail");
606 ret = ctsvc_ipc_unmarshal_int(indata, &previous_person_id);
607 if (ret != CONTACTS_ERROR_NONE) {
608 ERR("ctsvc_ipc_unmarshal_int() Fail");
611 ret = ctsvc_ipc_unmarshal_int(indata, &next_person_id);
612 if (ret != CONTACTS_ERROR_NONE) {
613 ERR("ctsvc_ipc_unmarshal_int() Fail");
617 ERR("ctsvc_ipc_person_link_person() Fail");
621 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
622 ret = CONTACTS_ERROR_PERMISSION_DENIED;
626 ret = ctsvc_person_set_favorite_order(person_id, previous_person_id, next_person_id);
631 *outdata = pims_ipc_data_create(0);
632 if (NULL == *outdata) {
633 ERR("pims_ipc_data_create() Fail");
636 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
637 pims_ipc_data_destroy(*outdata);
639 ERR("ctsvc_ipc_marshal_int() Fail");
642 if (ret == CONTACTS_ERROR_NONE) {
643 int transaction_ver = ctsvc_get_transaction_ver();
644 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
645 pims_ipc_data_destroy(*outdata);
647 ERR("ctsvc_ipc_marshal_int() Fail");
652 ERR("outdata is NULL");
655 ctsvc_handle_destroy(contact);
656 ctsvc_server_start_timeout();
660 void ctsvc_ipc_person_set_default_property(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
662 int ret = CONTACTS_ERROR_NONE;
665 contacts_person_property_e property;
666 contacts_h contact = NULL;
669 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
670 if (CONTACTS_ERROR_NONE != ret) {
671 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
674 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
675 if (ret != CONTACTS_ERROR_NONE) {
676 ERR("ctsvc_ipc_unmarshal_int() Fail");
679 ret = ctsvc_ipc_unmarshal_unsigned_int(indata, &property);
680 if (ret != CONTACTS_ERROR_NONE) {
681 ERR("ctsvc_ipc_unmarshal_int() Fail");
684 ret = ctsvc_ipc_unmarshal_int(indata, &id);
685 if (ret != CONTACTS_ERROR_NONE) {
686 ERR("ctsvc_ipc_unmarshal_int() Fail");
690 ERR("ctsvc_ipc_person_set_default_property() Fail");
694 ret = ctsvc_person_set_default_property(property, person_id, id);
699 *outdata = pims_ipc_data_create(0);
700 if (NULL == *outdata) {
701 ERR("pims_ipc_data_create() Fail");
704 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
705 pims_ipc_data_destroy(*outdata);
707 ERR("ctsvc_ipc_marshal_int() Fail");
710 if (ret == CONTACTS_ERROR_NONE) {
711 int transaction_ver = ctsvc_get_transaction_ver();
712 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
713 pims_ipc_data_destroy(*outdata);
715 ERR("ctsvc_ipc_marshal_int() Fail");
720 ERR("outdata is NULL");
723 ctsvc_handle_destroy(contact);
724 ctsvc_server_start_timeout();
728 void ctsvc_ipc_person_get_default_property(pims_ipc_h ipc, pims_ipc_data_h indata,
729 pims_ipc_data_h *outdata, void *userdata)
731 int ret = CONTACTS_ERROR_NONE;
734 contacts_person_property_e op;
735 contacts_h contact = NULL;
737 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
738 if (CONTACTS_ERROR_NONE != ret) {
739 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
742 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
743 if (ret != CONTACTS_ERROR_NONE) {
744 ERR("ctsvc_ipc_unmarshal_int() Fail");
747 ret = ctsvc_ipc_unmarshal_unsigned_int(indata, &op);
748 if (ret != CONTACTS_ERROR_NONE) {
749 ERR("ctsvc_ipc_unmarshal_int() Fail");
753 ERR("ctsvc_ipc_person_get_default_property() Fail");
757 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_READ)) {
758 ret = CONTACTS_ERROR_PERMISSION_DENIED;
762 ret = ctsvc_person_get_default_property(op, person_id, &id);
767 *outdata = pims_ipc_data_create(0);
768 if (NULL == *outdata) {
769 ERR("pims_ipc_data_create() Fail");
772 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
773 pims_ipc_data_destroy(*outdata);
775 ERR("ctsvc_ipc_marshal_int() Fail (return value)");
778 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(id, *outdata)) {
779 pims_ipc_data_destroy(*outdata);
781 ERR("ctsvc_ipc_marshal_int() Fail (id)");
785 ERR("outdata is NULL");
788 ctsvc_handle_destroy(contact);
789 ctsvc_server_start_timeout();
793 void ctsvc_ipc_person_get_aggregation_suggestions(pims_ipc_h ipc, pims_ipc_data_h indata,
794 pims_ipc_data_h *outdata, void *userdata)
796 int ret = CONTACTS_ERROR_NONE;
799 contacts_list_h list = NULL;
800 contacts_h contact = NULL;
803 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
804 if (CONTACTS_ERROR_NONE != ret) {
805 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
808 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
809 if (ret != CONTACTS_ERROR_NONE) {
810 ERR("ctsvc_ipc_unmarshal_int() Fail(%d)", ret);
813 ret = ctsvc_ipc_unmarshal_int(indata, &limit);
814 if (ret != CONTACTS_ERROR_NONE) {
815 ERR("ctsvc_ipc_unmarshal_int() Fail(%d)", ret);
819 ERR("ctsvc_ipc_person_get_aggregation_suggestions() Fail");
823 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_READ)) {
824 ret = CONTACTS_ERROR_PERMISSION_DENIED;
828 ret = ctsvc_person_get_aggregation_suggestions(person_id, limit, &list);
833 *outdata = pims_ipc_data_create(0);
834 if (NULL == *outdata) {
835 ERR("pims_ipc_data_create() Fail");
838 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
839 pims_ipc_data_destroy(*outdata);
841 ERR("ctsvc_ipc_marshal_int() Fail");
845 if (CONTACTS_ERROR_NO_DATA == ret) {
847 } else if (CONTACTS_ERROR_NONE == ret) {
848 ret = ctsvc_ipc_marshal_list(list, *outdata);
850 if (ret != CONTACTS_ERROR_NONE) {
851 ERR("ctsvc_ipc_marshal_list() Fail(%d)", ret);
856 ERR("outdata is NULL");
859 ctsvc_handle_destroy(contact);
860 contacts_list_destroy(list, true);
861 ctsvc_server_start_timeout();
865 #ifdef ENABLE_LOG_FEATURE
866 void ctsvc_ipc_phone_log_reset_statistics(pims_ipc_h ipc,
867 pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
870 contacts_h contact = NULL;
873 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
874 if (CONTACTS_ERROR_NONE != ret) {
875 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
880 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_PHONELOG_WRITE)) {
881 ret = CONTACTS_ERROR_PERMISSION_DENIED;
885 ret = ctsvc_phone_log_reset_statistics();
889 *outdata = pims_ipc_data_create(0);
890 if (NULL == *outdata) {
891 ERR("pims_ipc_data_create() Fail");
894 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
895 pims_ipc_data_destroy(*outdata);
897 ERR("ctsvc_ipc_marshal_int() Fail");
900 if (ret == CONTACTS_ERROR_NONE) {
901 int transaction_ver = ctsvc_get_transaction_ver();
902 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
903 pims_ipc_data_destroy(*outdata);
905 ERR("ctsvc_ipc_marshal_int() Fail");
910 ERR("outdata is NULL");
913 ctsvc_handle_destroy(contact);
914 ctsvc_server_start_timeout();
918 void ctsvc_ipc_phone_log_reset_statistics_by_sim(pims_ipc_h ipc,
919 pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
923 contacts_h contact = NULL;
926 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
927 if (CONTACTS_ERROR_NONE != ret) {
928 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
932 ret = ctsvc_ipc_unmarshal_int(indata, &sim_slot_no);
933 if (CONTACTS_ERROR_NONE != ret) {
934 ERR("ctsvc_ipc_unmarshal_int() Fail(%d)", ret);
939 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_PHONELOG_WRITE)) {
940 ret = CONTACTS_ERROR_PERMISSION_DENIED;
944 ret = ctsvc_phone_log_reset_statistics_by_sim(sim_slot_no);
948 *outdata = pims_ipc_data_create(0);
949 if (NULL == *outdata) {
950 ERR("pims_ipc_data_create() Fail");
953 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
954 pims_ipc_data_destroy(*outdata);
956 ERR("ctsvc_ipc_marshal_int() Fail");
959 if (CONTACTS_ERROR_NONE == ret) {
960 int transaction_ver = ctsvc_get_transaction_ver();
961 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(transaction_ver, *outdata)) {
962 pims_ipc_data_destroy(*outdata);
964 ERR("ctsvc_ipc_marshal_int() Fail");
969 ERR("outdata is NULL");
972 ctsvc_handle_destroy(contact);
973 ctsvc_server_start_timeout();
978 void ctsvc_ipc_phone_log_delete(pims_ipc_h ipc, pims_ipc_data_h indata,
979 pims_ipc_data_h *outdata, void *userdata)
981 int ret = CONTACTS_ERROR_NONE;
984 contacts_phone_log_delete_e op;
985 contacts_h contact = NULL;
988 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
989 if (CONTACTS_ERROR_NONE != ret) {
990 ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
993 ret = ctsvc_ipc_unmarshal_int(indata, (int*)&op);
994 if (ret != CONTACTS_ERROR_NONE) {
995 ERR("ctsvc_ipc_unmarshal_int() Fail");
997 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_PHONELOG_WRITE)) {
998 ret = CONTACTS_ERROR_PERMISSION_DENIED;
1005 case CONTACTS_PHONE_LOG_DELETE_BY_ADDRESS:
1006 ret = ctsvc_ipc_unmarshal_string(indata, &number);
1007 if (ret != CONTACTS_ERROR_NONE) {
1008 ERR("ctsvc_ipc_unmarshal_string() Fail");
1011 ret = ctsvc_phone_log_delete(op, number);
1013 case CONTACTS_PHONE_LOG_DELETE_BY_MESSAGE_EXTRA_DATA1:
1014 case CONTACTS_PHONE_LOG_DELETE_BY_EMAIL_EXTRA_DATA1:
1015 ret = ctsvc_ipc_unmarshal_int(indata, &extra_data1);
1016 if (ret != CONTACTS_ERROR_NONE) {
1017 ERR("ctsvc_ipc_unmarshal_int() Fail");
1020 ret = ctsvc_phone_log_delete(op, extra_data1);
1023 ERR("the operation is not proper (op : %d)", op);
1024 ret = CONTACTS_ERROR_INVALID_PARAMETER;
1031 *outdata = pims_ipc_data_create(0);
1032 if (NULL == *outdata) {
1033 ERR("pims_ipc_data_create() Fail");
1036 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
1037 pims_ipc_data_destroy(*outdata);
1039 ERR("ctsvc_ipc_marshal_int() Fail");
1042 if (ret == CONTACTS_ERROR_NONE) {
1043 int transaction_ver = ctsvc_get_transaction_ver();
1044 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
1045 pims_ipc_data_destroy(*outdata);
1047 ERR("ctsvc_ipc_marshal_int() Fail");
1053 ctsvc_handle_destroy(contact);
1056 ctsvc_server_start_timeout();
1059 #endif /* ENABLE_LOG_FEATURE */
1061 void ctsvc_ipc_setting_get_name_display_order(pims_ipc_h ipc, pims_ipc_data_h indata,
1062 pims_ipc_data_h *outdata, void *userdata)
1064 int ret = CONTACTS_ERROR_NONE;
1065 contacts_name_display_order_e order;
1067 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_READ)) {
1068 ret = CONTACTS_ERROR_PERMISSION_DENIED;
1072 ret = ctsvc_setting_get_name_display_order(&order);
1076 *outdata = pims_ipc_data_create(0);
1077 if (NULL == *outdata) {
1078 ERR("pims_ipc_data_create() Fail");
1079 ctsvc_server_start_timeout();
1082 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
1083 pims_ipc_data_destroy(*outdata);
1085 ERR("ctsvc_ipc_marshal_int() Fail (return value)");
1086 ctsvc_server_start_timeout();
1089 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(order, *outdata)) {
1090 pims_ipc_data_destroy(*outdata);
1092 ERR("ctsvc_ipc_marshal_int() Fail (id)");
1093 ctsvc_server_start_timeout();
1097 ERR("outdata is NULL");
1100 ctsvc_server_start_timeout();
1104 void ctsvc_ipc_setting_get_name_sorting_order(pims_ipc_h ipc, pims_ipc_data_h indata,
1105 pims_ipc_data_h *outdata, void *userdata)
1107 int ret = CONTACTS_ERROR_NONE;
1108 contacts_name_sorting_order_e order;
1110 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_READ)) {
1111 ret = CONTACTS_ERROR_PERMISSION_DENIED;
1115 ret = ctsvc_setting_get_name_sorting_order(&order);
1119 *outdata = pims_ipc_data_create(0);
1120 if (NULL == *outdata) {
1121 ERR("pims_ipc_data_create() Fail");
1122 ctsvc_server_start_timeout();
1125 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
1126 pims_ipc_data_destroy(*outdata);
1128 ERR("ctsvc_ipc_marshal_int() Fail (return value)");
1129 ctsvc_server_start_timeout();
1132 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(order, *outdata)) {
1133 pims_ipc_data_destroy(*outdata);
1135 ERR("ctsvc_ipc_marshal_int() Fail (id)");
1139 ERR("outdata is NULL");
1142 ctsvc_server_start_timeout();
1146 void ctsvc_ipc_setting_set_name_display_order(pims_ipc_h ipc,
1147 pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1149 int ret = CONTACTS_ERROR_NONE;
1153 ret = ctsvc_ipc_unmarshal_int(indata, &order);
1154 if (ret != CONTACTS_ERROR_NONE) {
1155 ERR("ctsvc_ipc_unmarshal_int() Fail");
1159 ERR("ctsvc_ipc_person_set_default_property() Fail");
1163 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
1164 ret = CONTACTS_ERROR_PERMISSION_DENIED;
1168 ret = ctsvc_setting_set_name_display_order((contacts_name_display_order_e)order);
1172 *outdata = pims_ipc_data_create(0);
1173 if (NULL == *outdata) {
1174 ERR("pims_ipc_data_create() Fail");
1175 ctsvc_server_start_timeout();
1178 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
1179 pims_ipc_data_destroy(*outdata);
1181 ERR("ctsvc_ipc_marshal_int() Fail");
1182 ctsvc_server_start_timeout();
1186 ERR("outdata is NULL");
1189 ctsvc_server_start_timeout();
1193 void ctsvc_ipc_setting_set_name_sorting_order(pims_ipc_h ipc,
1194 pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1196 int ret = CONTACTS_ERROR_NONE;
1200 ret = ctsvc_ipc_unmarshal_int(indata, &order);
1201 if (ret != CONTACTS_ERROR_NONE) {
1202 ERR("ctsvc_ipc_unmarshal_int() Fail");
1206 ERR("ctsvc_ipc_person_set_default_property() Fail");
1210 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
1211 ret = CONTACTS_ERROR_PERMISSION_DENIED;
1215 ret = ctsvc_setting_set_name_sorting_order((contacts_name_sorting_order_e)order);
1219 *outdata = pims_ipc_data_create(0);
1220 if (NULL == *outdata) {
1221 ERR("pims_ipc_data_create() Fail");
1222 ctsvc_server_start_timeout();
1225 if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int(ret, *outdata)) {
1226 pims_ipc_data_destroy(*outdata);
1228 ERR("ctsvc_ipc_marshal_int() Fail");
1229 ctsvc_server_start_timeout();
1233 ERR("outdata is NULL");
1236 ctsvc_server_start_timeout();