mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Seperate android API logics
This commit is contained in:
parent
e3c6bb319b
commit
f35050c24a
@ -65,6 +65,7 @@ import org.wso2.carbon.device.mgt.mobile.android.common.exception.BadRequestExce
|
|||||||
import org.wso2.carbon.device.mgt.mobile.android.common.exception.EnterpriseServiceException;
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.EnterpriseServiceException;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.common.exception.NotFoundException;
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.NotFoundException;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.common.exception.UnexpectedServerErrorException;
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.UnexpectedServerErrorException;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.android.common.spi.AndroidService;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidAPIUtils;
|
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidAPIUtils;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidDeviceUtils;
|
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidDeviceUtils;
|
||||||
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
||||||
@ -94,10 +95,7 @@ import java.util.List;
|
|||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
||||||
|
|
||||||
private static final String OPERATION_ERROR_STATUS = "ERROR";
|
|
||||||
private static final Log log = LogFactory.getLog(DeviceManagementAPIImpl.class);
|
private static final Log log = LogFactory.getLog(DeviceManagementAPIImpl.class);
|
||||||
public static final String GOOGLE_AFW_EMM_ANDROID_ID = "googleEMMAndroidId";
|
|
||||||
public static final String GOOGLE_AFW_DEVICE_ID = "googleEMMDeviceId";
|
|
||||||
|
|
||||||
@PUT
|
@PUT
|
||||||
@Path("/{id}/applications")
|
@Path("/{id}/applications")
|
||||||
@ -107,30 +105,9 @@ public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
|||||||
@Size(min = 2, max = 45)
|
@Size(min = 2, max = 45)
|
||||||
@Pattern(regexp = "^[A-Za-z0-9]*$")
|
@Pattern(regexp = "^[A-Za-z0-9]*$")
|
||||||
String id, List<AndroidApplication> androidApplications) {
|
String id, List<AndroidApplication> androidApplications) {
|
||||||
Application application;
|
|
||||||
List<Application> applications = new ArrayList<>();
|
|
||||||
for (AndroidApplication androidApplication : androidApplications) {
|
|
||||||
application = new Application();
|
|
||||||
application.setPlatform(androidApplication.getPlatform());
|
|
||||||
application.setCategory(androidApplication.getCategory());
|
|
||||||
application.setName(androidApplication.getName());
|
|
||||||
application.setLocationUrl(androidApplication.getLocationUrl());
|
|
||||||
application.setImageUrl(androidApplication.getImageUrl());
|
|
||||||
application.setVersion(androidApplication.getVersion());
|
|
||||||
application.setType(androidApplication.getType());
|
|
||||||
application.setAppProperties(androidApplication.getAppProperties());
|
|
||||||
application.setApplicationIdentifier(androidApplication.getApplicationIdentifier());
|
|
||||||
application.setMemoryUsage(androidApplication.getMemoryUsage());
|
|
||||||
applications.add(application);
|
|
||||||
}
|
|
||||||
Message responseMessage = new Message();
|
|
||||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
|
||||||
deviceIdentifier.setId(id);
|
|
||||||
deviceIdentifier.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
|
|
||||||
try {
|
try {
|
||||||
AndroidAPIUtils.getApplicationManagerService().
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
updateApplicationListInstalledInDevice(deviceIdentifier, applications);
|
Message responseMessage = androidService.updateApplicationList(id, androidApplications);
|
||||||
responseMessage.setResponseMessage("Device information has modified successfully.");
|
|
||||||
return Response.status(Response.Status.ACCEPTED).entity(responseMessage).build();
|
return Response.status(Response.Status.ACCEPTED).entity(responseMessage).build();
|
||||||
} catch (ApplicationManagementException e) {
|
} catch (ApplicationManagementException e) {
|
||||||
String msg = "Error occurred while modifying the application list.";
|
String msg = "Error occurred while modifying the application list.";
|
||||||
@ -154,42 +131,13 @@ public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
|||||||
}
|
}
|
||||||
DeviceIdentifier deviceIdentifier = AndroidDeviceUtils.convertToDeviceIdentifierObject(id);
|
DeviceIdentifier deviceIdentifier = AndroidDeviceUtils.convertToDeviceIdentifierObject(id);
|
||||||
try {
|
try {
|
||||||
if (!AndroidDeviceUtils.isValidDeviceIdentifier(deviceIdentifier)) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String msg = "Device not found for identifier '" + id + "'";
|
androidService.getPendingOperations(id, resultOperations);
|
||||||
log.error(msg);
|
|
||||||
return Response.status(Response.Status.NOT_FOUND).entity(msg).build();
|
|
||||||
}
|
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Invoking Android pending operations:" + id);
|
|
||||||
}
|
|
||||||
if (resultOperations != null && !resultOperations.isEmpty()) {
|
|
||||||
updateOperations(id, resultOperations);
|
|
||||||
}
|
|
||||||
} catch (OperationManagementException e) {
|
|
||||||
String msg = "Issue in retrieving operation management service instance";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
} catch (PolicyComplianceException e) {
|
|
||||||
String msg = "Issue in updating Monitoring operation";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
String msg = "Issue in retrieving device management service instance";
|
String msg = "Issue in retrieving device management service instance";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
throw new UnexpectedServerErrorException(
|
throw new UnexpectedServerErrorException(
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
||||||
} catch (ApplicationManagementException e) {
|
|
||||||
String msg = "Issue in retrieving application management service instance";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
} catch (NotificationManagementException e) {
|
|
||||||
String msg = "Issue in retrieving Notification management service instance";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<? extends Operation> pendingOperations;
|
List<? extends Operation> pendingOperations;
|
||||||
@ -204,30 +152,7 @@ public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
|||||||
return Response.status(Response.Status.CREATED).entity(pendingOperations).build();
|
return Response.status(Response.Status.CREATED).entity(pendingOperations).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateOperations(String deviceId, List<? extends Operation> operations)
|
|
||||||
throws OperationManagementException, PolicyComplianceException,
|
|
||||||
ApplicationManagementException, NotificationManagementException, DeviceManagementException {
|
|
||||||
for (org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation : operations) {
|
|
||||||
AndroidDeviceUtils.updateOperation(deviceId, operation);
|
|
||||||
if (OPERATION_ERROR_STATUS.equals(operation.getStatus().toString())) {
|
|
||||||
org.wso2.carbon.device.mgt.common.notification.mgt.Notification notification = new
|
|
||||||
org.wso2.carbon.device.mgt.common.notification.mgt.Notification();
|
|
||||||
DeviceIdentifier id = new DeviceIdentifier();
|
|
||||||
id.setId(deviceId);
|
|
||||||
id.setType(AndroidConstants.DEVICE_TYPE_ANDROID);
|
|
||||||
String deviceName = AndroidAPIUtils.getDeviceManagementService().getDevice(id, false).getName();
|
|
||||||
notification.setOperationId(operation.getId());
|
|
||||||
notification.setStatus(org.wso2.carbon.device.mgt.common.notification.mgt.Notification.
|
|
||||||
Status.NEW.toString());
|
|
||||||
notification.setDescription(operation.getCode() + " operation failed to execute on device " +
|
|
||||||
deviceName + " (ID: " + deviceId + ")");
|
|
||||||
AndroidAPIUtils.getNotificationManagementService().addNotification(id, notification);
|
|
||||||
}
|
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Updating operation '" + operation.toString() + "'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Override
|
@Override
|
||||||
@ -239,144 +164,15 @@ public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
|||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
String token = null;
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
Device device = new Device();
|
Response response = androidService.enrollDevice(androidDevice);
|
||||||
device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
|
return response;
|
||||||
device.setEnrolmentInfo(androidDevice.getEnrolmentInfo());
|
|
||||||
device.getEnrolmentInfo().setOwner(AndroidAPIUtils.getAuthenticatedUser());
|
|
||||||
device.setDeviceInfo(androidDevice.getDeviceInfo());
|
|
||||||
device.setDeviceIdentifier(androidDevice.getDeviceIdentifier());
|
|
||||||
device.setDescription(androidDevice.getDescription());
|
|
||||||
device.setName(androidDevice.getName());
|
|
||||||
device.setFeatures(androidDevice.getFeatures());
|
|
||||||
device.setProperties(androidDevice.getProperties());
|
|
||||||
|
|
||||||
String googleEMMAndroidId = null;
|
|
||||||
String googleEMMDeviceId = null;
|
|
||||||
if (androidDevice.getProperties() != null) {
|
|
||||||
for (Device.Property property : androidDevice.getProperties()) {
|
|
||||||
if (property.getName().equals(GOOGLE_AFW_EMM_ANDROID_ID)) {
|
|
||||||
googleEMMAndroidId = property.getValue();
|
|
||||||
} else if (property.getName().equals(GOOGLE_AFW_DEVICE_ID)) {
|
|
||||||
googleEMMDeviceId = property.getValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (googleEMMAndroidId != null && googleEMMDeviceId != null) {
|
|
||||||
EnterpriseUser user = new EnterpriseUser();
|
|
||||||
user.setAndroidPlayDeviceId(googleEMMAndroidId);
|
|
||||||
user.setEmmDeviceIdentifier(googleEMMDeviceId);
|
|
||||||
AndroidEnterpriseAPIImpl enterpriseService = new AndroidEnterpriseAPIImpl();
|
|
||||||
token = enterpriseService.insertUser(user);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
boolean status = AndroidAPIUtils.getDeviceManagementService().enrollDevice(device);
|
|
||||||
if (status) {
|
|
||||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(androidDevice.getDeviceIdentifier(),
|
|
||||||
device.getType());
|
|
||||||
|
|
||||||
//Immediately update location information from initial payload
|
|
||||||
DeviceLocation deviceLocation = extractLocation(deviceIdentifier, androidDevice.getProperties());
|
|
||||||
if (deviceLocation != null) {
|
|
||||||
try {
|
|
||||||
DeviceInformationManager informationManager = AndroidAPIUtils
|
|
||||||
.getDeviceInformationManagerService();
|
|
||||||
informationManager.addDeviceLocation(deviceLocation);
|
|
||||||
} catch (DeviceDetailsMgtException e) {
|
|
||||||
String msg = "Error occurred while updating the device location upon android " +
|
|
||||||
"', which carries the id '" + androidDevice.getDeviceIdentifier() + "'";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Adding Tasks to get device information
|
|
||||||
List<DeviceIdentifier> deviceIdentifiers = new ArrayList<>();
|
|
||||||
deviceIdentifiers.add(deviceIdentifier);
|
|
||||||
|
|
||||||
List<String> taskOperaions = new ArrayList<>();
|
|
||||||
taskOperaions.add(AndroidConstants.OperationCodes.APPLICATION_LIST);
|
|
||||||
taskOperaions.add(AndroidConstants.OperationCodes.DEVICE_INFO);
|
|
||||||
taskOperaions.add(AndroidConstants.OperationCodes.DEVICE_LOCATION);
|
|
||||||
|
|
||||||
for (String str : taskOperaions) {
|
|
||||||
CommandOperation operation = new CommandOperation();
|
|
||||||
operation.setEnabled(true);
|
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
operation.setCode(str);
|
|
||||||
AndroidAPIUtils.getDeviceManagementService().
|
|
||||||
addOperation(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID,
|
|
||||||
operation, deviceIdentifiers);
|
|
||||||
}
|
|
||||||
PolicyManagerService policyManagerService = AndroidAPIUtils.getPolicyManagerService();
|
|
||||||
Policy effectivePolicy = policyManagerService.
|
|
||||||
getEffectivePolicy(new DeviceIdentifier(androidDevice.getDeviceIdentifier(), device.getType()));
|
|
||||||
|
|
||||||
if (effectivePolicy != null) {
|
|
||||||
List<ProfileFeature> effectiveProfileFeatures = effectivePolicy.getProfile().
|
|
||||||
getProfileFeaturesList();
|
|
||||||
for (ProfileFeature feature : effectiveProfileFeatures) {
|
|
||||||
if (AndroidConstants.ApplicationInstall.ENROLLMENT_APP_INSTALL_FEATURE_CODE
|
|
||||||
.equals(feature.getFeatureCode())) {
|
|
||||||
AndroidDeviceUtils.installEnrollmentApplications(feature, deviceIdentifier);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Message responseMessage = new Message();
|
|
||||||
responseMessage.setResponseCode(Response.Status.OK.toString());
|
|
||||||
if (token == null) {
|
|
||||||
responseMessage.setResponseMessage("Android device, which carries the id '" +
|
|
||||||
androidDevice.getDeviceIdentifier() + "' has successfully been enrolled");
|
|
||||||
} else {
|
|
||||||
responseMessage.setResponseMessage("Google response token" + token);
|
|
||||||
}
|
|
||||||
return Response.status(Response.Status.OK).entity(responseMessage).build();
|
|
||||||
} else {
|
|
||||||
Message responseMessage = new Message();
|
|
||||||
responseMessage.setResponseCode(Response.Status.INTERNAL_SERVER_ERROR.toString());
|
|
||||||
responseMessage.setResponseMessage("Failed to enroll '" +
|
|
||||||
device.getType() + "' device, which carries the id '" +
|
|
||||||
androidDevice.getDeviceIdentifier() + "'");
|
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(responseMessage).build();
|
|
||||||
}
|
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
String msg = "Error occurred while enrolling the android, which carries the id '" +
|
String msg = "Error occurred while enrolling the android, which carries the id '" +
|
||||||
androidDevice.getDeviceIdentifier() + "'";
|
androidDevice.getDeviceIdentifier() + "'";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
throw new UnexpectedServerErrorException(
|
throw new UnexpectedServerErrorException(
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
||||||
} catch (PolicyManagementException e) {
|
|
||||||
String msg = "Error occurred while enforcing default enrollment policy upon android " +
|
|
||||||
"', which carries the id '" +
|
|
||||||
androidDevice.getDeviceIdentifier() + "'";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
} catch (OperationManagementException e) {
|
|
||||||
String msg = "Error occurred while enforcing default enrollment policy upon android " +
|
|
||||||
"', which carries the id '" +
|
|
||||||
androidDevice.getDeviceIdentifier() + "'";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String msg = "Error occurred while enforcing default enrollment policy upon android " +
|
|
||||||
"', which carries the id '" +
|
|
||||||
androidDevice.getDeviceIdentifier() + "'";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
} catch (EnterpriseServiceException e) {
|
|
||||||
String msg = "Error occurred while adding user via Google Apis '" +
|
|
||||||
androidDevice.getDeviceIdentifier() + "'";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -386,20 +182,10 @@ public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
|||||||
public Response isEnrolled(@PathParam("id") String id, @HeaderParam("If-Modified-Since") String ifModifiedSince) {
|
public Response isEnrolled(@PathParam("id") String id, @HeaderParam("If-Modified-Since") String ifModifiedSince) {
|
||||||
DeviceIdentifier deviceIdentifier = AndroidDeviceUtils.convertToDeviceIdentifierObject(id);
|
DeviceIdentifier deviceIdentifier = AndroidDeviceUtils.convertToDeviceIdentifierObject(id);
|
||||||
try {
|
try {
|
||||||
Device device = AndroidAPIUtils.getDeviceManagementService().getDevice(deviceIdentifier);
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
if (device != null) {
|
Message responseMessage = androidService.isEnrolled(id, deviceIdentifier);
|
||||||
String status = String.valueOf(device.getEnrolmentInfo().getStatus());
|
return Response.status(Response.Status.NOT_FOUND).entity(responseMessage).build();
|
||||||
Message responseMessage = new Message();
|
|
||||||
responseMessage.setResponseCode(Response.Status.OK.toString());
|
|
||||||
responseMessage
|
|
||||||
.setResponseMessage("Status of android device that carries the id '" + id + "' is " + status);
|
|
||||||
return Response.status(Response.Status.OK).entity(responseMessage).build();
|
|
||||||
} else {
|
|
||||||
Message responseMessage = new Message();
|
|
||||||
responseMessage.setResponseCode(Response.Status.NOT_FOUND.toString());
|
|
||||||
responseMessage.setResponseMessage("No Android device is found upon the id '" + id + "'");
|
|
||||||
return Response.status(Response.Status.NOT_FOUND).entity(responseMessage).build();
|
|
||||||
}
|
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
String msg = "Error occurred while checking enrollment status of the device.";
|
String msg = "Error occurred while checking enrollment status of the device.";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
@ -412,52 +198,8 @@ public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
|||||||
@Path("/{id}")
|
@Path("/{id}")
|
||||||
@Override
|
@Override
|
||||||
public Response modifyEnrollment(@PathParam("id") String id, @Valid AndroidDevice androidDevice) {
|
public Response modifyEnrollment(@PathParam("id") String id, @Valid AndroidDevice androidDevice) {
|
||||||
Device device;
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
|
Device device = androidService.modifyEnrollment(id, androidDevice);
|
||||||
deviceIdentifier.setId(id);
|
|
||||||
deviceIdentifier.setType(AndroidConstants.DEVICE_TYPE_ANDROID);
|
|
||||||
try {
|
|
||||||
device = AndroidAPIUtils.getDeviceManagementService().getDevice(deviceIdentifier);
|
|
||||||
} catch (DeviceManagementException e) {
|
|
||||||
String msg = "Error occurred while getting enrollment details of the Android device that carries the id '" +
|
|
||||||
id + "'";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (androidDevice == null) {
|
|
||||||
String errorMessage = "The payload of the android device enrollment is incorrect.";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
if (device == null) {
|
|
||||||
String errorMessage = "The device to be modified doesn't exist.";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new NotFoundException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
if(androidDevice.getEnrolmentInfo() != null){
|
|
||||||
device.setEnrolmentInfo(device.getEnrolmentInfo());
|
|
||||||
}
|
|
||||||
device.getEnrolmentInfo().setOwner(AndroidAPIUtils.getAuthenticatedUser());
|
|
||||||
if(androidDevice.getDeviceInfo() != null) {
|
|
||||||
device.setDeviceInfo(androidDevice.getDeviceInfo());
|
|
||||||
}
|
|
||||||
device.setDeviceIdentifier(androidDevice.getDeviceIdentifier());
|
|
||||||
if(androidDevice.getDescription() != null) {
|
|
||||||
device.setDescription(androidDevice.getDescription());
|
|
||||||
}
|
|
||||||
if(androidDevice.getName() != null) {
|
|
||||||
device.setName(androidDevice.getName());
|
|
||||||
}
|
|
||||||
if(androidDevice.getFeatures() != null) {
|
|
||||||
device.setFeatures(androidDevice.getFeatures());
|
|
||||||
}
|
|
||||||
if(androidDevice.getProperties() != null) {
|
|
||||||
device.setProperties(androidDevice.getProperties());
|
|
||||||
}
|
|
||||||
boolean result;
|
boolean result;
|
||||||
try {
|
try {
|
||||||
device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
|
device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
|
||||||
@ -488,11 +230,10 @@ public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
|||||||
@Path("/{id}")
|
@Path("/{id}")
|
||||||
@Override
|
@Override
|
||||||
public Response disEnrollDevice(@PathParam("id") String id) {
|
public Response disEnrollDevice(@PathParam("id") String id) {
|
||||||
boolean result;
|
|
||||||
DeviceIdentifier deviceIdentifier = AndroidDeviceUtils.convertToDeviceIdentifierObject(id);
|
|
||||||
try {
|
try {
|
||||||
AndroidDeviceUtils.updateDisEnrollOperationStatus(deviceIdentifier);
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
result = AndroidAPIUtils.getDeviceManagementService().disenrollDevice(deviceIdentifier);
|
boolean result = androidService.disEnrollDevice(id);
|
||||||
if (result) {
|
if (result) {
|
||||||
String msg = "Android device that carries id '" + id + "' is successfully ";
|
String msg = "Android device that carries id '" + id + "' is successfully ";
|
||||||
Message responseMessage = new Message();
|
Message responseMessage = new Message();
|
||||||
@ -514,58 +255,5 @@ public class DeviceManagementAPIImpl implements DeviceManagementAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Extracts the device location
|
|
||||||
*
|
|
||||||
* @param deviceIdentifier
|
|
||||||
* @param properties
|
|
||||||
* @return returns null when location not found
|
|
||||||
*/
|
|
||||||
private DeviceLocation extractLocation(DeviceIdentifier deviceIdentifier, List<Device.Property> properties)
|
|
||||||
throws DeviceManagementException {
|
|
||||||
|
|
||||||
DeviceLocation location = null;
|
|
||||||
String latitude = "", longitude = "", altitude = "", speed = "", bearing = "", distance = "";
|
|
||||||
|
|
||||||
if (properties == null) return null;
|
|
||||||
|
|
||||||
for (Device.Property property : properties) {
|
|
||||||
String propertyName = property.getName();
|
|
||||||
if (propertyName == null) continue;
|
|
||||||
if (propertyName.equals("LATITUDE")) {
|
|
||||||
latitude = property.getValue();
|
|
||||||
}
|
|
||||||
if (propertyName.equals("LONGITUDE")) {
|
|
||||||
longitude = property.getValue();
|
|
||||||
}
|
|
||||||
if (propertyName.equals("ALTITUDE")) {
|
|
||||||
altitude = property.getValue();
|
|
||||||
}
|
|
||||||
if (propertyName.equals("SPEED")) {
|
|
||||||
speed = property.getValue();
|
|
||||||
}
|
|
||||||
if (propertyName.equals("BEARING")) {
|
|
||||||
bearing = property.getValue();
|
|
||||||
}
|
|
||||||
if (propertyName.equals("DISTANCE")) {
|
|
||||||
distance = property.getValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(latitude) && StringUtils.isNotBlank(longitude) &&
|
|
||||||
StringUtils.isNotBlank(altitude) && StringUtils.isNotBlank(speed) &&
|
|
||||||
StringUtils.isNotBlank(bearing) && StringUtils.isNotBlank(distance)) {
|
|
||||||
location = new DeviceLocation();
|
|
||||||
location.setLatitude(Double.valueOf(latitude));
|
|
||||||
location.setLongitude(Double.valueOf(longitude));
|
|
||||||
location.setAltitude(Double.valueOf(altitude));
|
|
||||||
location.setSpeed(Float.valueOf(speed));
|
|
||||||
location.setBearing(Float.valueOf(bearing));
|
|
||||||
location.setDistance(Double.valueOf(distance));
|
|
||||||
location.setDeviceIdentifier(deviceIdentifier);
|
|
||||||
Device savedDevice = AndroidAPIUtils.getDeviceManagementService().getDevice(deviceIdentifier, false);
|
|
||||||
location.setDeviceId(savedDevice.getId());
|
|
||||||
}
|
|
||||||
return location;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -88,6 +88,7 @@ import org.wso2.carbon.device.mgt.mobile.android.common.bean.wrapper.WifiBeanWra
|
|||||||
import org.wso2.carbon.device.mgt.mobile.android.common.bean.wrapper.WipeDataBeanWrapper;
|
import org.wso2.carbon.device.mgt.mobile.android.common.bean.wrapper.WipeDataBeanWrapper;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.common.exception.BadRequestException;
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.BadRequestException;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.common.exception.UnexpectedServerErrorException;
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.UnexpectedServerErrorException;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.android.common.spi.AndroidService;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidAPIUtils;
|
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidAPIUtils;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidDeviceUtils;
|
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidDeviceUtils;
|
||||||
|
|
||||||
@ -120,34 +121,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
@Override
|
@Override
|
||||||
public Response fileTransfer(FileTransferBeanWrapper fileTransferBeanWrapper) {
|
public Response fileTransfer(FileTransferBeanWrapper fileTransferBeanWrapper) {
|
||||||
try {
|
try {
|
||||||
if (fileTransferBeanWrapper == null || fileTransferBeanWrapper.getOperation() == null
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
|| fileTransferBeanWrapper.getDeviceIDs() == null) {
|
Activity activity = androidService.fileTransfer(fileTransferBeanWrapper);
|
||||||
String errorMessage = "The payload of the file transfer operation is incorrect.";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Invoking Android file transfer operation for " + fileTransferBeanWrapper.getDeviceIDs());
|
|
||||||
}
|
|
||||||
FileTransfer file = fileTransferBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
if (fileTransferBeanWrapper.isUpload()) {
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.FILE_DOWNLOAD);
|
|
||||||
} else {
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.FILE_UPLOAD);
|
|
||||||
}
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setEnabled(true);
|
|
||||||
operation.setPayLoad(file.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils
|
|
||||||
.getOperationResponse(fileTransferBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers ( " + fileTransferBeanWrapper.getDeviceIDs() + " ) found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance for file transfer operation";
|
String errorMessage = "Issue in retrieving operation management service instance for file transfer operation";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -165,25 +141,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (deviceLockBeanWrapper == null || deviceLockBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "Lock bean is empty.";
|
Activity activity = androidService.configureDeviceLock(deviceLockBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
DeviceLock lock = deviceLockBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.DEVICE_LOCK);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setEnabled(true);
|
|
||||||
operation.setPayLoad(lock.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceLockBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -201,17 +161,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.DEVICE_UNLOCK);
|
Activity activity = androidService.configureDeviceUnlock(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
operation.setEnabled(true);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -229,16 +181,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.DEVICE_LOCATION);
|
Activity activity = androidService.getDeviceLocation(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -256,16 +201,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.CLEAR_PASSWORD);
|
Activity activity = androidService.removePassword(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance.";
|
String errorMessage = "Issue in retrieving operation management service instance.";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -283,24 +221,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (cameraBeanWrapper == null || cameraBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the configure camera operation is incorrect.";
|
Activity activity = androidService.configureCamera(cameraBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
Camera camera = cameraBeanWrapper.getOperation();
|
|
||||||
CommandOperation operation = new CommandOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.CAMERA);
|
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
operation.setEnabled(camera.isEnabled());
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(cameraBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -318,16 +241,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.DEVICE_INFO);
|
Activity activity = androidService.getDeviceInformation(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -344,16 +260,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.LOGCAT);
|
Activity activity = androidService.getDeviceLogcat(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -370,16 +279,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.ENTERPRISE_WIPE);
|
Activity activity = androidService.wipeDevice(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -397,24 +299,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (wipeDataBeanWrapper == null || wipeDataBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "WipeData bean is empty.";
|
Activity activity = androidService.wipeData(wipeDataBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
WipeData wipeData = wipeDataBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.WIPE_DATA);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(wipeData.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(wipeDataBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -432,16 +319,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.APPLICATION_LIST);
|
Activity activity = androidService.getApplications(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -459,16 +339,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.DEVICE_RING);
|
Activity activity = androidService.ringDevice(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -486,16 +359,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.DEVICE_REBOOT);
|
Activity activity = androidService.rebootDevice(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -513,16 +379,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.CHANGE_LOCK_TASK_MODE);
|
Activity activity = androidService.changeLockTask(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -540,17 +399,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CommandOperation operation = new CommandOperation();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
operation.setCode(AndroidConstants.OperationCodes.DEVICE_MUTE);
|
Activity activity = androidService.muteDevice(deviceIDs);
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
operation.setEnabled(true);
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(deviceIDs, operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -569,31 +420,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (applicationInstallationBeanWrapper == null || applicationInstallationBeanWrapper.getOperation() ==
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
null) {
|
Activity activity = androidService.installApplication(applicationInstallationBeanWrapper);
|
||||||
String errorMessage = "The payload of the application installing operation is incorrect";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
|
|
||||||
ApplicationInstallation applicationInstallation = applicationInstallationBeanWrapper.getOperation();
|
|
||||||
validateApplicationUrl(applicationInstallation.getUrl());
|
|
||||||
validateApplicationType(applicationInstallation.getType());
|
|
||||||
validateScheduleDate(applicationInstallation.getSchedule());
|
|
||||||
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.INSTALL_APPLICATION);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(applicationInstallation.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils
|
|
||||||
.getOperationResponse(applicationInstallationBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -611,30 +440,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (applicationUpdateBeanWrapper == null || applicationUpdateBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the application update operation is incorrect";
|
Activity activity = androidService.updateApplication(applicationUpdateBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
ApplicationUpdate applicationUpdate = applicationUpdateBeanWrapper.getOperation();
|
|
||||||
validateApplicationUrl(applicationUpdate.getUrl());
|
|
||||||
validateApplicationType(applicationUpdate.getType());
|
|
||||||
validateScheduleDate(applicationUpdate.getSchedule());
|
|
||||||
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.UPDATE_APPLICATION);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(applicationUpdate.toJSON());
|
|
||||||
|
|
||||||
Activity activity = AndroidDeviceUtils
|
|
||||||
.getOperationResponse(applicationUpdateBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -653,28 +461,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (applicationUninstallationBeanWrapper == null ||
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
applicationUninstallationBeanWrapper.getOperation() == null) {
|
Activity activity = androidService.uninstallApplication(applicationUninstallationBeanWrapper);
|
||||||
String errorMessage = "The payload of the application uninstalling operation is incorrect";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
ApplicationUninstallation applicationUninstallation = applicationUninstallationBeanWrapper.getOperation();
|
|
||||||
validateApplicationType(applicationUninstallation.getType());
|
|
||||||
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.UNINSTALL_APPLICATION);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(applicationUninstallation.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils
|
|
||||||
.getOperationResponse(applicationUninstallationBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -692,25 +481,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (blacklistApplicationsBeanWrapper == null || blacklistApplicationsBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the blacklisting apps operation is incorrect";
|
Activity activity = androidService.blacklistApplications(blacklistApplicationsBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
BlacklistApplications blacklistApplications = blacklistApplicationsBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.BLACKLIST_APPLICATIONS);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(blacklistApplications.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils
|
|
||||||
.getOperationResponse(blacklistApplicationsBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -728,27 +501,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (upgradeFirmwareBeanWrapper == null || upgradeFirmwareBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the upgrade firmware operation is incorrect";
|
Activity activity = androidService.upgradeFirmware(upgradeFirmwareBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
UpgradeFirmware upgradeFirmware = upgradeFirmwareBeanWrapper.getOperation();
|
|
||||||
validateScheduleDate(upgradeFirmware.getSchedule());
|
|
||||||
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.UPGRADE_FIRMWARE);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(upgradeFirmware.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils
|
|
||||||
.getOperationResponse(upgradeFirmwareBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -766,24 +521,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (vpnConfiguration == null || vpnConfiguration.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the VPN operation is incorrect";
|
Activity activity = androidService.configureVPN(vpnConfiguration);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
Vpn vpn = vpnConfiguration.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.VPN);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(vpn.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(vpnConfiguration.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -801,24 +541,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (notificationBeanWrapper == null || notificationBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the notification operation is incorrect";
|
Activity activity = androidService.sendNotification(notificationBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
Notification notification = notificationBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.NOTIFICATION);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(notification.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(notificationBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -836,25 +561,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (wifiBeanWrapper == null || wifiBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the wifi operation is incorrect";
|
Activity activity = androidService.configureWifi(wifiBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
Wifi wifi = wifiBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.WIFI);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(wifi.toJSON());
|
|
||||||
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(wifiBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -872,24 +581,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (encryptionBeanWrapper == null || encryptionBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the device encryption operation is incorrect";
|
Activity activity = androidService.encryptStorage(encryptionBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
DeviceEncryption deviceEncryption = encryptionBeanWrapper.getOperation();
|
|
||||||
CommandOperation operation = new CommandOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.ENCRYPT_STORAGE);
|
|
||||||
operation.setType(Operation.Type.COMMAND);
|
|
||||||
operation.setEnabled(deviceEncryption.isEncrypted());
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(encryptionBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -907,24 +601,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (lockCodeBeanWrapper == null || lockCodeBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the change lock code operation is incorrect";
|
Activity activity = androidService.changeLockCode(lockCodeBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
LockCode lockCode = lockCodeBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.CHANGE_LOCK_CODE);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(lockCode.toJSON());
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(lockCodeBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -942,26 +621,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (passwordPolicyBeanWrapper == null || passwordPolicyBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the change password policy operation is incorrect";
|
Activity activity = androidService.setPasswordPolicy(passwordPolicyBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
PasscodePolicy passcodePolicy = passwordPolicyBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.PASSCODE_POLICY);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(passcodePolicy.toJSON());
|
|
||||||
|
|
||||||
Activity activity = AndroidDeviceUtils
|
|
||||||
.getOperationResponse(passwordPolicyBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -979,26 +641,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
if (webClipBeanWrapper == null || webClipBeanWrapper.getOperation() == null) {
|
Activity activity = androidService.setWebClip(webClipBeanWrapper);
|
||||||
String errorMessage = "The payload of the add webclip operation is incorrect";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
WebClip webClip = webClipBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.WEBCLIP);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(webClip.toJSON());
|
|
||||||
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(webClipBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -1018,34 +663,9 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (globalProxyBeanWrapper == null || globalProxyBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the global proxy operation is incorrect";
|
Activity activity = androidService.setRecommendedGlobalProxy(globalProxyBeanWrapper);
|
||||||
log.error(errorMessage);
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400L).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
|
|
||||||
GlobalProxy globalProxy = globalProxyBeanWrapper.getOperation();
|
|
||||||
if (globalProxy.validateRequest()) {
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.GLOBAL_PROXY);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(globalProxy.toJSON());
|
|
||||||
|
|
||||||
Activity activity = AndroidDeviceUtils
|
|
||||||
.getOperationResponse(globalProxyBeanWrapper.getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
|
||||||
} else {
|
|
||||||
String errorMessage = "The payload of the global proxy operation is incorrect";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400L).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400L).setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -1103,29 +723,10 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (displayMessageBeanWrapper == null || displayMessageBeanWrapper.getOperation() == null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
String errorMessage = "The payload of the display message operation is incorrect";
|
Activity activity = androidService.configureDisplayMessage(displayMessageBeanWrapper);
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(HttpStatus.SC_BAD_REQUEST).
|
|
||||||
setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
DisplayMessage configureDisplayMessage = displayMessageBeanWrapper.getOperation();
|
|
||||||
ProfileOperation operation = new ProfileOperation();
|
|
||||||
operation.setCode(AndroidConstants.OperationCodes.DISPLAY_MESSAGE_CONFIGURATION);
|
|
||||||
operation.setType(Operation.Type.PROFILE);
|
|
||||||
operation.setPayLoad(configureDisplayMessage.toJSON());
|
|
||||||
|
|
||||||
Activity activity = AndroidDeviceUtils.getOperationResponse(displayMessageBeanWrapper.
|
|
||||||
getDeviceIDs(), operation);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(activity).build();
|
return Response.status(Response.Status.CREATED).entity(activity).build();
|
||||||
|
|
||||||
} catch (InvalidDeviceException e) {
|
|
||||||
String errorMessage = "Invalid Device Identifiers found.";
|
|
||||||
log.error(errorMessage, e);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(HttpStatus.SC_BAD_REQUEST).
|
|
||||||
setMessage(errorMessage).build());
|
|
||||||
} catch (OperationManagementException e) {
|
} catch (OperationManagementException e) {
|
||||||
String errorMessage = "Issue in retrieving operation management service instance";
|
String errorMessage = "Issue in retrieving operation management service instance";
|
||||||
log.error(errorMessage, e);
|
log.error(errorMessage, e);
|
||||||
@ -1135,60 +736,4 @@ public class DeviceManagementAdminAPIImpl implements DeviceManagementAdminAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void validateApplicationUrl(String apkUrl) {
|
|
||||||
try {
|
|
||||||
URL url = new URL(apkUrl);
|
|
||||||
URLConnection conn = url.openConnection();
|
|
||||||
if (((HttpURLConnection) conn).getResponseCode() != HttpURLConnection.HTTP_OK) {
|
|
||||||
String errorMessage = "URL is not pointed to a downloadable file.";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
} catch (MalformedURLException e) {
|
|
||||||
String errorMessage = "Malformed application url.";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
} catch (IOException e) {
|
|
||||||
String errorMessage = "Invalid application url.";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void validateApplicationType(String type) {
|
|
||||||
if (type != null) {
|
|
||||||
if (!"enterprise".equalsIgnoreCase(type)
|
|
||||||
&& !"public".equalsIgnoreCase(type)
|
|
||||||
&& !"webapp".equalsIgnoreCase(type)) {
|
|
||||||
String errorMessage = "Invalid application type.";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
String errorMessage = "Application type is missing.";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void validateScheduleDate(String dateString) {
|
|
||||||
try {
|
|
||||||
if (dateString != null && !dateString.isEmpty()) {
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
|
|
||||||
sdf.setLenient(false);
|
|
||||||
sdf.parse(dateString);
|
|
||||||
}
|
|
||||||
} catch (ParseException e) {
|
|
||||||
String errorMessage = "Issue in validating the schedule date";
|
|
||||||
log.error(errorMessage);
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMessage).build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,7 +72,7 @@ public class DeviceTypeConfigurationAPIImpl implements DeviceTypeConfigurationAP
|
|||||||
public Response getConfiguration(
|
public Response getConfiguration(
|
||||||
@HeaderParam("If-Modified-Since") String ifModifiedSince) {
|
@HeaderParam("If-Modified-Since") String ifModifiedSince) {
|
||||||
try {
|
try {
|
||||||
AndroidService androidService = AndroidAPIUtils.getAndroidnService();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
PlatformConfiguration platformConfiguration = androidService.getPlatformConfig();
|
PlatformConfiguration platformConfiguration = androidService.getPlatformConfig();
|
||||||
return Response.status(Response.Status.OK).entity(platformConfiguration).build();
|
return Response.status(Response.Status.OK).entity(platformConfiguration).build();
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
@ -89,7 +89,7 @@ public class DeviceTypeConfigurationAPIImpl implements DeviceTypeConfigurationAP
|
|||||||
public Response updateConfiguration(
|
public Response updateConfiguration(
|
||||||
@Valid AndroidPlatformConfiguration androidPlatformConfiguration) {
|
@Valid AndroidPlatformConfiguration androidPlatformConfiguration) {
|
||||||
try {
|
try {
|
||||||
AndroidService androidService = AndroidAPIUtils.getAndroidnService();
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
androidService.updateConfiguration(androidPlatformConfiguration);
|
androidService.updateConfiguration(androidPlatformConfiguration);
|
||||||
return Response.status(Response.Status.OK)
|
return Response.status(Response.Status.OK)
|
||||||
.entity("Android platform configuration has been updated successfully.").build();
|
.entity("Android platform configuration has been updated successfully.").build();
|
||||||
|
|||||||
@ -38,6 +38,7 @@ import org.wso2.carbon.device.mgt.mobile.android.common.bean.wrapper.EventBeanWr
|
|||||||
import org.wso2.carbon.device.mgt.mobile.android.common.exception.BadRequestException;
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.BadRequestException;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.common.exception.NotFoundException;
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.NotFoundException;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.common.exception.UnexpectedServerErrorException;
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.UnexpectedServerErrorException;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.android.common.spi.AndroidService;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidAPIUtils;
|
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidAPIUtils;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidDeviceUtils;
|
import org.wso2.carbon.device.mgt.mobile.android.core.util.AndroidDeviceUtils;
|
||||||
|
|
||||||
@ -75,17 +76,8 @@ public class EventReceiverAPIImpl implements EventReceiverAPI {
|
|||||||
}
|
}
|
||||||
Device device;
|
Device device;
|
||||||
try {
|
try {
|
||||||
if (!DeviceManagerUtil.isPublishLocationResponseEnabled()) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
return Response.status(Response.Status.ACCEPTED).entity("Event is publishing has not enabled.").build();
|
device = androidService.publishEvents(eventBeanWrapper);
|
||||||
}
|
|
||||||
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(eventBeanWrapper.getDeviceIdentifier(),
|
|
||||||
AndroidConstants.DEVICE_TYPE_ANDROID);
|
|
||||||
device = AndroidAPIUtils.getDeviceManagementService().getDevice(deviceIdentifier);
|
|
||||||
if (device != null && EnrolmentInfo.Status.ACTIVE != device.getEnrolmentInfo().getStatus()){
|
|
||||||
return Response.status(Response.Status.ACCEPTED).entity("Device is not in Active state.").build();
|
|
||||||
} else if (device == null){
|
|
||||||
return Response.status(Response.Status.ACCEPTED).entity("Device is not enrolled yet.").build();
|
|
||||||
}
|
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
log.error("Error occurred while checking Operation Analytics is Enabled.", e);
|
log.error("Error occurred while checking Operation Analytics is Enabled.", e);
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
|
||||||
@ -142,94 +134,8 @@ public class EventReceiverAPIImpl implements EventReceiverAPI {
|
|||||||
@QueryParam("type") String type,
|
@QueryParam("type") String type,
|
||||||
@HeaderParam("If-Modified-Since") String ifModifiedSince) {
|
@HeaderParam("If-Modified-Since") String ifModifiedSince) {
|
||||||
|
|
||||||
if (from != 0l && to != 0l && deviceId != null) {
|
AndroidService androidService = AndroidAPIUtils.getAndroidService();
|
||||||
return retrieveAlertFromDate(deviceId, from, to);
|
Response response = androidService.retrieveAlerts(deviceId, from, to, type, ifModifiedSince);
|
||||||
} else if (deviceId != null && type != null) {
|
return response;
|
||||||
return retrieveAlertByType(deviceId, type);
|
|
||||||
} else if (deviceId != null) {
|
|
||||||
return retrieveAlert(deviceId);
|
|
||||||
} else {
|
|
||||||
throw new BadRequestException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("Request must contain " +
|
|
||||||
"the device identifier. Optionally, both from and to value should be present to get " +
|
|
||||||
"alerts between times.").build());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Response retrieveAlert(String deviceId) {
|
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Retrieving events for given device Identifier.");
|
|
||||||
}
|
|
||||||
String query = "deviceIdentifier:" + deviceId;
|
|
||||||
List<DeviceState> deviceStates;
|
|
||||||
try {
|
|
||||||
deviceStates = AndroidDeviceUtils.getAllEventsForDevice(EVENT_STREAM_DEFINITION, query);
|
|
||||||
if (deviceStates == null) {
|
|
||||||
throw new NotFoundException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No any alerts are " +
|
|
||||||
"published for Device: " + deviceId + ".").build());
|
|
||||||
} else {
|
|
||||||
return Response.status(Response.Status.OK).entity(deviceStates).build();
|
|
||||||
}
|
|
||||||
} catch (AnalyticsException e) {
|
|
||||||
String msg = "Error occurred while getting published events for specific device: " + deviceId + ".";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Response retrieveAlertFromDate(String deviceId, long from, long to) {
|
|
||||||
String fromDate = String.valueOf(from);
|
|
||||||
String toDate = String.valueOf(to);
|
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Retrieving events for given device Identifier and time period.");
|
|
||||||
}
|
|
||||||
|
|
||||||
String query = "deviceIdentifier:" + deviceId + " AND _timestamp: [" + fromDate + " TO " + toDate + "]";
|
|
||||||
List<DeviceState> deviceStates;
|
|
||||||
try {
|
|
||||||
deviceStates = AndroidDeviceUtils.getAllEventsForDevice(EVENT_STREAM_DEFINITION, query);
|
|
||||||
if (deviceStates == null) {
|
|
||||||
throw new NotFoundException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No any alerts are " +
|
|
||||||
"published on given date for given Device: " + deviceId + ".").build());
|
|
||||||
|
|
||||||
} else {
|
|
||||||
return Response.status(Response.Status.OK).entity(deviceStates).build();
|
|
||||||
}
|
|
||||||
} catch (AnalyticsException e) {
|
|
||||||
String msg = "Error occurred while getting published events for specific " +
|
|
||||||
"Device: " + deviceId + " on given Date.";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Response retrieveAlertByType(String deviceId, String type) {
|
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.debug("Retrieving events for given device identifier and type.");
|
|
||||||
}
|
|
||||||
String query = "deviceIdentifier:" + deviceId + " AND type:" + type;
|
|
||||||
List<DeviceState> deviceStates;
|
|
||||||
try {
|
|
||||||
deviceStates = AndroidDeviceUtils.getAllEventsForDevice(EVENT_STREAM_DEFINITION, query);
|
|
||||||
if (deviceStates == null) {
|
|
||||||
throw new NotFoundException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No any alerts are " +
|
|
||||||
"published for given Device: '" + deviceId + "' and given specific Type.").build());
|
|
||||||
|
|
||||||
} else {
|
|
||||||
return Response.status(Response.Status.OK).entity(deviceStates).build();
|
|
||||||
}
|
|
||||||
} catch (AnalyticsException e) {
|
|
||||||
String msg = "Error occurred while getting published events for specific " +
|
|
||||||
"Device: " + deviceId + "and given specific Type.";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new UnexpectedServerErrorException(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,10 +17,31 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.device.mgt.mobile.android.common.spi;
|
package org.wso2.carbon.device.mgt.mobile.android.common.spi;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
|
||||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.common.exceptions.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.common.exceptions.DeviceManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.common.operation.mgt.Activity;
|
||||||
|
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
||||||
|
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
||||||
|
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.android.common.Message;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.common.bean.AndroidPlatformConfiguration;
|
import org.wso2.carbon.device.mgt.mobile.android.common.bean.AndroidPlatformConfiguration;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.android.common.bean.EnterpriseTokenUrl;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.android.common.bean.GoogleAppSyncResponse;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.android.common.bean.wrapper.*;
|
||||||
import org.wso2.carbon.device.mgt.mobile.android.common.exception.AndroidDeviceMgtPluginException;
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.AndroidDeviceMgtPluginException;
|
||||||
|
import org.wso2.carbon.device.mgt.mobile.android.common.exception.EnterpriseServiceException;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
import javax.ws.rs.HeaderParam;
|
||||||
|
import javax.ws.rs.PathParam;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.Response;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface AndroidService {
|
public interface AndroidService {
|
||||||
|
|
||||||
@ -28,4 +49,90 @@ public interface AndroidService {
|
|||||||
|
|
||||||
void updateConfiguration(AndroidPlatformConfiguration androidPlatformConfiguration)
|
void updateConfiguration(AndroidPlatformConfiguration androidPlatformConfiguration)
|
||||||
throws AndroidDeviceMgtPluginException;
|
throws AndroidDeviceMgtPluginException;
|
||||||
|
|
||||||
|
Message isEnrolled(String id, DeviceIdentifier deviceIdentifier) throws DeviceManagementException;
|
||||||
|
|
||||||
|
Activity fileTransfer(FileTransferBeanWrapper fileTransferBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity configureDeviceLock(DeviceLockBeanWrapper deviceLockBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity configureDeviceUnlock(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity getDeviceLocation(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity removePassword(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity configureCamera(CameraBeanWrapper cameraBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity getDeviceInformation(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity getDeviceLogcat(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity wipeDevice(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity wipeData(WipeDataBeanWrapper wipeDataBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity getApplications(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity ringDevice(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity rebootDevice(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity changeLockTask(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity muteDevice(List<String> deviceIDs) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity installApplication(ApplicationInstallationBeanWrapper applicationInstallationBeanWrapper)
|
||||||
|
throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity updateApplication(ApplicationUpdateBeanWrapper applicationUpdateBeanWrapper)
|
||||||
|
throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity uninstallApplication(ApplicationUninstallationBeanWrapper applicationUninstallationBeanWrapper)
|
||||||
|
throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity blacklistApplications(@Valid BlacklistApplicationsBeanWrapper blacklistApplicationsBeanWrapper)
|
||||||
|
throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity upgradeFirmware(UpgradeFirmwareBeanWrapper upgradeFirmwareBeanWrapper)
|
||||||
|
throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity configureVPN(VpnBeanWrapper vpnConfiguration) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity sendNotification(NotificationBeanWrapper notificationBeanWrapper)
|
||||||
|
throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity configureWifi(WifiBeanWrapper wifiBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity encryptStorage(EncryptionBeanWrapper encryptionBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity changeLockCode(LockCodeBeanWrapper lockCodeBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity setPasswordPolicy(PasswordPolicyBeanWrapper passwordPolicyBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity setWebClip(WebClipBeanWrapper webClipBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity setRecommendedGlobalProxy(GlobalProxyBeanWrapper globalProxyBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
Activity configureDisplayMessage(DisplayMessageBeanWrapper displayMessageBeanWrapper) throws OperationManagementException;
|
||||||
|
|
||||||
|
//DeviceManagementAPIImpl
|
||||||
|
Message updateApplicationList(String id, List<AndroidApplication> androidApplications) throws ApplicationManagementException;
|
||||||
|
|
||||||
|
void getPendingOperations(String id, List<? extends Operation> resultOperations) throws DeviceManagementException;
|
||||||
|
|
||||||
|
Response enrollDevice(AndroidDevice androidDevice) throws DeviceManagementException;
|
||||||
|
|
||||||
|
Device modifyEnrollment(String id, AndroidDevice androidDevice);
|
||||||
|
|
||||||
|
boolean disEnrollDevice(String id) throws DeviceManagementException;
|
||||||
|
|
||||||
|
//EventReceiverAPI
|
||||||
|
Device publishEvents(EventBeanWrapper eventBeanWrapper) throws DeviceManagementException;
|
||||||
|
|
||||||
|
Response retrieveAlerts(String deviceId,
|
||||||
|
long from,
|
||||||
|
long to,
|
||||||
|
String type,
|
||||||
|
String ifModifiedSince);
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -69,7 +69,7 @@ public class AndroidAPIUtils {
|
|||||||
return androidPluginService;
|
return androidPluginService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AndroidService getAndroidnService() {
|
public static AndroidService getAndroidService() {
|
||||||
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||||
AndroidService androidService = (AndroidService) ctx.getOSGiService(AndroidService.class, null);
|
AndroidService androidService = (AndroidService) ctx.getOSGiService(AndroidService.class, null);
|
||||||
if (androidService == null) {
|
if (androidService == null) {
|
||||||
@ -79,7 +79,7 @@ public class AndroidAPIUtils {
|
|||||||
}
|
}
|
||||||
return androidService;
|
return androidService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getAuthenticatedUser() {
|
public static String getAuthenticatedUser() {
|
||||||
PrivilegedCarbonContext threadLocalCarbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
PrivilegedCarbonContext threadLocalCarbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||||
String username = threadLocalCarbonContext.getUsername();
|
String username = threadLocalCarbonContext.getUsername();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user