1 /* 2 * Copyright (c) 2021-2023 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 HandleExecuteErrorCode(napi_env env, ExecuteHelper *executeHelper, napi_value &errorCode); 53 void HandleExecuteResult(napi_env env, ExecuteHelper *executeHelper, napi_value &result); 54 int GetRawIdByResultSet(const std::shared_ptr<DataShare::DataShareResultSet> &resultSet); 55 napi_value CreateAsyncWork(napi_env env, ExecuteHelper *executeHelper); 56 void LocalExecute(napi_env env, ExecuteHelper *executeHelper); 57 void LocalExecuteAddContact(napi_env env, ExecuteHelper *executeHelper); 58 void LocalExecuteDeleteContact(napi_env env, ExecuteHelper *executeHelper); 59 void LocalExecuteQueryContact(napi_env env, ExecuteHelper *executeHelper); 60 void LocalExecuteQueryContactsOrKey(napi_env env, ExecuteHelper *executeHelper); 61 void LocalExecuteQueryContactsByData(napi_env env, ExecuteHelper *executeHelper); 62 void LocalExecuteQueryGroup(napi_env env, ExecuteHelper *executeHelper); 63 void LocalExecuteQueryHolders(napi_env env, ExecuteHelper *executeHelper); 64 void LocalExecuteQueryMyCard(napi_env env, ExecuteHelper *executeHelper); 65 void LocalExecuteUpdateContact(napi_env env, ExecuteHelper *executeHelper); 66 void LocalExecuteIsLocalContact(napi_env env, ExecuteHelper *executeHelper); 67 void LocalExecuteIsMyCard(napi_env env, ExecuteHelper *executeHelper); 68 napi_value Scheduling(napi_env env, napi_callback_info info, ExecuteHelper *executeHelper, int actionCode); 69 void SetChildActionCodeAndConvertParams(napi_env env, ExecuteHelper *executeHelper); 70 DataShare::DataSharePredicates ConvertParamsSwitchSplit( 71 int code, napi_env env, const napi_value &key, const napi_value &hold, const napi_value &attr); 72 bool GetDataShareHelper(napi_env env, napi_callback_info info, ExecuteHelper *executeHelper); 73 void HolderPredicates(const Holder &holder, DataShare::DataSharePredicates &predicates); 74 void HoldersStructure(std::map<std::string, std::string> &holders, Holder &holder); 75 void AttributesPredicates(bool isBegin, ContactAttributes &attrs, DataShare::DataSharePredicates &predicates); 76 void CheckAttributes(ContactAttributes &attrs); 77 DataShare::DataSharePredicates BuildQueryContactPredicates( 78 napi_env env, std::string key, napi_value hold, napi_value attr); 79 DataShare::DataSharePredicates BuildUpdateContactPredicates(napi_env env, napi_value contacts, napi_value attr); 80 DataShare::DataSharePredicates BuildQueryContactData(napi_env env, napi_value &contactsObject, 81 napi_value &attrObject, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 82 std::vector<std::string> BuildUpdateContactColumns(); 83 DataShare::DataSharePredicates BuildUpdateContactConvertParams( 84 napi_env env, napi_value &contacts, napi_value &attr, ExecuteHelper &executeHelper); 85 DataShare::DataSharePredicates BuildQueryContactsPredicates(napi_env env, napi_value hold, napi_value attr); 86 DataShare::DataSharePredicates BuildQueryContactsByEmailPredicates( 87 napi_env env, std::string email, napi_value hold, napi_value attr); 88 DataShare::DataSharePredicates BuildQueryContactsByPhoneNumberPredicates( 89 napi_env env, std::string phoneNumber, napi_value hold, napi_value attr); 90 DataShare::DataSharePredicates BuildQueryGroupsPredicates(napi_env env, napi_value hold); 91 DataShare::DataSharePredicates BuildQueryKeyPredicates(napi_env env, int id, napi_value hold); 92 DataShare::DataSharePredicates BuildQueryMyCardPredicates(napi_env env, napi_value attr); 93 DataShare::DataSharePredicates BuildIsLocalContactPredicates(napi_env env, napi_value id); 94 DataShare::DataSharePredicates BuildIsMyCardPredicates(napi_env env, napi_value id); 95 DataShare::DataSharePredicates BuildDeleteContactDataPredicates(napi_env env, napi_value attr); 96 DataShare::DataSharePredicates BuildDeleteContactPredicates(napi_env env, ExecuteHelper &executeHelper); 97 void ObjectInit(napi_env env, napi_value object, napi_value &hold, napi_value &attr, napi_value &contacts); 98 void ObjectInitId(napi_env env, napi_value object, napi_value &id); 99 void ObjectInitString(napi_env env, napi_value object, napi_value &key); 100 int GetType(napi_env env, napi_value value); 101 } // namespace ContactsApi 102 } // namespace OHOS 103 104 #endif // CONTACT_API_H 105