• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef CONTACT_API_H
17 #define CONTACT_API_H
18 
19 #include "contacts_build.h"
20 #include "contacts_napi_object.h"
21 #include "napi_base_context.h"
22 
23 namespace OHOS {
24 namespace ContactsApi {
25 void Init(napi_env env, napi_value exports);
26 napi_value DeclareContactConst(napi_env env, napi_value exports);
27 napi_value DeclareEmailConst(napi_env env, napi_value exports);
28 napi_value DeclareEventConst(napi_env env, napi_value exports);
29 napi_value DeclareImAddressConst(napi_env env, napi_value exports);
30 napi_value DeclarePhoneNumberConst(napi_env env, napi_value exports);
31 napi_value DeclarePostalAddressConst(napi_env env, napi_value exports);
32 napi_value DeclareRelationConst(napi_env env, napi_value exports);
33 napi_value DeclareSipAddressConst(napi_env env, napi_value exports);
34 napi_value DeclareAttributeConst(napi_env env, napi_value exports);
35 napi_value AddContact(napi_env env, napi_callback_info info);
36 napi_value DeleteContact(napi_env env, napi_callback_info info);
37 napi_value UpdateContact(napi_env env, napi_callback_info info);
38 napi_value QueryContact(napi_env env, napi_callback_info info);
39 napi_value QueryContacts(napi_env env, napi_callback_info info);
40 napi_value QueryContactsByEmail(napi_env env, napi_callback_info info);
41 napi_value QueryContactsByPhoneNumber(napi_env env, napi_callback_info info);
42 napi_value QueryGroups(napi_env env, napi_callback_info info);
43 napi_value QueryHolders(napi_env env, napi_callback_info info);
44 napi_value QueryKey(napi_env env, napi_callback_info info);
45 napi_value QueryMyCard(napi_env env, napi_callback_info info);
46 napi_value IsMyCard(napi_env env, napi_callback_info info);
47 napi_value IsLocalContact(napi_env env, napi_callback_info info);
48 void Execute(napi_env env, void *data);
49 void ExecuteAsync(napi_env env, void *data);
50 void ExecuteDone(napi_env env, napi_status status, void *data);
51 void ExecuteSyncDone(napi_env env, napi_status status, void *data);
52 void HandleExecuteResult(napi_env env, ExecuteHelper *executeHelper, napi_value &result);
53 int GetRawIdByResultSet(const std::shared_ptr<DataShare::DataShareResultSet> &resultSet);
54 napi_value CreateAsyncWork(napi_env env, ExecuteHelper *executeHelper);
55 void LocalExecute(napi_env env, ExecuteHelper *executeHelper);
56 void LocalExecuteAddContact(napi_env env, ExecuteHelper *executeHelper);
57 void LocalExecuteDeleteContact(napi_env env, ExecuteHelper *executeHelper);
58 void LocalExecuteQueryContact(napi_env env, ExecuteHelper *executeHelper);
59 void LocalExecuteQueryContactsOrKey(napi_env env, ExecuteHelper *executeHelper);
60 void LocalExecuteQueryContactsByData(napi_env env, ExecuteHelper *executeHelper);
61 void LocalExecuteQueryGroup(napi_env env, ExecuteHelper *executeHelper);
62 void LocalExecuteQueryHolders(napi_env env, ExecuteHelper *executeHelper);
63 void LocalExecuteQueryMyCard(napi_env env, ExecuteHelper *executeHelper);
64 void LocalExecuteUpdateContact(napi_env env, ExecuteHelper *executeHelper);
65 void LocalExecuteIsLocalContact(napi_env env, ExecuteHelper *executeHelper);
66 void LocalExecuteIsMyCard(napi_env env, ExecuteHelper *executeHelper);
67 napi_value Scheduling(napi_env env, napi_callback_info info, ExecuteHelper *executeHelper, int actionCode);
68 void SetChildActionCodeAndConvertParams(napi_env env, ExecuteHelper *executeHelper);
69 DataShare::DataSharePredicates ConvertParamsSwitchSplit(
70     int code, napi_env env, const napi_value &key, const napi_value &hold, const napi_value &attr);
71 std::shared_ptr<DataShare::DataShareHelper> GetDataShareHelper(napi_env env, napi_callback_info info);
72 void HolderPredicates(const Holder &holder, DataShare::DataSharePredicates &predicates);
73 void HoldersStructure(std::map<std::string, std::string> &holders, Holder &holder);
74 void AttributesPredicates(bool isBegin, ContactAttributes &attrs, DataShare::DataSharePredicates &predicates);
75 void CheckAttributes(ContactAttributes &attrs);
76 DataShare::DataSharePredicates BuildQueryContactPredicates(
77     napi_env env, std::string key, napi_value hold, napi_value attr);
78 DataShare::DataSharePredicates BuildUpdateContactPredicates(napi_env env, napi_value contacts, napi_value attr);
79 DataShare::DataSharePredicates BuildQueryContactData(napi_env env, napi_value &contactsObject,
80     napi_value &attrObject, std::vector<DataShare::DataShareValuesBucket> &valueContactData);
81 std::vector<std::string> BuildUpdateContactColumns();
82 DataShare::DataSharePredicates BuildUpdateContactConvertParams(
83     napi_env env, napi_value &contacts, napi_value &attr, ExecuteHelper &executeHelper);
84 DataShare::DataSharePredicates BuildQueryContactsPredicates(napi_env env, napi_value hold, napi_value attr);
85 DataShare::DataSharePredicates BuildQueryContactsByEmailPredicates(
86     napi_env env, std::string email, napi_value hold, napi_value attr);
87 DataShare::DataSharePredicates BuildQueryContactsByPhoneNumberPredicates(
88     napi_env env, std::string phoneNumber, napi_value hold, napi_value attr);
89 DataShare::DataSharePredicates BuildQueryGroupsPredicates(napi_env env, napi_value hold);
90 DataShare::DataSharePredicates BuildQueryKeyPredicates(napi_env env, int id, napi_value hold);
91 DataShare::DataSharePredicates BuildQueryMyCardPredicates(napi_env env, napi_value attr);
92 DataShare::DataSharePredicates BuildIsLocalContactPredicates(napi_env env, napi_value id);
93 DataShare::DataSharePredicates BuildIsMyCardPredicates(napi_env env, napi_value id);
94 DataShare::DataSharePredicates BuildDeleteContactDataPredicates(napi_env env, napi_value attr);
95 DataShare::DataSharePredicates BuildDeleteContactPredicates(napi_env env, ExecuteHelper &executeHelper);
96 void ObjectInit(napi_env env, napi_value object, napi_value &hold, napi_value &attr, napi_value &contacts);
97 void ObjectInitId(napi_env env, napi_value object, napi_value &id);
98 void ObjectInitString(napi_env env, napi_value object, napi_value &key);
99 int GetType(napi_env env, napi_value value);
100 } // namespace ContactsApi
101 } // namespace OHOS
102 
103 #endif // CONTACT_API_H
104