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