mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
added 'updatedTimeStamp' to the Activity get response
This commit is contained in:
parent
7cdb7dcee1
commit
015ca0575e
@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.common.operation.mgt.Activity;
|
||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
|
||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.ActivityList;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.service.api.ActivityInfoProviderService;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.*;
|
||||
@ -47,8 +48,7 @@ public class ActivityProviderServiceImpl implements ActivityInfoProviderService
|
||||
@GET
|
||||
@Override
|
||||
@Path("/{id}")
|
||||
public Response getActivity(
|
||||
@PathParam("id") String id,
|
||||
public Response getActivity(@PathParam("id") String id,
|
||||
@HeaderParam("If-Modified-Since") String ifModifiedSince) {
|
||||
Activity activity;
|
||||
DeviceManagementProviderService dmService;
|
||||
@ -58,30 +58,28 @@ public class ActivityProviderServiceImpl implements ActivityInfoProviderService
|
||||
dmService = DeviceMgtAPIUtils.getDeviceManagementService();
|
||||
activity = dmService.getOperationByActivityId(id);
|
||||
if (activity == null) {
|
||||
throw new NotFoundException(
|
||||
new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No activity can be " +
|
||||
throw new NotFoundException(new ErrorResponse.ErrorResponseBuilder().setCode(404l)
|
||||
.setMessage("No activity can be " +
|
||||
"found upon the provided activity id '" + id + "'").build());
|
||||
}
|
||||
} catch (OperationManagementException e) {
|
||||
String msg = "ErrorResponse occurred while fetching the activity for the supplied id.";
|
||||
log.error(msg, e);
|
||||
throw new UnexpectedServerErrorException(
|
||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
||||
throw new UnexpectedServerErrorException(new ErrorResponse.ErrorResponseBuilder().setCode(500l)
|
||||
.setMessage(msg).build());
|
||||
}
|
||||
return Response.status(Response.Status.OK).entity(activity).build();
|
||||
}
|
||||
|
||||
@GET
|
||||
@Override
|
||||
public Response getActivities(
|
||||
@QueryParam("since") String since,
|
||||
@QueryParam("offset") int offset,
|
||||
public Response getActivities(@QueryParam("since") String since, @QueryParam("offset") int offset,
|
||||
@QueryParam("limit") int limit,
|
||||
@HeaderParam("If-Modified-Since") String ifModifiedSince) {
|
||||
|
||||
long ifModifiedSinceTimestamp = 0;
|
||||
long sinceTimestamp =0;
|
||||
long timestamp =0;
|
||||
long sinceTimestamp = 0;
|
||||
long timestamp = 0;
|
||||
boolean isIfModifiedSinceSet = false;
|
||||
boolean isSinceSet = false;
|
||||
if (ifModifiedSince != null && !ifModifiedSince.isEmpty()) {
|
||||
@ -95,42 +93,44 @@ public class ActivityProviderServiceImpl implements ActivityInfoProviderService
|
||||
}
|
||||
ifModifiedSinceTimestamp = ifSinceDate.getTime();
|
||||
isIfModifiedSinceSet = true;
|
||||
timestamp = ifModifiedSinceTimestamp/1000;
|
||||
} else if (since != null && !since.isEmpty()){
|
||||
timestamp = ifModifiedSinceTimestamp / 1000;
|
||||
} else if (since != null && !since.isEmpty()) {
|
||||
Date sinceDate;
|
||||
SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
|
||||
try{
|
||||
try {
|
||||
sinceDate = format.parse(since);
|
||||
}catch (ParseException e){
|
||||
} catch (ParseException e) {
|
||||
throw new InputValidationException(new ErrorResponse.ErrorResponseBuilder().setCode(400l)
|
||||
.setMessage("Invalid date string is provided in 'since' filter").build());
|
||||
}
|
||||
sinceTimestamp = sinceDate.getTime();
|
||||
isSinceSet = true;
|
||||
timestamp = sinceTimestamp/1000;
|
||||
timestamp = sinceTimestamp / 1000;
|
||||
}
|
||||
List<Activity> activities;
|
||||
ActivityList activityList = new ActivityList();
|
||||
DeviceManagementProviderService dmService;
|
||||
try {
|
||||
dmService = DeviceMgtAPIUtils.getDeviceManagementService();
|
||||
activities = dmService.getActivitiesUpdatedAfter(timestamp);
|
||||
if (activities == null || activities.size() == 0) {
|
||||
if (isIfModifiedSinceSet) {
|
||||
return Response.status(Response.Status.NOT_MODIFIED).entity("No activities " +
|
||||
"after the time provided in 'If-Modified-Since' header").build();
|
||||
} else if(isSinceSet){
|
||||
return Response.status(Response.Status.NOT_MODIFIED).entity("No activities " +
|
||||
"after the time provided in 'since' filter").build();
|
||||
return Response.status(Response.Status.NOT_MODIFIED).entity(
|
||||
"No activities " + "after the time provided in 'If-Modified-Since' header")
|
||||
.build();
|
||||
} else if (isSinceSet) {
|
||||
return Response.status(Response.Status.NOT_MODIFIED).entity(
|
||||
"No activities " + "after the time provided in 'since' filter").build();
|
||||
}
|
||||
throw new NotFoundException(
|
||||
new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No activities " +
|
||||
"found.").build());
|
||||
throw new NotFoundException(new ErrorResponse.ErrorResponseBuilder().setCode(404l)
|
||||
.setMessage("No activities " + "found.").build());
|
||||
}
|
||||
} catch (OperationManagementException e) {
|
||||
String msg = "ErrorResponse occurred while fetching the activities updated after given time stamp.";
|
||||
String msg
|
||||
= "ErrorResponse occurred while fetching the activities updated after given time stamp.";
|
||||
log.error(msg, e);
|
||||
throw new UnexpectedServerErrorException(
|
||||
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
|
||||
throw new UnexpectedServerErrorException(new ErrorResponse.ErrorResponseBuilder().setCode(500l)
|
||||
.setMessage(msg).build());
|
||||
}
|
||||
return Response.status(Response.Status.OK).entity(activities).build();
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
*/
|
||||
package org.wso2.carbon.device.mgt.core.operation.mgt.dao.impl;
|
||||
|
||||
import org.apache.axis2.databinding.types.soapencoding.Integer;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
@ -305,6 +306,7 @@ public class GenericOperationDAOImpl implements OperationDAO {
|
||||
|
||||
List<OperationResponse> operationResponses = new ArrayList<>();
|
||||
if (rs.getInt("UPDATED_TIMESTAMP") != 0) {
|
||||
activityStatus.setUpdatedTimestamp(String.valueOf(rs.getInt("UPDATED_TIMESTAMP")));
|
||||
operationResponses.add(this.getOperationResponse(rs));
|
||||
}
|
||||
activityStatus.setResponses(operationResponses);
|
||||
@ -385,6 +387,9 @@ public class GenericOperationDAOImpl implements OperationDAO {
|
||||
activityStatus.setStatus(ActivityStatus.Status.valueOf(rs.getString("STATUS")));
|
||||
|
||||
List<OperationResponse> operationResponses = new ArrayList<>();
|
||||
if (rs.getInt("UPDATED_TIMESTAMP") != 0) {
|
||||
activityStatus.setUpdatedTimestamp(String.valueOf(rs.getInt("UPDATED_TIMESTAMP")));
|
||||
}
|
||||
if (rs.getTimestamp("RECEIVED_TIMESTAMP") != (null)) {
|
||||
operationResponses.add(this.getOperationResponse(rs));
|
||||
responseId = rs.getInt("OP_RES_ID");
|
||||
@ -411,6 +416,9 @@ public class GenericOperationDAOImpl implements OperationDAO {
|
||||
activityStatus.setStatus(ActivityStatus.Status.valueOf(rs.getString("STATUS")));
|
||||
|
||||
List<OperationResponse> operationResponses = new ArrayList<>();
|
||||
if (rs.getInt("UPDATED_TIMESTAMP") != 0) {
|
||||
activityStatus.setUpdatedTimestamp(String.valueOf(rs.getInt("UPDATED_TIMESTAMP")));
|
||||
}
|
||||
if (rs.getTimestamp("RECEIVED_TIMESTAMP") != (null)) {
|
||||
operationResponses.add(this.getOperationResponse(rs));
|
||||
responseId = rs.getInt("OP_RES_ID");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user