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