1 /*
2 * Copyright (c) 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 #include "define_property.h"
17
18 #include "napi_common_utils.h"
19 #include "string_utils.h"
20 #include "update_define.h"
21 #include "update_helper.h"
22
23 #define DECLARE_ENUM_PROPERTY(item) \
24 {StringUtils::GetEnumValueString(#item), NapiCommonUtils::CreateUint32(env, CAST_UINT((item)))}
25
26 #define DECLARE_STRING_PROPERTY(item) \
27 {StringUtils::GetEnumValueString(#item), NapiCommonUtils::CreateStringUtf8(env, (item))}
28
29 #define DECLARE_CALL_RESULT_PROPERTY(item) \
30 {StringUtils::GetEnumValueString(#item), \
31 NapiCommonUtils::CreateUint32(env, CAST_UINT(NapiCommonUtils::ConvertToErrorCode(item)))}
32
33 namespace OHOS::UpdateEngine {
DefineProperties(napi_env env,napi_value exports)34 void DefineProperty::DefineProperties(napi_env env, napi_value exports)
35 {
36 DefineCallResult(env, exports);
37 DefineUpgradeStatus(env, exports);
38 DefineComponentType(env, exports);
39 DefineEffectiveMode(env, exports);
40 DefineNetType(env, exports);
41 DefineOrder(env, exports);
42 DefineEventClassify(env, exports);
43 DefineBusinessSubType(env, exports);
44 DefineDescriptionType(env, exports);
45 DefineDescriptionFormat(env, exports);
46 DefineEventId(env, exports);
47 DefineUpgradeAction(env, exports);
48 DefineBusinessVendor(env, exports);
49 }
50
DefineCallResult(napi_env env,napi_value exports)51 void DefineProperty::DefineCallResult(napi_env env, napi_value exports)
52 {
53 std::vector<std::pair<std::string, napi_value>> callResultList {
54 DECLARE_CALL_RESULT_PROPERTY(CallResult::APP_NOT_GRANTED),
55 DECLARE_CALL_RESULT_PROPERTY(CallResult::PARAM_ERR),
56 DECLARE_CALL_RESULT_PROPERTY(CallResult::UN_SUPPORT),
57 DECLARE_CALL_RESULT_PROPERTY(CallResult::SUCCESS),
58 DECLARE_CALL_RESULT_PROPERTY(CallResult::FAIL),
59 DECLARE_CALL_RESULT_PROPERTY(CallResult::DEV_UPG_INFO_ERR),
60 DECLARE_CALL_RESULT_PROPERTY(CallResult::FORBIDDEN),
61 DECLARE_CALL_RESULT_PROPERTY(CallResult::IPC_ERR),
62 DECLARE_CALL_RESULT_PROPERTY(CallResult::TIME_OUT),
63 DECLARE_CALL_RESULT_PROPERTY(CallResult::DB_ERROR),
64 DECLARE_CALL_RESULT_PROPERTY(CallResult::IO_ERROR),
65 DECLARE_CALL_RESULT_PROPERTY(CallResult::NET_ERROR)
66 };
67 NapiCommonUtils::CreateProperty(env, exports, "CallResult", callResultList);
68 }
69
DefineUpgradeStatus(napi_env env,napi_value exports)70 void DefineProperty::DefineUpgradeStatus(napi_env env, napi_value exports)
71 {
72 std::vector<std::pair<std::string, napi_value>> upgradeStatusList = {
73 DECLARE_ENUM_PROPERTY(UpgradeStatus::INIT),
74 DECLARE_ENUM_PROPERTY(UpgradeStatus::CHECKING_VERSION),
75 DECLARE_ENUM_PROPERTY(UpgradeStatus::CHECK_VERSION_FAIL),
76 DECLARE_ENUM_PROPERTY(UpgradeStatus::CHECK_VERSION_SUCCESS),
77 DECLARE_ENUM_PROPERTY(UpgradeStatus::DOWNLOADING),
78 DECLARE_ENUM_PROPERTY(UpgradeStatus::DOWNLOAD_PAUSE),
79 DECLARE_ENUM_PROPERTY(UpgradeStatus::DOWNLOAD_CANCEL),
80 DECLARE_ENUM_PROPERTY(UpgradeStatus::DOWNLOAD_FAIL),
81 DECLARE_ENUM_PROPERTY(UpgradeStatus::DOWNLOAD_SUCCESS),
82 DECLARE_ENUM_PROPERTY(UpgradeStatus::VERIFYING),
83 DECLARE_ENUM_PROPERTY(UpgradeStatus::VERIFY_FAIL),
84 DECLARE_ENUM_PROPERTY(UpgradeStatus::VERIFY_SUCCESS),
85 DECLARE_ENUM_PROPERTY(UpgradeStatus::PACKAGE_TRANSING),
86 DECLARE_ENUM_PROPERTY(UpgradeStatus::PACKAGE_TRANS_FAIL),
87 DECLARE_ENUM_PROPERTY(UpgradeStatus::PACKAGE_TRANS_SUCCESS),
88 DECLARE_ENUM_PROPERTY(UpgradeStatus::INSTALLING),
89 DECLARE_ENUM_PROPERTY(UpgradeStatus::INSTALL_FAIL),
90 DECLARE_ENUM_PROPERTY(UpgradeStatus::INSTALL_SUCCESS),
91 DECLARE_ENUM_PROPERTY(UpgradeStatus::UPDATING),
92 DECLARE_ENUM_PROPERTY(UpgradeStatus::UPDATE_FAIL),
93 DECLARE_ENUM_PROPERTY(UpgradeStatus::UPDATE_SUCCESS)
94 };
95 NapiCommonUtils::CreateProperty(env, exports, "UpgradeStatus", upgradeStatusList);
96 }
97
DefineComponentType(napi_env env,napi_value exports)98 void DefineProperty::DefineComponentType(napi_env env, napi_value exports)
99 {
100 std::vector<std::pair<std::string, napi_value>> componentTypeList = {
101 DECLARE_ENUM_PROPERTY(ComponentType::OTA),
102 DECLARE_ENUM_PROPERTY(ComponentType::PATCH),
103 DECLARE_ENUM_PROPERTY(ComponentType::COTA),
104 DECLARE_ENUM_PROPERTY(ComponentType::PARAM)
105 };
106 NapiCommonUtils::CreateProperty(env, exports, "ComponentType", componentTypeList);
107 }
108
DefineEffectiveMode(napi_env env,napi_value exports)109 void DefineProperty::DefineEffectiveMode(napi_env env, napi_value exports)
110 {
111 std::vector<std::pair<std::string, napi_value>> effectiveModeList = {
112 DECLARE_ENUM_PROPERTY(EffectiveMode::COLD),
113 DECLARE_ENUM_PROPERTY(EffectiveMode::LIVE),
114 DECLARE_ENUM_PROPERTY(EffectiveMode::LIVE_AND_COLD)
115 };
116 NapiCommonUtils::CreateProperty(env, exports, "EffectiveMode", effectiveModeList);
117 }
118
DefineNetType(napi_env env,napi_value exports)119 void DefineProperty::DefineNetType(napi_env env, napi_value exports)
120 {
121 std::vector<std::pair<std::string, napi_value>> netTypeList = {
122 DECLARE_ENUM_PROPERTY(NetType::CELLULAR),
123 DECLARE_ENUM_PROPERTY(NetType::METERED_WIFI),
124 DECLARE_ENUM_PROPERTY(NetType::NOT_METERED_WIFI),
125 DECLARE_ENUM_PROPERTY(NetType::WIFI),
126 DECLARE_ENUM_PROPERTY(NetType::CELLULAR_AND_WIFI)
127 };
128 NapiCommonUtils::CreateProperty(env, exports, "NetType", netTypeList);
129 }
130
DefineOrder(napi_env env,napi_value exports)131 void DefineProperty::DefineOrder(napi_env env, napi_value exports)
132 {
133 std::vector<std::pair<std::string, napi_value>> orderList = {
134 DECLARE_ENUM_PROPERTY(Order::DOWNLOAD),
135 DECLARE_ENUM_PROPERTY(Order::INSTALL),
136 DECLARE_ENUM_PROPERTY(Order::DOWNLOAD_AND_INSTALL),
137 DECLARE_ENUM_PROPERTY(Order::APPLY),
138 DECLARE_ENUM_PROPERTY(Order::INSTALL_AND_APPLY)
139 };
140 NapiCommonUtils::CreateProperty(env, exports, "Order", orderList);
141 }
142
DefineEventClassify(napi_env env,napi_value exports)143 void DefineProperty::DefineEventClassify(napi_env env, napi_value exports)
144 {
145 std::vector<std::pair<std::string, napi_value>> eventClassifyList = {
146 DECLARE_ENUM_PROPERTY(EventClassify::TASK),
147 DECLARE_ENUM_PROPERTY(EventClassify::SYSTEM)
148 };
149 NapiCommonUtils::CreateProperty(env, exports, "EventClassify", eventClassifyList);
150 }
151
DefineBusinessSubType(napi_env env,napi_value exports)152 void DefineProperty::DefineBusinessSubType(napi_env env, napi_value exports)
153 {
154 std::vector<std::pair<std::string, napi_value>> businessSubTypeList = {
155 DECLARE_ENUM_PROPERTY(BusinessSubType::FIRMWARE),
156 DECLARE_ENUM_PROPERTY(BusinessSubType::PARAM),
157 DECLARE_ENUM_PROPERTY(BusinessSubType::ROLLBACK)
158 };
159 NapiCommonUtils::CreateProperty(env, exports, "BusinessSubType", businessSubTypeList);
160 }
161
DefineDescriptionType(napi_env env,napi_value exports)162 void DefineProperty::DefineDescriptionType(napi_env env, napi_value exports)
163 {
164 std::vector<std::pair<std::string, napi_value>> descriptionTypeList = {
165 DECLARE_ENUM_PROPERTY(DescriptionType::CONTENT),
166 DECLARE_ENUM_PROPERTY(DescriptionType::URI),
167 DECLARE_ENUM_PROPERTY(DescriptionType::ID)
168 };
169 NapiCommonUtils::CreateProperty(env, exports, "DescriptionType", descriptionTypeList);
170 }
171
DefineDescriptionFormat(napi_env env,napi_value exports)172 void DefineProperty::DefineDescriptionFormat(napi_env env, napi_value exports)
173 {
174 std::vector<std::pair<std::string, napi_value>> descriptionFormatList = {
175 DECLARE_ENUM_PROPERTY(DescriptionFormat::STANDARD),
176 DECLARE_ENUM_PROPERTY(DescriptionFormat::SIMPLIFIED)
177 };
178 NapiCommonUtils::CreateProperty(env, exports, "DescriptionFormat", descriptionFormatList);
179 }
180
DefineEventId(napi_env env,napi_value exports)181 void DefineProperty::DefineEventId(napi_env env, napi_value exports)
182 {
183 std::vector<std::pair<std::string, napi_value>> eventIdList = {
184 DECLARE_ENUM_PROPERTY(EventId::EVENT_TASK_BASE),
185 DECLARE_ENUM_PROPERTY(EventId::EVENT_TASK_RECEIVE),
186 DECLARE_ENUM_PROPERTY(EventId::EVENT_TASK_CANCEL),
187 DECLARE_ENUM_PROPERTY(EventId::EVENT_DOWNLOAD_WAIT),
188 DECLARE_ENUM_PROPERTY(EventId::EVENT_DOWNLOAD_START),
189 DECLARE_ENUM_PROPERTY(EventId::EVENT_DOWNLOAD_UPDATE),
190 DECLARE_ENUM_PROPERTY(EventId::EVENT_DOWNLOAD_PAUSE),
191 DECLARE_ENUM_PROPERTY(EventId::EVENT_DOWNLOAD_RESUME),
192 DECLARE_ENUM_PROPERTY(EventId::EVENT_DOWNLOAD_SUCCESS),
193 DECLARE_ENUM_PROPERTY(EventId::EVENT_DOWNLOAD_FAIL),
194 DECLARE_ENUM_PROPERTY(EventId::EVENT_UPGRADE_WAIT),
195 DECLARE_ENUM_PROPERTY(EventId::EVENT_UPGRADE_START),
196 DECLARE_ENUM_PROPERTY(EventId::EVENT_UPGRADE_UPDATE),
197 DECLARE_ENUM_PROPERTY(EventId::EVENT_APPLY_WAIT),
198 DECLARE_ENUM_PROPERTY(EventId::EVENT_APPLY_START),
199 DECLARE_ENUM_PROPERTY(EventId::EVENT_UPGRADE_SUCCESS),
200 DECLARE_ENUM_PROPERTY(EventId::EVENT_UPGRADE_FAIL),
201 DECLARE_ENUM_PROPERTY(EventId::EVENT_AUTH_START),
202 DECLARE_ENUM_PROPERTY(EventId::EVENT_AUTH_SUCCESS),
203 DECLARE_ENUM_PROPERTY(EventId::EVENT_DOWNLOAD_CANCEL),
204 DECLARE_ENUM_PROPERTY(EventId::EVENT_INITIALIZE),
205 DECLARE_ENUM_PROPERTY(EventId::EVENT_TASK_CHANGE),
206 DECLARE_ENUM_PROPERTY(EventId::EVENT_VERSION_INFO_CHANGE),
207 DECLARE_ENUM_PROPERTY(EventId::SYSTEM_BASE),
208 DECLARE_ENUM_PROPERTY(EventId::SYSTEM_BOOT_COMPLETE)
209 };
210 NapiCommonUtils::CreateProperty(env, exports, "EventId", eventIdList);
211 }
212
DefineUpgradeAction(napi_env env,napi_value exports)213 void DefineProperty::DefineUpgradeAction(napi_env env, napi_value exports)
214 {
215 std::vector<std::pair<std::string, napi_value>> upgradeActionList = {
216 DECLARE_STRING_PROPERTY(UpgradeAction::UPGRADE),
217 DECLARE_STRING_PROPERTY(UpgradeAction::RECOVERY),
218 DECLARE_STRING_PROPERTY(UpgradeAction::ROLLBACK)
219 };
220 NapiCommonUtils::CreateProperty(env, exports, "UpgradeAction", upgradeActionList);
221 }
222
DefineBusinessVendor(napi_env env,napi_value exports)223 void DefineProperty::DefineBusinessVendor(napi_env env, napi_value exports)
224 {
225 std::vector<std::pair<std::string, napi_value>> businessVendorList = {
226 DECLARE_STRING_PROPERTY(BusinessVendor::PUBLIC)
227 };
228 NapiCommonUtils::CreateProperty(env, exports, "BusinessVendor", businessVendorList);
229 }
230 } // namespace OHOS::UpdateEngine