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_NAPI_COMMON_H 17115cd2caSopenharmony_ci#define CONTACT_NAPI_COMMON_H 18115cd2caSopenharmony_ci 19115cd2caSopenharmony_ci#include "datashare_predicates.h" 20115cd2caSopenharmony_ci#include "datashare_helper.h" 21115cd2caSopenharmony_ci#include "napi/native_api.h" 22115cd2caSopenharmony_ci#include "napi/native_common.h" 23115cd2caSopenharmony_ci#include "napi/native_node_api.h" 24115cd2caSopenharmony_ci#include "rdb_helper.h" 25115cd2caSopenharmony_ci#include "rdb_open_callback.h" 26115cd2caSopenharmony_ci#include "rdb_predicates.h" 27115cd2caSopenharmony_ci#include "rdb_store.h" 28115cd2caSopenharmony_ci 29115cd2caSopenharmony_cinamespace OHOS { 30115cd2caSopenharmony_cinamespace ContactsApi { 31115cd2caSopenharmony_ciconstexpr int MAX_PARAMS = 10; 32115cd2caSopenharmony_ciconstexpr int ERROR = -1; 33115cd2caSopenharmony_ciconstexpr int SUCCESS = 0; 34115cd2caSopenharmony_ciconstexpr int RESULT_DATA_SIZE = 2; 35115cd2caSopenharmony_ciconstexpr int RDB_PERMISSION_ERROR = -2; 36115cd2caSopenharmony_ciconstexpr int RDB_PARAMETER_ERROR = -3; 37115cd2caSopenharmony_ciconstexpr int VERIFICATION_PERMISSION_ERROR = -4; 38115cd2caSopenharmony_ciconstexpr int PERMISSION_ERROR = 201; 39115cd2caSopenharmony_ciconstexpr int PARAMETER_ERROR = 401; 40115cd2caSopenharmony_ci 41115cd2caSopenharmony_ciconstexpr int NAPI_GET_STRING_SIZE = 256; 42115cd2caSopenharmony_ciconstexpr int REQUEST_PARAMS_COUNT_ONE = 1; 43115cd2caSopenharmony_ci 44115cd2caSopenharmony_ci// NAPI callback type 45115cd2caSopenharmony_ciconstexpr int NAPI_CALL_TYPE_CALLBACK = 0; 46115cd2caSopenharmony_ciconstexpr int NAPI_CALL_TYPE_PROMISE = 1; 47115cd2caSopenharmony_ci 48115cd2caSopenharmony_ci// NAPI type 49115cd2caSopenharmony_ciconstexpr int TYPE_NAPI_ERROR = -1; 50115cd2caSopenharmony_ciconstexpr int TYPE_NAPI_NUMBER = 0; 51115cd2caSopenharmony_ciconstexpr int TYPE_NAPI_STRING = 1; 52115cd2caSopenharmony_ciconstexpr int TYPE_HOLDER = 2; 53115cd2caSopenharmony_ciconstexpr int TYPE_ATTR = 3; 54115cd2caSopenharmony_ciconstexpr int TYPE_CONTACT = 4; 55115cd2caSopenharmony_ci 56115cd2caSopenharmony_ci// Execute action code 57115cd2caSopenharmony_ciconstexpr int ADD_CONTACT = 1001; 58115cd2caSopenharmony_ciconstexpr int DELETE_CONTACT = 2001; 59115cd2caSopenharmony_ciconstexpr int UPDATE_CONTACT = 3001; 60115cd2caSopenharmony_ci 61115cd2caSopenharmony_ciconstexpr int QUERY_CONTACTS = 4001; 62115cd2caSopenharmony_ciconstexpr int QUERY_CONTACT = 4008; 63115cd2caSopenharmony_ci 64115cd2caSopenharmony_ciconstexpr int QUERY_CONTACTS_BY_EMAIL = 4002; 65115cd2caSopenharmony_ciconstexpr int QUERY_CONTACTS_BY_PHONE_NUMBER = 4003; 66115cd2caSopenharmony_ciconstexpr int QUERY_GROUPS = 4004; 67115cd2caSopenharmony_ciconstexpr int QUERY_HOLDERS = 4005; 68115cd2caSopenharmony_ciconstexpr int QUERY_KEY = 4006; 69115cd2caSopenharmony_ciconstexpr int QUERY_MY_CARD = 4007; 70115cd2caSopenharmony_ciconstexpr int IS_LOCAL_CONTACT = 5008; 71115cd2caSopenharmony_ciconstexpr int IS_MY_CARD = 5009; 72115cd2caSopenharmony_ci 73115cd2caSopenharmony_ciconstexpr int SELECT_CONTACT = 6001; 74115cd2caSopenharmony_ci 75115cd2caSopenharmony_ci// contactsData type 76115cd2caSopenharmony_ciconstexpr int EMAIL = 1; 77115cd2caSopenharmony_ciconstexpr int IM = 2; 78115cd2caSopenharmony_ciconstexpr int NICKNAME = 3; 79115cd2caSopenharmony_ciconstexpr int ORGANIZATION = 4; 80115cd2caSopenharmony_ciconstexpr int PHONE = 5; 81115cd2caSopenharmony_ciconstexpr int NAME = 6; 82115cd2caSopenharmony_ciconstexpr int POSTAL_ADDRESS = 7; 83115cd2caSopenharmony_ciconstexpr int PHOTO = 8; 84115cd2caSopenharmony_ciconstexpr int GROUP_MEMBERSHIP = 9; 85115cd2caSopenharmony_ciconstexpr int NOTE = 10; 86115cd2caSopenharmony_ciconstexpr int CONTACT_EVENT = 11; 87115cd2caSopenharmony_ciconstexpr int WEBSITE = 12; 88115cd2caSopenharmony_ciconstexpr int RELATION = 13; 89115cd2caSopenharmony_ciconstexpr int CONTACT_MISC = 14; 90115cd2caSopenharmony_ciconstexpr int HICALL_DEVICE = 15; 91115cd2caSopenharmony_ciconstexpr int CAMCARD = 16; 92115cd2caSopenharmony_ciconstexpr int SIP_ADDRESS = 17; 93115cd2caSopenharmony_ci 94115cd2caSopenharmony_ciconstexpr int ARGS_ZERO = 0; 95115cd2caSopenharmony_ciconstexpr int ARGS_ONE = 1; 96115cd2caSopenharmony_ciconstexpr int ARGS_TWO = 2; 97115cd2caSopenharmony_ciconstexpr int ARGS_THREE = 3; 98115cd2caSopenharmony_ciconstexpr int ARGS_FOUR = 4; 99115cd2caSopenharmony_ciconstexpr int ARGS_FIVE = 5; 100115cd2caSopenharmony_ciconst std::string CONTACTS_DATA_URI = "datashare:///com.ohos.contactsdataability"; 101115cd2caSopenharmony_ci 102115cd2caSopenharmony_cistruct ExecuteHelper { 103115cd2caSopenharmony_ci ExecuteHelper() 104115cd2caSopenharmony_ci : work(nullptr), deferred(nullptr), sync(NAPI_CALL_TYPE_PROMISE), 105115cd2caSopenharmony_ci argc(0), abilityContext(nullptr), actionCode(-1), callBack(nullptr), 106115cd2caSopenharmony_ci childActionCode(0), promise(nullptr), resultData(-1), resultSet(nullptr) {} 107115cd2caSopenharmony_ci napi_async_work work; 108115cd2caSopenharmony_ci napi_deferred deferred; 109115cd2caSopenharmony_ci int sync; 110115cd2caSopenharmony_ci unsigned int argc; 111115cd2caSopenharmony_ci napi_value argv[MAX_PARAMS] = {0}; 112115cd2caSopenharmony_ci napi_value abilityContext; 113115cd2caSopenharmony_ci int actionCode; 114115cd2caSopenharmony_ci napi_ref callBack; 115115cd2caSopenharmony_ci int childActionCode; 116115cd2caSopenharmony_ci napi_value promise; 117115cd2caSopenharmony_ci // query 118115cd2caSopenharmony_ci std::vector<std::string> columns; 119115cd2caSopenharmony_ci // condition 120115cd2caSopenharmony_ci DataShare::DataSharePredicates predicates; 121115cd2caSopenharmony_ci // delete contact predicates for update contact 122115cd2caSopenharmony_ci DataShare::DataSharePredicates deletePredicates; 123115cd2caSopenharmony_ci // update 124115cd2caSopenharmony_ci std::vector<DataShare::DataShareValuesBucket> valueUpdateContact; 125115cd2caSopenharmony_ci // insert 126115cd2caSopenharmony_ci std::vector<DataShare::DataShareValuesBucket> valueContact; 127115cd2caSopenharmony_ci // insertContactData 128115cd2caSopenharmony_ci std::vector<DataShare::DataShareValuesBucket> valueContactData; 129115cd2caSopenharmony_ci // dataShareHelper 130115cd2caSopenharmony_ci std::shared_ptr<DataShare::DataShareHelper> dataShareHelper; 131115cd2caSopenharmony_ci 132115cd2caSopenharmony_ci // operation result 133115cd2caSopenharmony_ci int resultData; 134115cd2caSopenharmony_ci std::shared_ptr<DataShare::DataShareResultSet> resultSet; 135115cd2caSopenharmony_ci}; 136115cd2caSopenharmony_ci} // namespace ContactsApi 137115cd2caSopenharmony_ci} // namespace OHOS 138115cd2caSopenharmony_ci#endif // CONTACT_NAPI_COMMON_H