Commit b158528c2a6d56f1617f7c83460e33841aa53cd4
1 parent
6d0e6b35
Wrapper for OtaPackageInfo with usesUrl boolean field
Showing
3 changed files
with
73 additions
and
23 deletions
@@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile; | @@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile; | ||
32 | import org.thingsboard.server.common.data.EntityType; | 32 | import org.thingsboard.server.common.data.EntityType; |
33 | import org.thingsboard.server.common.data.OtaPackage; | 33 | import org.thingsboard.server.common.data.OtaPackage; |
34 | import org.thingsboard.server.common.data.OtaPackageInfo; | 34 | import org.thingsboard.server.common.data.OtaPackageInfo; |
35 | +import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest; | ||
35 | import org.thingsboard.server.common.data.audit.ActionType; | 36 | import org.thingsboard.server.common.data.audit.ActionType; |
36 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 37 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
37 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 38 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
@@ -109,12 +110,12 @@ public class OtaPackageController extends BaseController { | @@ -109,12 +110,12 @@ public class OtaPackageController extends BaseController { | ||
109 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") | 110 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") |
110 | @RequestMapping(value = "/otaPackage", method = RequestMethod.POST) | 111 | @RequestMapping(value = "/otaPackage", method = RequestMethod.POST) |
111 | @ResponseBody | 112 | @ResponseBody |
112 | - public OtaPackageInfo saveOtaPackageInfo(@RequestBody OtaPackageInfo otaPackageInfo, @RequestParam boolean isUrl) throws ThingsboardException { | 113 | + public OtaPackageInfo saveOtaPackageInfo(@RequestBody SaveOtaPackageInfoRequest otaPackageInfo) throws ThingsboardException { |
113 | boolean created = otaPackageInfo.getId() == null; | 114 | boolean created = otaPackageInfo.getId() == null; |
114 | try { | 115 | try { |
115 | otaPackageInfo.setTenantId(getTenantId()); | 116 | otaPackageInfo.setTenantId(getTenantId()); |
116 | checkEntity(otaPackageInfo.getId(), otaPackageInfo, Resource.OTA_PACKAGE); | 117 | checkEntity(otaPackageInfo.getId(), otaPackageInfo, Resource.OTA_PACKAGE); |
117 | - OtaPackageInfo savedOtaPackageInfo = otaPackageService.saveOtaPackageInfo(otaPackageInfo, isUrl); | 118 | + OtaPackageInfo savedOtaPackageInfo = otaPackageService.saveOtaPackageInfo(new OtaPackageInfo(otaPackageInfo), otaPackageInfo.isUsesUrl()); |
118 | logEntityAction(savedOtaPackageInfo.getId(), savedOtaPackageInfo, | 119 | logEntityAction(savedOtaPackageInfo.getId(), savedOtaPackageInfo, |
119 | null, created ? ActionType.ADDED : ActionType.UPDATED, null); | 120 | null, created ? ActionType.ADDED : ActionType.UPDATED, null); |
120 | return savedOtaPackageInfo; | 121 | return savedOtaPackageInfo; |
@@ -27,6 +27,7 @@ import org.thingsboard.common.util.JacksonUtil; | @@ -27,6 +27,7 @@ import org.thingsboard.common.util.JacksonUtil; | ||
27 | import org.thingsboard.server.common.data.DeviceProfile; | 27 | import org.thingsboard.server.common.data.DeviceProfile; |
28 | import org.thingsboard.server.common.data.OtaPackage; | 28 | import org.thingsboard.server.common.data.OtaPackage; |
29 | import org.thingsboard.server.common.data.OtaPackageInfo; | 29 | import org.thingsboard.server.common.data.OtaPackageInfo; |
30 | +import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest; | ||
30 | import org.thingsboard.server.common.data.Tenant; | 31 | import org.thingsboard.server.common.data.Tenant; |
31 | import org.thingsboard.server.common.data.User; | 32 | import org.thingsboard.server.common.data.User; |
32 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 33 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
@@ -92,13 +93,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -92,13 +93,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
92 | 93 | ||
93 | @Test | 94 | @Test |
94 | public void testSaveFirmware() throws Exception { | 95 | public void testSaveFirmware() throws Exception { |
95 | - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); | 96 | + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest(); |
96 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 97 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
97 | firmwareInfo.setType(FIRMWARE); | 98 | firmwareInfo.setType(FIRMWARE); |
98 | firmwareInfo.setTitle(TITLE); | 99 | firmwareInfo.setTitle(TITLE); |
99 | firmwareInfo.setVersion(VERSION); | 100 | firmwareInfo.setVersion(VERSION); |
101 | + firmwareInfo.setUsesUrl(false); | ||
100 | 102 | ||
101 | - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); | 103 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
102 | 104 | ||
103 | Assert.assertNotNull(savedFirmwareInfo); | 105 | Assert.assertNotNull(savedFirmwareInfo); |
104 | Assert.assertNotNull(savedFirmwareInfo.getId()); | 106 | Assert.assertNotNull(savedFirmwareInfo.getId()); |
@@ -109,7 +111,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -109,7 +111,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
109 | 111 | ||
110 | savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode()); | 112 | savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode()); |
111 | 113 | ||
112 | - save(savedFirmwareInfo, false); | 114 | + save(new SaveOtaPackageInfoRequest(savedFirmwareInfo, false)); |
113 | 115 | ||
114 | OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); | 116 | OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); |
115 | Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); | 117 | Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); |
@@ -117,13 +119,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -117,13 +119,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
117 | 119 | ||
118 | @Test | 120 | @Test |
119 | public void testSaveFirmwareData() throws Exception { | 121 | public void testSaveFirmwareData() throws Exception { |
120 | - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); | 122 | + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest(); |
121 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 123 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
122 | firmwareInfo.setType(FIRMWARE); | 124 | firmwareInfo.setType(FIRMWARE); |
123 | firmwareInfo.setTitle(TITLE); | 125 | firmwareInfo.setTitle(TITLE); |
124 | firmwareInfo.setVersion(VERSION); | 126 | firmwareInfo.setVersion(VERSION); |
127 | + firmwareInfo.setUsesUrl(false); | ||
125 | 128 | ||
126 | - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); | 129 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
127 | 130 | ||
128 | Assert.assertNotNull(savedFirmwareInfo); | 131 | Assert.assertNotNull(savedFirmwareInfo); |
129 | Assert.assertNotNull(savedFirmwareInfo.getId()); | 132 | Assert.assertNotNull(savedFirmwareInfo.getId()); |
@@ -134,7 +137,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -134,7 +137,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
134 | 137 | ||
135 | savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode()); | 138 | savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode()); |
136 | 139 | ||
137 | - save(savedFirmwareInfo, false); | 140 | + save(new SaveOtaPackageInfoRequest(savedFirmwareInfo, false)); |
138 | 141 | ||
139 | OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); | 142 | OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); |
140 | Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); | 143 | Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); |
@@ -151,28 +154,33 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -151,28 +154,33 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
151 | 154 | ||
152 | @Test | 155 | @Test |
153 | public void testUpdateFirmwareFromDifferentTenant() throws Exception { | 156 | public void testUpdateFirmwareFromDifferentTenant() throws Exception { |
154 | - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); | 157 | + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest(); |
155 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 158 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
156 | firmwareInfo.setType(FIRMWARE); | 159 | firmwareInfo.setType(FIRMWARE); |
157 | firmwareInfo.setTitle(TITLE); | 160 | firmwareInfo.setTitle(TITLE); |
158 | firmwareInfo.setVersion(VERSION); | 161 | firmwareInfo.setVersion(VERSION); |
162 | + firmwareInfo.setUsesUrl(false); | ||
159 | 163 | ||
160 | - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); | 164 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
161 | 165 | ||
162 | loginDifferentTenant(); | 166 | loginDifferentTenant(); |
163 | - doPost("/api/otaPackage?isUrl=false", savedFirmwareInfo, OtaPackageInfo.class, status().isForbidden()); | 167 | + doPost("/api/otaPackage", |
168 | + new SaveOtaPackageInfoRequest(savedFirmwareInfo, false), | ||
169 | + OtaPackageInfo.class, | ||
170 | + status().isForbidden()); | ||
164 | deleteDifferentTenant(); | 171 | deleteDifferentTenant(); |
165 | } | 172 | } |
166 | 173 | ||
167 | @Test | 174 | @Test |
168 | public void testFindFirmwareInfoById() throws Exception { | 175 | public void testFindFirmwareInfoById() throws Exception { |
169 | - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); | 176 | + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest(); |
170 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 177 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
171 | firmwareInfo.setType(FIRMWARE); | 178 | firmwareInfo.setType(FIRMWARE); |
172 | firmwareInfo.setTitle(TITLE); | 179 | firmwareInfo.setTitle(TITLE); |
173 | firmwareInfo.setVersion(VERSION); | 180 | firmwareInfo.setVersion(VERSION); |
181 | + firmwareInfo.setUsesUrl(false); | ||
174 | 182 | ||
175 | - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); | 183 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
176 | 184 | ||
177 | OtaPackageInfo foundFirmware = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); | 185 | OtaPackageInfo foundFirmware = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); |
178 | Assert.assertNotNull(foundFirmware); | 186 | Assert.assertNotNull(foundFirmware); |
@@ -181,13 +189,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -181,13 +189,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
181 | 189 | ||
182 | @Test | 190 | @Test |
183 | public void testFindFirmwareById() throws Exception { | 191 | public void testFindFirmwareById() throws Exception { |
184 | - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); | 192 | + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest(); |
185 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 193 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
186 | firmwareInfo.setType(FIRMWARE); | 194 | firmwareInfo.setType(FIRMWARE); |
187 | firmwareInfo.setTitle(TITLE); | 195 | firmwareInfo.setTitle(TITLE); |
188 | firmwareInfo.setVersion(VERSION); | 196 | firmwareInfo.setVersion(VERSION); |
197 | + firmwareInfo.setUsesUrl(false); | ||
189 | 198 | ||
190 | - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); | 199 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
191 | 200 | ||
192 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); | 201 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); |
193 | 202 | ||
@@ -201,13 +210,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -201,13 +210,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
201 | 210 | ||
202 | @Test | 211 | @Test |
203 | public void testDeleteFirmware() throws Exception { | 212 | public void testDeleteFirmware() throws Exception { |
204 | - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); | 213 | + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest(); |
205 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 214 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
206 | firmwareInfo.setType(FIRMWARE); | 215 | firmwareInfo.setType(FIRMWARE); |
207 | firmwareInfo.setTitle(TITLE); | 216 | firmwareInfo.setTitle(TITLE); |
208 | firmwareInfo.setVersion(VERSION); | 217 | firmwareInfo.setVersion(VERSION); |
218 | + firmwareInfo.setUsesUrl(false); | ||
209 | 219 | ||
210 | - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); | 220 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
211 | 221 | ||
212 | doDelete("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString()) | 222 | doDelete("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString()) |
213 | .andExpect(status().isOk()); | 223 | .andExpect(status().isOk()); |
@@ -220,13 +230,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -220,13 +230,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
220 | public void testFindTenantFirmwares() throws Exception { | 230 | public void testFindTenantFirmwares() throws Exception { |
221 | List<OtaPackageInfo> otaPackages = new ArrayList<>(); | 231 | List<OtaPackageInfo> otaPackages = new ArrayList<>(); |
222 | for (int i = 0; i < 165; i++) { | 232 | for (int i = 0; i < 165; i++) { |
223 | - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); | 233 | + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest(); |
224 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 234 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
225 | firmwareInfo.setType(FIRMWARE); | 235 | firmwareInfo.setType(FIRMWARE); |
226 | firmwareInfo.setTitle(TITLE); | 236 | firmwareInfo.setTitle(TITLE); |
227 | firmwareInfo.setVersion(VERSION + i); | 237 | firmwareInfo.setVersion(VERSION + i); |
238 | + firmwareInfo.setUsesUrl(false); | ||
228 | 239 | ||
229 | - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); | 240 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
230 | 241 | ||
231 | if (i > 100) { | 242 | if (i > 100) { |
232 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); | 243 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); |
@@ -263,13 +274,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -263,13 +274,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
263 | List<OtaPackageInfo> allOtaPackages = new ArrayList<>(); | 274 | List<OtaPackageInfo> allOtaPackages = new ArrayList<>(); |
264 | 275 | ||
265 | for (int i = 0; i < 165; i++) { | 276 | for (int i = 0; i < 165; i++) { |
266 | - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); | 277 | + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest(); |
267 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 278 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
268 | firmwareInfo.setType(FIRMWARE); | 279 | firmwareInfo.setType(FIRMWARE); |
269 | firmwareInfo.setTitle(TITLE); | 280 | firmwareInfo.setTitle(TITLE); |
270 | firmwareInfo.setVersion(VERSION + i); | 281 | firmwareInfo.setVersion(VERSION + i); |
282 | + firmwareInfo.setUsesUrl(false); | ||
271 | 283 | ||
272 | - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); | 284 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
273 | 285 | ||
274 | if (i > 100) { | 286 | if (i > 100) { |
275 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); | 287 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); |
@@ -316,8 +328,8 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | @@ -316,8 +328,8 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes | ||
316 | Assert.assertEquals(allOtaPackages, allLoadedOtaPackages); | 328 | Assert.assertEquals(allOtaPackages, allLoadedOtaPackages); |
317 | } | 329 | } |
318 | 330 | ||
319 | - private OtaPackageInfo save(OtaPackageInfo firmwareInfo, boolean isUrl) throws Exception { | ||
320 | - return doPost("/api/otaPackage?isUrl=" + isUrl, firmwareInfo, OtaPackageInfo.class); | 331 | + private OtaPackageInfo save(SaveOtaPackageInfoRequest firmwareInfo) throws Exception { |
332 | + return doPost("/api/otaPackage", firmwareInfo, OtaPackageInfo.class); | ||
321 | } | 333 | } |
322 | 334 | ||
323 | protected OtaPackageInfo savaData(String urlTemplate, MockMultipartFile content, String... params) throws Exception { | 335 | protected OtaPackageInfo savaData(String urlTemplate, MockMultipartFile content, String... params) throws Exception { |
common/data/src/main/java/org/thingsboard/server/common/data/SaveOtaPackageInfoRequest.java
0 → 100644
1 | +/** | ||
2 | + * Copyright © 2016-2021 The Thingsboard Authors | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | +package org.thingsboard.server.common.data; | ||
17 | + | ||
18 | +import lombok.Data; | ||
19 | +import lombok.EqualsAndHashCode; | ||
20 | +import lombok.NoArgsConstructor; | ||
21 | + | ||
22 | +@Data | ||
23 | +@EqualsAndHashCode(callSuper = true) | ||
24 | +@NoArgsConstructor | ||
25 | +public class SaveOtaPackageInfoRequest extends OtaPackageInfo{ | ||
26 | + boolean usesUrl; | ||
27 | + | ||
28 | + public SaveOtaPackageInfoRequest(OtaPackageInfo otaPackageInfo, boolean usesUrl) { | ||
29 | + super(otaPackageInfo); | ||
30 | + this.usesUrl = usesUrl; | ||
31 | + } | ||
32 | + | ||
33 | + public SaveOtaPackageInfoRequest(SaveOtaPackageInfoRequest saveOtaPackageInfoRequest) { | ||
34 | + super(saveOtaPackageInfoRequest); | ||
35 | + this.usesUrl = saveOtaPackageInfoRequest.isUsesUrl(); | ||
36 | + } | ||
37 | +} |