1115cd2caSopenharmony_ci/*
2115cd2caSopenharmony_ci * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3115cd2caSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4115cd2caSopenharmony_ci * you may not use this file except in compliance with the License.
5115cd2caSopenharmony_ci * You may obtain a copy of the License at
6115cd2caSopenharmony_ci *
7115cd2caSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8115cd2caSopenharmony_ci *
9115cd2caSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10115cd2caSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11115cd2caSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12115cd2caSopenharmony_ci * See the License for the specific language governing permissions and
13115cd2caSopenharmony_ci * limitations under the License.
14115cd2caSopenharmony_ci */
15115cd2caSopenharmony_ci
16115cd2caSopenharmony_ci#ifndef CONTACT_API_H
17115cd2caSopenharmony_ci#define CONTACT_API_H
18115cd2caSopenharmony_ci
19115cd2caSopenharmony_ci#include "contacts_build.h"
20115cd2caSopenharmony_ci#include "contacts_napi_object.h"
21115cd2caSopenharmony_ci#include "napi_base_context.h"
22115cd2caSopenharmony_ci
23115cd2caSopenharmony_cinamespace OHOS {
24115cd2caSopenharmony_cinamespace ContactsApi {
25115cd2caSopenharmony_civoid Init(napi_env env, napi_value exports);
26115cd2caSopenharmony_cinapi_value DeclareContactConst(napi_env env, napi_value exports);
27115cd2caSopenharmony_cinapi_value DeclareEmailConst(napi_env env, napi_value exports);
28115cd2caSopenharmony_cinapi_value DeclareEventConst(napi_env env, napi_value exports);
29115cd2caSopenharmony_cinapi_value DeclareImAddressConst(napi_env env, napi_value exports);
30115cd2caSopenharmony_cinapi_value DeclarePhoneNumberConst(napi_env env, napi_value exports);
31115cd2caSopenharmony_cinapi_value DeclarePostalAddressConst(napi_env env, napi_value exports);
32115cd2caSopenharmony_cinapi_value DeclareRelationConst(napi_env env, napi_value exports);
33115cd2caSopenharmony_cinapi_value DeclareSipAddressConst(napi_env env, napi_value exports);
34115cd2caSopenharmony_cinapi_value DeclareAttributeConst(napi_env env, napi_value exports);
35115cd2caSopenharmony_cinapi_value AddContact(napi_env env, napi_callback_info info);
36115cd2caSopenharmony_cinapi_value DeleteContact(napi_env env, napi_callback_info info);
37115cd2caSopenharmony_cinapi_value UpdateContact(napi_env env, napi_callback_info info);
38115cd2caSopenharmony_cinapi_value QueryContact(napi_env env, napi_callback_info info);
39115cd2caSopenharmony_cinapi_value QueryContacts(napi_env env, napi_callback_info info);
40115cd2caSopenharmony_cinapi_value QueryContactsByEmail(napi_env env, napi_callback_info info);
41115cd2caSopenharmony_cinapi_value QueryContactsByPhoneNumber(napi_env env, napi_callback_info info);
42115cd2caSopenharmony_cinapi_value QueryGroups(napi_env env, napi_callback_info info);
43115cd2caSopenharmony_cinapi_value QueryHolders(napi_env env, napi_callback_info info);
44115cd2caSopenharmony_cinapi_value QueryKey(napi_env env, napi_callback_info info);
45115cd2caSopenharmony_cinapi_value QueryMyCard(napi_env env, napi_callback_info info);
46115cd2caSopenharmony_cinapi_value IsMyCard(napi_env env, napi_callback_info info);
47115cd2caSopenharmony_cinapi_value IsLocalContact(napi_env env, napi_callback_info info);
48115cd2caSopenharmony_civoid Execute(napi_env env, void *data);
49115cd2caSopenharmony_civoid ExecuteAsync(napi_env env, void *data);
50115cd2caSopenharmony_civoid ExecuteDone(napi_env env, napi_status status, void *data);
51115cd2caSopenharmony_civoid ExecuteSyncDone(napi_env env, napi_status status, void *data);
52115cd2caSopenharmony_civoid HandleExecuteErrorCode(napi_env env, ExecuteHelper *executeHelper, napi_value &errorCode);
53115cd2caSopenharmony_civoid HandleExecuteResult(napi_env env, ExecuteHelper *executeHelper, napi_value &result);
54115cd2caSopenharmony_ciint GetRawIdByResultSet(const std::shared_ptr<DataShare::DataShareResultSet> &resultSet);
55115cd2caSopenharmony_cinapi_value CreateAsyncWork(napi_env env, ExecuteHelper *executeHelper);
56115cd2caSopenharmony_civoid LocalExecute(napi_env env, ExecuteHelper *executeHelper);
57115cd2caSopenharmony_civoid LocalExecuteSplit(napi_env env, ExecuteHelper *executeHelper);
58115cd2caSopenharmony_civoid LocalExecuteAddContact(napi_env env, ExecuteHelper *executeHelper);
59115cd2caSopenharmony_civoid LocalExecuteDeleteContact(napi_env env, ExecuteHelper *executeHelper);
60115cd2caSopenharmony_civoid LocalExecuteQueryContact(napi_env env, ExecuteHelper *executeHelper);
61115cd2caSopenharmony_civoid LocalExecuteQueryContactsOrKey(napi_env env, ExecuteHelper *executeHelper);
62115cd2caSopenharmony_civoid LocalExecuteQueryContactsByData(napi_env env, ExecuteHelper *executeHelper);
63115cd2caSopenharmony_civoid LocalExecuteQueryGroup(napi_env env, ExecuteHelper *executeHelper);
64115cd2caSopenharmony_civoid LocalExecuteQueryHolders(napi_env env, ExecuteHelper *executeHelper);
65115cd2caSopenharmony_civoid LocalExecuteQueryMyCard(napi_env env, ExecuteHelper *executeHelper);
66115cd2caSopenharmony_civoid LocalExecuteUpdateContact(napi_env env, ExecuteHelper *executeHelper);
67115cd2caSopenharmony_civoid LocalExecuteIsLocalContact(napi_env env, ExecuteHelper *executeHelper);
68115cd2caSopenharmony_civoid LocalExecuteIsMyCard(napi_env env, ExecuteHelper *executeHelper);
69115cd2caSopenharmony_cinapi_value Scheduling(napi_env env, napi_callback_info info, ExecuteHelper *executeHelper, int actionCode);
70115cd2caSopenharmony_civoid VerificationParameterId(napi_env env, napi_value id, ExecuteHelper *executeHelper, napi_value hold);
71115cd2caSopenharmony_civoid VerificationParameterHolderId(napi_env env, ExecuteHelper *executeHelper, napi_value hold);
72115cd2caSopenharmony_civoid SetChildActionCodeAndConvertParams(napi_env env, ExecuteHelper *executeHelper);
73115cd2caSopenharmony_ciDataShare::DataSharePredicates ConvertParamsSwitchSplit(int code, napi_env env, const napi_value &key,
74115cd2caSopenharmony_ci    const napi_value &hold, const napi_value &attr, ExecuteHelper *executeHelper);
75115cd2caSopenharmony_cibool GetDataShareHelper(napi_env env, napi_callback_info info, ExecuteHelper *executeHelper);
76115cd2caSopenharmony_civoid HolderPredicates(const Holder &holder, DataShare::DataSharePredicates &predicates);
77115cd2caSopenharmony_civoid HoldersStructure(std::map<std::string, std::string> &holders, Holder &holder);
78115cd2caSopenharmony_civoid AttributesPredicates(bool isBegin, ContactAttributes &attrs, DataShare::DataSharePredicates &predicates);
79115cd2caSopenharmony_civoid CheckAttributes(ContactAttributes &attrs);
80115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildQueryContactPredicates(
81115cd2caSopenharmony_ci    napi_env env, std::string key, napi_value hold, napi_value attr);
82115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildUpdateContactPredicates(napi_env env, napi_value contacts, napi_value attr);
83115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildQueryContactData(napi_env env, napi_value &contactsObject,
84115cd2caSopenharmony_ci    napi_value &attrObject, std::vector<DataShare::DataShareValuesBucket> &valueContactData);
85115cd2caSopenharmony_cistd::vector<std::string> BuildUpdateContactColumns();
86115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildUpdateContactConvertParams(
87115cd2caSopenharmony_ci    napi_env env, napi_value &contacts, napi_value &attr, ExecuteHelper &executeHelper);
88115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildQueryContactsPredicates(napi_env env, napi_value hold, napi_value attr);
89115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildQueryContactsByEmailPredicates(
90115cd2caSopenharmony_ci    napi_env env, std::string email, napi_value hold, napi_value attr);
91115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildQueryContactsByPhoneNumberPredicates(
92115cd2caSopenharmony_ci    napi_env env, std::string phoneNumber, napi_value hold, napi_value attr);
93115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildQueryGroupsPredicates(napi_env env, napi_value hold);
94115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildQueryKeyPredicates(napi_env env, int id, napi_value hold);
95115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildQueryMyCardPredicates(napi_env env, napi_value attr);
96115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildIsLocalContactPredicates(napi_env env, napi_value id);
97115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildIsMyCardPredicates(napi_env env, napi_value id);
98115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildDeleteContactDataPredicates(napi_env env, napi_value attr);
99115cd2caSopenharmony_ciDataShare::DataSharePredicates BuildDeleteContactPredicates(napi_env env, ExecuteHelper &executeHelper);
100115cd2caSopenharmony_civoid ObjectInit(napi_env env, napi_value object, napi_value &hold, napi_value &attr, napi_value &contacts);
101115cd2caSopenharmony_civoid ObjectInitId(napi_env env, napi_value object, napi_value &id);
102115cd2caSopenharmony_civoid ObjectInitString(napi_env env, napi_value object, napi_value &key);
103115cd2caSopenharmony_ciint GetType(napi_env env, napi_value value);
104115cd2caSopenharmony_ci} // namespace ContactsApi
105115cd2caSopenharmony_ci} // namespace OHOS
106115cd2caSopenharmony_ci
107115cd2caSopenharmony_ci#endif // CONTACT_API_H
108