1115cd2caSopenharmony_ci/* 2115cd2caSopenharmony_ci * Copyright (c) 2021-2022 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_BUILD_H 17115cd2caSopenharmony_ci#define CONTACT_BUILD_H 18115cd2caSopenharmony_ci 19115cd2caSopenharmony_ci#include "ability.h" 20115cd2caSopenharmony_ci#include "ability_context.h" 21115cd2caSopenharmony_ci#include "context.h" 22115cd2caSopenharmony_ci#include "datashare_helper.h" 23115cd2caSopenharmony_ci#include "datashare_predicates.h" 24115cd2caSopenharmony_ci#include "napi/native_common.h" 25115cd2caSopenharmony_ci#include "napi/native_node_api.h" 26115cd2caSopenharmony_ci#include "rdb_errno.h" 27115cd2caSopenharmony_ci#include "rdb_helper.h" 28115cd2caSopenharmony_ci#include "rdb_open_callback.h" 29115cd2caSopenharmony_ci#include "rdb_predicates.h" 30115cd2caSopenharmony_ci#include "rdb_store.h" 31115cd2caSopenharmony_ci#include "result_set.h" 32115cd2caSopenharmony_ci 33115cd2caSopenharmony_ci#include "contacts_napi_common.h" 34115cd2caSopenharmony_ci#include "contacts_napi_object.h" 35115cd2caSopenharmony_ci#include "hilog_wrapper_api.h" 36115cd2caSopenharmony_ci 37115cd2caSopenharmony_cinamespace OHOS { 38115cd2caSopenharmony_cinamespace ContactsApi { 39115cd2caSopenharmony_ciclass ContactsBuild { 40115cd2caSopenharmony_cipublic: 41115cd2caSopenharmony_ci ContactsBuild(); 42115cd2caSopenharmony_ci ~ContactsBuild(); 43115cd2caSopenharmony_ci void GetContactDataByObject(napi_env env, napi_value object, Contacts &contacts); 44115cd2caSopenharmony_ci int GetInt(napi_env env, napi_value id); 45115cd2caSopenharmony_ci void GetContactData(napi_env env, napi_value object, std::vector<DataShare::DataShareValuesBucket> &valueContact, 46115cd2caSopenharmony_ci std::vector<DataShare::DataShareValuesBucket> &valueContactData); 47115cd2caSopenharmony_ci std::string NapiGetValueString(napi_env env, napi_value value); 48115cd2caSopenharmony_ci ContactAttributes GetContactAttributes(napi_env env, napi_value object); 49115cd2caSopenharmony_ci Holder GetHolder(napi_env env, napi_value object); 50115cd2caSopenharmony_ci void BuildValueContactDataByType( 51115cd2caSopenharmony_ci Contacts &contacts, int typeId, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 52115cd2caSopenharmony_ci 53115cd2caSopenharmony_ciprivate: 54115cd2caSopenharmony_ci void TypeSwitchSplit(int typeId, Contacts &contacts, 55115cd2caSopenharmony_ci std::vector<DataShare::DataShareValuesBucket> &valueContactData); 56115cd2caSopenharmony_ci napi_value GetArrayByKey(napi_env env, napi_value valueObject, std::string key); 57115cd2caSopenharmony_ci napi_value GetObjectByKey(napi_env env, napi_value object, std::string key); 58115cd2caSopenharmony_ci std::string GetStringValueByKey(napi_env env, napi_value valueObject, std::string key); 59115cd2caSopenharmony_ci int GetIntValueByKey(napi_env env, napi_value valueObject, std::string key); 60115cd2caSopenharmony_ci Name GetName(napi_env env, napi_value object); 61115cd2caSopenharmony_ci Portrait GetUri(napi_env env, napi_value object); 62115cd2caSopenharmony_ci std::vector<Email> GetEmails(napi_env env, napi_value object); 63115cd2caSopenharmony_ci std::vector<Event> GetEvent(napi_env env, napi_value object); 64115cd2caSopenharmony_ci std::vector<Group> GetGroup(napi_env env, napi_value object); 65115cd2caSopenharmony_ci std::vector<ImAddress> GetImAddress(napi_env env, napi_value object); 66115cd2caSopenharmony_ci std::vector<PhoneNumber> GetPhoneNumbers(napi_env env, napi_value object); 67115cd2caSopenharmony_ci std::vector<PostalAddress> GetPostalAddress(napi_env env, napi_value object); 68115cd2caSopenharmony_ci std::vector<Relation> GetRelation(napi_env env, napi_value object); 69115cd2caSopenharmony_ci std::vector<SipAddress> GetSipAddress(napi_env env, napi_value object); 70115cd2caSopenharmony_ci std::vector<Website> GetWebsite(napi_env env, napi_value object); 71115cd2caSopenharmony_ci NickName GetNickName(napi_env env, napi_value object); 72115cd2caSopenharmony_ci Note GetNote(napi_env env, napi_value object); 73115cd2caSopenharmony_ci Organization GetOrganization(napi_env env, napi_value object); 74115cd2caSopenharmony_ci // structure parameter and ValuesBucket 75115cd2caSopenharmony_ci void BuildValueContact(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContact); 76115cd2caSopenharmony_ci void BuildValueContactData(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 77115cd2caSopenharmony_ci void GetValuesBucketEmail(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 78115cd2caSopenharmony_ci void GetValuesBucketEvent(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 79115cd2caSopenharmony_ci void GetValuesBucketGroup(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 80115cd2caSopenharmony_ci void GetValuesBucketImAddress(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 81115cd2caSopenharmony_ci void GetValuesBucketPortrait(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 82115cd2caSopenharmony_ci void GetValuesBucketPhoneNumber(Contacts &contacts, 83115cd2caSopenharmony_ci std::vector<DataShare::DataShareValuesBucket> &valueContactData); 84115cd2caSopenharmony_ci void GetValuesBucketPostalAddress(Contacts &contacts, 85115cd2caSopenharmony_ci std::vector<DataShare::DataShareValuesBucket> &valueContactData); 86115cd2caSopenharmony_ci void GetValuesBucketRelation(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 87115cd2caSopenharmony_ci void GetValuesBucketSipAddress(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 88115cd2caSopenharmony_ci void GetValuesBucketWebsite(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 89115cd2caSopenharmony_ci void GetValuesBucketName(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 90115cd2caSopenharmony_ci void GetValuesBucketNickName(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 91115cd2caSopenharmony_ci void GetValuesBucketNote(Contacts &contacts, std::vector<DataShare::DataShareValuesBucket> &valueContactData); 92115cd2caSopenharmony_ci void GetValuesBucketOrganization(Contacts &contacts, 93115cd2caSopenharmony_ci std::vector<DataShare::DataShareValuesBucket> &valueContactData); 94115cd2caSopenharmony_ci}; 95115cd2caSopenharmony_ci} // namespace ContactsApi 96115cd2caSopenharmony_ci} // namespace OHOS 97115cd2caSopenharmony_ci#endif // CONTACT_BUILD_H 98