mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Modify android disenroll device API to support permanently delete device
This commit is contained in:
parent
b00e84db0b
commit
8efd8c74db
@ -63,6 +63,11 @@ public class TestDeviceManager implements DeviceManager {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteDevice(DeviceIdentifier deviceId, Device device) throws DeviceManagementException {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||
return true;
|
||||
|
||||
@ -15,6 +15,22 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 2019, Entgra (pvt) Ltd. (http://entgra.io) All Rights Reserved.
|
||||
*
|
||||
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.wso2.carbon.mdm.services.android.services;
|
||||
|
||||
@ -40,6 +56,7 @@ import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.List;
|
||||
@ -406,6 +423,10 @@ public interface DeviceManagementService {
|
||||
@ApiParam(
|
||||
name = "id",
|
||||
value = "The unique device identifier.")
|
||||
@PathParam("id") String id);
|
||||
@PathParam("id") String id,
|
||||
@ApiParam(
|
||||
name = "permanentDelete",
|
||||
value = "Boolean flag indicating whether to permanently delete the device.")
|
||||
@QueryParam("permanentDelete") boolean permanentDelete);
|
||||
|
||||
}
|
||||
|
||||
@ -78,6 +78,7 @@ import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.ArrayList;
|
||||
@ -446,26 +447,39 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
||||
@DELETE
|
||||
@Path("/{id}")
|
||||
@Override
|
||||
public Response disEnrollDevice(@PathParam("id") String id) {
|
||||
public Response disEnrollDevice(@PathParam("id") String id,
|
||||
@QueryParam("permanentDelete") boolean permanentDelete) {
|
||||
boolean result;
|
||||
DeviceIdentifier deviceIdentifier = AndroidDeviceUtils.convertToDeviceIdentifierObject(id);
|
||||
try {
|
||||
result = AndroidAPIUtils.getDeviceManagementService().disenrollDevice(deviceIdentifier);
|
||||
if (permanentDelete) {
|
||||
result = AndroidAPIUtils.getDeviceManagementService().deleteDevice(deviceIdentifier);
|
||||
} else {
|
||||
result = AndroidAPIUtils.getDeviceManagementService().disenrollDevice(deviceIdentifier);
|
||||
}
|
||||
if (result) {
|
||||
String msg = "Android device that carries id '" + id + "' is successfully ";
|
||||
Message responseMessage = new Message();
|
||||
responseMessage.setResponseCode(Response.Status.OK.toString());
|
||||
responseMessage.setResponseMessage("Android device that carries id '" + id +
|
||||
"' has successfully dis-enrolled");
|
||||
if (permanentDelete) {
|
||||
responseMessage.setResponseMessage(msg + "deleted");
|
||||
} else {
|
||||
responseMessage.setResponseMessage(msg + "dis-enrolled");
|
||||
}
|
||||
return Response.status(Response.Status.OK).entity(responseMessage).build();
|
||||
} else {
|
||||
Message responseMessage = new Message();
|
||||
responseMessage.setResponseCode(Response.Status.NOT_FOUND.toString());
|
||||
responseMessage.setResponseMessage("Android device that carries id '" + id +
|
||||
"' has not been dis-enrolled");
|
||||
responseMessage.setResponseMessage("Android device that carries id '" + id + "' is not available");
|
||||
return Response.status(Response.Status.NOT_FOUND).entity(responseMessage).build();
|
||||
}
|
||||
} catch (DeviceManagementException e) {
|
||||
String msg = "Error occurred while dis-enrolling the Android device that carries the id '" + id + "'";
|
||||
String msg = "Error occurred while %s the Android device that carries the id '" + id + "'";
|
||||
if (permanentDelete) {
|
||||
msg = String.format(msg, "deleting");
|
||||
} else {
|
||||
msg = String.format(msg, "dis-enrolling");
|
||||
}
|
||||
log.error(msg, e);
|
||||
throw new UnexpectedServerErrorException(
|
||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
||||
|
||||
@ -300,7 +300,7 @@ public class DeviceManagementServiceTests {
|
||||
public void testDisEnrollDeviceSuccess()
|
||||
throws DeviceManagementException, OperationManagementException, InvalidDeviceException {
|
||||
mockDeviceManagementService();
|
||||
Response response = deviceManagementService.disEnrollDevice(TestUtils.getDeviceId());
|
||||
Response response = deviceManagementService.disEnrollDevice(TestUtils.getDeviceId(), false);
|
||||
Assert.assertNotNull(response);
|
||||
Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode());
|
||||
}
|
||||
@ -309,7 +309,7 @@ public class DeviceManagementServiceTests {
|
||||
public void testDisenrollUnSuccess()
|
||||
throws DeviceManagementException, OperationManagementException, InvalidDeviceException {
|
||||
mockDeviceManagementService();
|
||||
Response response = deviceManagementService.disEnrollDevice("1234");
|
||||
Response response = deviceManagementService.disEnrollDevice("1234", false);
|
||||
Assert.assertNotNull(response);
|
||||
Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
|
||||
}
|
||||
|
||||
@ -220,6 +220,12 @@ public class AndroidDeviceManager implements DeviceManager {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteDevice(DeviceIdentifier deviceId, Device device) throws DeviceManagementException {
|
||||
//Returning false since AndroidDeviceManager is not used instead DeviceTypeManager is used.
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||
boolean isEnrolled = false;
|
||||
|
||||
@ -168,6 +168,12 @@ public class WindowsDeviceManager implements DeviceManager {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteDevice(DeviceIdentifier deviceId, Device device) throws DeviceManagementException {
|
||||
//Returning false since WindowsDeviceManager is not used instead DeviceTypeManager is used.
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||
boolean isEnrolled = false;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user