• 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 "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