1 /*
2  * Copyright (c) 2021-2024 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 OS_ACCOUNT_INTERFACES_KITS_NAPI_OSACCOUNT_INCLUDE_NAPI_OS_ACCOUNT_COMMON_H
17 #define OS_ACCOUNT_INTERFACES_KITS_NAPI_OSACCOUNT_INCLUDE_NAPI_OS_ACCOUNT_COMMON_H
18 
19 #include "account_info.h"
20 #include "napi_os_account.h"
21 #include "os_account_manager.h"
22 #include "ohos_account_kits.h"
23 
24 namespace OHOS {
25 namespace AccountJsKit {
26 constexpr std::int32_t MAX_VALUE_LEN = 4096;
27 constexpr std::int32_t MAX_SUBSCRIBER_NAME_LEN = 1024;
28 constexpr const std::int32_t STR_MAX_SIZE = 256;
29 constexpr int PARAMZERO = 0;
30 constexpr int PARAMONE = 1;
31 constexpr int PARAMTWO = 2;
32 constexpr int PARAMTHREE = 3;
33 constexpr int RESULT_COUNT = 2;
34 constexpr int INVALID_LOCALID = -1;
35 constexpr std::int32_t ARGS_SIZE_ZERO = 0;
36 constexpr std::int32_t ARGS_SIZE_ONE = 1;
37 constexpr std::int32_t ARGS_SIZE_TWO = 2;
38 constexpr std::int32_t ARGS_SIZE_THREE = 3;
39 constexpr std::int32_t ARGS_SIZE_FOUR = 4;
40 
41 class NapiCreateDomainCallback final : public DomainAccountCallback {
42 public:
43     NapiCreateDomainCallback(napi_env env, napi_ref callbackRef, napi_deferred deferred);
44     void OnResult(const int32_t errCode, Parcel &parcel) override;
45 
46 private:
47     napi_env env_ = nullptr;
48     napi_ref callbackRef_ = nullptr;
49     napi_deferred deferred_ = nullptr;
50     AccountJsKit::ThreadLockInfo lockInfo_;
51 };
52 
53 napi_value WrapVoidToJS(napi_env env);
54 
55 bool ParseParaQueryOAByIdCB(napi_env env, napi_callback_info cbInfo, QueryOAByIdAsyncContext *asyncContext);
56 
57 void QueryOAByIdExecuteCB(napi_env env, void *data);
58 
59 void QueryOAByIdCallbackCompletedCB(napi_env env, napi_status status, void *data);
60 
61 void GetOACBInfoToJs(napi_env env, OsAccountInfo &info, napi_value &objOAInfo);
62 
63 void GetOtherAccountInfoToJs(napi_env env, OsAccountInfo &info, napi_value &objOAInfo);
64 
65 void MakeArrayToJs(napi_env env, const std::vector<std::string> &constraints, napi_value jsArray);
66 
67 bool ParseParaRemoveOACB(napi_env env, napi_callback_info cbInfo, RemoveOAAsyncContext *asyncContext);
68 
69 void RemoveOAExecuteCB(napi_env env, void *data);
70 
71 void RemoveOACallbackCompletedCB(napi_env env, napi_status status, void *data);
72 
73 bool ParseParaSetOAName(napi_env env, napi_callback_info cbInfo, SetOANameAsyncContext *asyncContext);
74 
75 void SetOANameExecuteCB(napi_env env, void *data);
76 
77 void SetOANameCallbackCompletedCB(napi_env env, napi_status status, void *data);
78 
79 bool ParseParaSetOAConstraints(napi_env env, napi_callback_info cbInfo, SetOAConsAsyncContext *asyncContext);
80 
81 void SetOAConsExecuteCB(napi_env env, void *data);
82 
83 void SetOAConsCallbackCompletedCB(napi_env env, napi_status status, void *data);
84 
85 bool ParseParaActiveOA(napi_env env, napi_callback_info cbInfo, ActivateOAAsyncContext *asyncContext);
86 
87 void ActivateOAExecuteCB(napi_env env, void *data);
88 
89 void ActivateOACallbackCompletedCB(napi_env env, napi_status status, void *data);
90 
91 bool ParseParaDeactivateOA(napi_env env, napi_callback_info cbInfo, ActivateOAAsyncContext *asyncContext);
92 
93 void DeactivateOAExecuteCB(napi_env env, void *data);
94 
95 void DeactivateOACompletedCB(napi_env env, napi_status status, void *data);
96 
97 bool ParseParaCreateOA(napi_env env, napi_callback_info cbInfo, CreateOAAsyncContext *asyncContext);
98 
99 bool ParseParaCreateOAForDomain(napi_env env, napi_callback_info cbInfo,
100     CreateOAForDomainAsyncContext *asyncContext);
101 
102 void CreateOAExecuteCB(napi_env env, void *data);
103 
104 void CreateOAForDomainExecuteCB(napi_env env, void *data);
105 
106 void CreateOAForDomainCompletedCB(napi_env env, napi_status status, void *data);
107 
108 void CreateOACallbackCompletedCB(napi_env env, napi_status status, void *data);
109 
110 void CreateOAForDomainCallbackCompletedWork(uv_work_t *work, int status);
111 
112 bool ParseParaGetOACount(napi_env env, napi_callback_info cbInfo, GetOACountAsyncContext *asyncContext);
113 
114 void GetOACountExecuteCB(napi_env env, void *data);
115 
116 void GetOACountCallbackCompletedCB(napi_env env, napi_status status, void *data);
117 
118 bool ParseParaDbDeviceId(napi_env env, napi_callback_info cbInfo, DbDeviceIdAsyncContext *asyncContext);
119 
120 void DbDeviceIdExecuteCB(napi_env env, void *data);
121 
122 void DbDeviceIdCallbackCompletedCB(napi_env env, napi_status status, void *data);
123 
124 bool ParseParaGetAllCons(napi_env env, napi_callback_info cbInfo, GetAllConsAsyncContext *asyncContext);
125 
126 void GetAllConsExecuteCB(napi_env env, void *data);
127 
128 void GetAllConsCallbackCompletedCB(napi_env env, napi_status status, void *data);
129 
130 void GetAllAccountCons(napi_env env, const std::vector<std::string> &info, napi_value &result);
131 
132 bool ParseParaProcessId(napi_env env, napi_callback_info cbInfo, GetIdAsyncContext *asyncContext);
133 
134 void GetProcessIdExecuteCB(napi_env env, void *data);
135 
136 void GetProcessIdCallbackCompletedCB(napi_env env, napi_status status, void *data);
137 
138 bool ParseQueryAllCreateOA(napi_env env, napi_callback_info cbInfo, QueryCreateOAAsyncContext *asyncContext);
139 
140 bool ParseQueryActiveIds(napi_env env, napi_callback_info cbInfo, QueryActiveIdsAsyncContext *asyncContext);
141 
142 void QueryCreateOAExecuteCB(napi_env env, void *data);
143 
144 void QueryActiveIdsExecuteCB(napi_env env, void *data);
145 
146 void QueryCreateOACallbackCompletedCB(napi_env env, napi_status status, void *data);
147 
148 void QueryActiveIdsCallbackCompletedCB(napi_env env, napi_status status, void *data);
149 
150 void GetForegroundOALocalIdExecuteCB(napi_env env, void *data);
151 
152 void GetForegroundOALocalIdCallbackCompletedCB(napi_env env, napi_status status, void *data);
153 
154 void QueryOAInfoForResult(napi_env env, const std::vector<OsAccountInfo> &info, napi_value &result);
155 
156 bool ParseParaGetPhoto(napi_env env, napi_callback_info cbInfo, GetOAPhotoAsyncContext *asyncContext);
157 
158 void GetOsAccountNameExecuteCB(napi_env env, void *data);
159 
160 void GetOsAccountNameCallbackCompletedCB(napi_env env, napi_status status, void *data);
161 
162 void GetOAPhotoExecuteCB(napi_env env, void *data);
163 
164 void GetOAPhotoCallbackCompletedCB(napi_env env, napi_status status, void *data);
165 
166 bool ParseParaCurrentOA(napi_env env, napi_callback_info cbInfo, CurrentOAAsyncContext *asyncContext);
167 
168 void QueryCurrentOAExecuteCB(napi_env env, void *data);
169 
170 void QueryCurrentOACallbackCompletedCB(napi_env env, napi_status status, void *data);
171 
172 bool ParseParaGetIdByUid(napi_env env, napi_callback_info cbInfo, GetIdByUidAsyncContext *asyncContext);
173 
174 bool ParseParaGetIdByDomain(napi_env env, napi_callback_info cbInfo, GetIdByDomainAsyncContext *asyncContext);
175 
176 void GetIdByUidExecuteCB(napi_env env, void *data);
177 
178 void GetBundleIdByUidExecuteCB(napi_env env, void *data);
179 
180 void GetIdByDomainExecuteCB(napi_env env, void *data);
181 
182 void GetIdByUidCallbackCompletedCB(napi_env env, napi_status status, void *data);
183 
184 void GetBundleIdByUidCallbackCompletedCB(napi_env env, napi_status status, void *data);
185 
186 void GetIdByDomainCallbackCompletedCB(napi_env env, napi_status status, void *data);
187 
188 bool ParseParaSetPhoto(napi_env env, napi_callback_info cbInfo, SetOAPhotoAsyncContext *asyncContext);
189 
190 void SetPhotoExecuteCB(napi_env env, void *data);
191 
192 void SetPhotoCompletedCB(napi_env env, napi_status status, void *data);
193 
194 bool ParseParaQueryMaxNum(napi_env env, napi_callback_info cbInfo, QueryMaxNumAsyncContext *asyncContext);
195 
196 void QueryMaxNumExecuteCB(napi_env env, void *data);
197 
198 void QueryMaxNumCompletedCB(napi_env env, napi_status status, void *data);
199 
200 bool ParseParaIsActived(napi_env env, napi_callback_info cbInfo, IsActivedAsyncContext *asyncContext);
201 
202 void IsActivedExecuteCB(napi_env env, void *data);
203 
204 void IsActivedCompletedCB(napi_env env, napi_status status, void *data);
205 
206 bool ParseParaIsEnable(napi_env env, napi_callback_info cbInfo, IsConEnableAsyncContext *asyncContext);
207 
208 void IsEnableExecuteCB(napi_env env, void *data);
209 
210 void IsEnableCompletedCB(napi_env env, napi_status status, void *data);
211 
212 bool ParseParaGetType(napi_env env, napi_callback_info cbInfo, GetTypeAsyncContext *asyncContext);
213 
214 void GetTypeExecuteCB(napi_env env, void *data);
215 
216 void GetTypeCompletedCB(napi_env env, napi_status status, void *data);
217 
218 bool ParseParaIsMultiEn(napi_env env, napi_callback_info cbInfo, IsMultiEnAsyncContext *asyncContext);
219 
220 void IsMultiEnExecuteCB(napi_env env, void *data);
221 
222 void IsMultiEnCompletedCB(napi_env env, napi_status status, void *data);
223 
224 bool ParseParaIsVerified(napi_env env, napi_callback_info cbInfo, IsVerifiedAsyncContext *asyncContext);
225 
226 void IsVerifiedExecuteCB(napi_env env, void *data);
227 
228 void IsVerifiedCompletedCB(napi_env env, napi_status status, void *data);
229 
230 bool ParseParaSerialNumId(napi_env env, napi_callback_info cbInfo, GetSerialNumIdCBInfo *asyncContext);
231 
232 void SerialNumIdExecuteCB(napi_env env, void *data);
233 
234 void SerialNumIdCompletedCB(napi_env env, napi_status status, void *data);
235 
236 bool ParseParaGetSerialNum(napi_env env, napi_callback_info cbInfo, GetSerialNumForOAInfo *asyncContext);
237 
238 void GetSerialNumExecuteCB(napi_env env, void *data);
239 
240 void GetSerialNumCompletedCB(napi_env env, napi_status status, void *data);
241 
242 bool ParseParaIsTestOA(napi_env env, napi_callback_info cbInfo, IsTestOAInfo *asyncContext);
243 
244 bool ParseParaIsMainOA(napi_env env, napi_callback_info cbInfo, IsMainOAInfo *asyncContext);
245 
246 bool ParseParaToSubscriber(const napi_env &env, napi_callback_info cbInfo, SubscribeCBInfo *asyncContext,
247                            napi_value *thisVar);
248 
249 void SubscribeExecuteCB(napi_env env, void *data);
250 
251 void SubscribeCompletedCB(napi_env env, napi_status status, void *data);
252 
253 bool ParseParaToUnsubscriber(
254     const napi_env &env, napi_callback_info cbInfo, UnsubscribeCBInfo *asyncContext, napi_value *thisVar);
255 
256 bool ParseQueryOAConstraintSrcTypes(napi_env env, napi_callback_info cbInfo,
257     QueryOAConstraintSrcTypeContext *asyncContext);
258 
259 void QueryOAContSrcTypeExecuteCB(napi_env env, void *data);
260 
261 void QueryOAContSrcTypeCallbackCompletedCB(napi_env env, napi_status status, void *data);
262 
263 void QueryOAContSrcTypeForResult(napi_env env, const std::vector<ConstraintSourceTypeInfo> &infos, napi_value &result);
264 }  // namespace AccountJsKit
265 }  // namespace OHOS
266 
267 #endif  // OS_ACCOUNT_INTERFACES_KITS_NAPI_OSACCOUNT_INCLUDE_NAPI_OS_ACCOUNT_COMMON_H
268