diff --git a/src/main/java/com/strandls/activity/ApiConstants.java b/src/main/java/com/strandls/activity/ApiConstants.java index f4c92d1..231fb93 100644 --- a/src/main/java/com/strandls/activity/ApiConstants.java +++ b/src/main/java/com/strandls/activity/ApiConstants.java @@ -39,7 +39,7 @@ private ApiConstants() { public static final String REQUESTMAIL = "/requestmail"; public static final String DOWNLOADMAIL = "/downloadmail"; public static final String ODK = "/odk"; - + public static final String CROPCERT = "/cropcert"; public static final String PAGE = "/page"; } diff --git a/src/main/java/com/strandls/activity/controller/ActivityController.java b/src/main/java/com/strandls/activity/controller/ActivityController.java index cfd6c22..3821ca3 100644 --- a/src/main/java/com/strandls/activity/controller/ActivityController.java +++ b/src/main/java/com/strandls/activity/controller/ActivityController.java @@ -431,4 +431,20 @@ public Response odkUserMail(@Context HttpServletRequest request, return Response.status(Status.UNAUTHORIZED).build(); } + @POST + @Path(ApiConstants.LOG + ApiConstants.CROPCERT) + @Produces(MediaType.APPLICATION_JSON) + @Consumes(MediaType.APPLICATION_JSON) + @ValidateUser + @ApiOperation(value = "Save the cropcert activity", response = Activity.class) + public Response save(@Context HttpServletRequest request, @ApiParam(name = "loggingData") Activity loggingData) { + Activity activity; + try { + activity = service.logCropcertActivities(request, loggingData); + return Response.status(Status.CREATED).entity(activity).build(); + } catch (Exception e) { + return Response.status(Status.BAD_REQUEST).entity(e.getMessage()).build(); + } + } + } diff --git a/src/main/java/com/strandls/activity/service/ActivityService.java b/src/main/java/com/strandls/activity/service/ActivityService.java index 8da15c6..a079f6e 100644 --- a/src/main/java/com/strandls/activity/service/ActivityService.java +++ b/src/main/java/com/strandls/activity/service/ActivityService.java @@ -60,4 +60,5 @@ public Activity removeComment(HttpServletRequest request, Long userId, String co public Boolean odkUserMail(ODKMailData odkMail); + public Activity logCropcertActivities(HttpServletRequest request, Activity loggingData); } diff --git a/src/main/java/com/strandls/activity/service/impl/ActivityServiceImpl.java b/src/main/java/com/strandls/activity/service/impl/ActivityServiceImpl.java index 5dd5a62..8d29afb 100644 --- a/src/main/java/com/strandls/activity/service/impl/ActivityServiceImpl.java +++ b/src/main/java/com/strandls/activity/service/impl/ActivityServiceImpl.java @@ -6,8 +6,10 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Date; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; import javax.inject.Inject; @@ -112,7 +114,7 @@ public class ActivityServiceImpl implements ActivityService { List recoActivities = new ArrayList(Arrays.asList("obv unlocked", "Suggested species name", "obv locked", "Agreed on species name", "Suggestion removed")); -// OBSERVATION ACTIVITY LIST + // OBSERVATION ACTIVITY LIST List obvNullActivityList = new ArrayList( Arrays.asList("Observation created", "Observation updated", "Rated media resource", "Observation Deleted")); @@ -131,7 +133,7 @@ public class ActivityServiceImpl implements ActivityService { List observationActivityList = new ArrayList(Arrays.asList("Featured", "Suggestion removed", "Observation tag updated", "Custom field edited", "UnFeatured", "Observation species group updated")); -// USERGROUP ACTIVITY LIST + // USERGROUP ACTIVITY LIST List ugNullActivityList = new ArrayList(Arrays.asList("Group updated", "Group created")); @@ -146,7 +148,7 @@ public class ActivityServiceImpl implements ActivityService { List ugFilterRuleActivityList = new ArrayList( Arrays.asList("Added Filter Rule", "Removed Filter Rule", "Disabled Filter Rule", "Enabled Filter Rule")); -// DOCUMENT ACTIVITY LIST + // DOCUMENT ACTIVITY LIST List docNullActivityList = new ArrayList( Arrays.asList("Document created", "Document updated", "Document Deleted")); @@ -161,7 +163,7 @@ public class ActivityServiceImpl implements ActivityService { List docCommentActivityList = new ArrayList<>(Arrays.asList(newComment)); -// SPECIES ACTIVITY LIST + // SPECIES ACTIVITY LIST List speciesNullActivityList = new ArrayList(Arrays.asList("Created species", "Deleted species")); @@ -187,7 +189,7 @@ public class ActivityServiceImpl implements ActivityService { List speciesUserGroupActivityList = new ArrayList( Arrays.asList("Featured", "UnFeatured", "Posted resource", "Removed resoruce")); -// TAXONOMY ACTIVTY LIST + // TAXONOMY ACTIVTY LIST List taxonomyNullActivityList = new ArrayList( Arrays.asList("Deleted synonym", "Deleted common name")); @@ -202,7 +204,7 @@ public class ActivityServiceImpl implements ActivityService { List taxonomyCommentActivityList = new ArrayList<>(Arrays.asList(newComment)); -// DATATABLE ACTIVITY LIST + // DATATABLE ACTIVITY LIST List dataTableNullActivityList = new ArrayList( Arrays.asList("Datatable created", "Datatable updated", "Datatable deleted")); @@ -217,7 +219,7 @@ public class ActivityServiceImpl implements ActivityService { List pageCommentActivityList = new ArrayList<>(Arrays.asList(newComment)); -// CCA ACTIVITY LIST + // CCA ACTIVITY LIST List ccaTemplateActivityList = new ArrayList<>(Arrays.asList("Template created", "Template updated", "Field created", "Field updated", "Field deleted", "CCA Template Deleted")); List ccaDataActivityList = new ArrayList<>(Arrays.asList("Data created", "Data updated", "Data deleted", @@ -313,7 +315,7 @@ else if (objectType.equalsIgnoreCase("ccaTemplate")) return activityResult; } -// OBSERVATION ACTIVITY LOGGING + // OBSERVATION ACTIVITY LOGGING @Override public Activity logActivities(HttpServletRequest request, Long userId, ActivityLoggingData loggingData) { @@ -708,7 +710,7 @@ public Activity removeComment(HttpServletRequest request, Long userId, String co return activityResult; } -// USERGROUP ACTIVITY LOGGING + // USERGROUP ACTIVITY LOGGING @Override public Activity logUGActivities(Long userId, UserGroupActivityLogging loggingData) { @@ -750,7 +752,7 @@ public Activity logUGActivities(Long userId, UserGroupActivityLogging loggingDat return activity; } -// DOCUMENT ACTIVITY LOGGING + // DOCUMENT ACTIVITY LOGGING @Override public Activity logDocActivities(HttpServletRequest request, Long userId, DocumentActivityLogging loggingData) { @@ -836,7 +838,7 @@ public Activity logDocActivities(HttpServletRequest request, Long userId, Docume return null; } -// SPECIES ACTIVITY LOGGING + // SPECIES ACTIVITY LOGGING @Override public Activity logSpeciesActivities(HttpServletRequest request, Long userId, SpeciesActivityLogging loggingData) { try { @@ -928,7 +930,8 @@ public Activity logSpeciesActivities(HttpServletRequest request, Long userId, Sp return null; } -// check if its a usergroup featuring or mother portal featuring and also if its usergroup activity + // check if its a usergroup featuring or mother portal featuring and also if its + // usergroup activity private Boolean checkUserGroupFeatured(String acitivityType, String description) { Boolean result = false; try { @@ -945,7 +948,7 @@ private Boolean checkUserGroupFeatured(String acitivityType, String description) } -// TAXONOMY ACTIVITY LOGGING + // TAXONOMY ACTIVITY LOGGING @Override public Activity logTaxonomyActivities(HttpServletRequest request, Long userId, @@ -987,7 +990,7 @@ public Activity logTaxonomyActivities(HttpServletRequest request, Long userId, if (activity != null) activity = activityDao.save(activity); -// TODO mailData integration + // TODO mailData integration return activity; } catch (Exception e) { @@ -1257,4 +1260,34 @@ public Boolean odkUserMail(ODKMailData odkMail) { return null; } + public Activity logCropcertActivities(HttpServletRequest request, Activity loggingData) { + Activity activity = null; + try { + if (isValidCropcertActivityType(loggingData.getActivityType())) { + + Date dateCreated = loggingData.getDateCreated() != null ? loggingData.getDateCreated() : new Date(); + Date lastUpdated = loggingData.getLastUpdated() != null ? loggingData.getLastUpdated() : new Date(); + + activity = new Activity(null, loggingData.getActivityDescription(), loggingData.getActivityHolderId(), + loggingData.getActivityHolderType(), loggingData.getActivityType(), loggingData.getAuthorId(), + dateCreated, lastUpdated, loggingData.getRootHolderId(), loggingData.getRootHolderType(), + loggingData.getSubRootHolderId(), loggingData.getSubRootHolderType(), true); + } + if (activity != null) { + activity = activityDao.save(activity); + return activity; + } + } catch (Exception e) { + logger.error(e.getMessage()); + } + return null; + } + + private boolean isValidCropcertActivityType(String activityType) { + Set allowedActivityTypes = new HashSet<>( + Arrays.asList("BATCH_CREATION", "BATCH_UPDATE", "FARMER_CREATION", "FARMER_UPDATE", "FARMER_DELETION", + "LOT_CREATION", "LOT_UPDATE", "FARMER_PRODUCE_CREATED", "FARMER_PRODUCE")); + return allowedActivityTypes.contains(activityType); + } + }