diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java index 8a124f8..67f332e 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterSaveAdvice.java @@ -43,7 +43,7 @@ public EncounterSaveAdvice() throws SQLException { @Override public void afterReturning(Object returnValue, Method method, Object[] args, Object emrEncounterService) throws Throwable { - if (method.getName().equals(SAVE_METHOD)) { + if (method.getName().equals(SAVE_METHOD) && isAtomFeedPublishEnabled()) { Object encounterUuid = PropertyUtils.getProperty(returnValue, "encounterUuid"); String url = String.format(ENCOUNTER_REST_URL, encounterUuid); final Event event = new Event(UUID.randomUUID().toString(), TITLE, LocalDateTime.now(), (URI) null, url, CATEGORY); @@ -65,6 +65,10 @@ public PropagationDefinition getTxPropagationDefinition() { } } + private boolean isAtomFeedPublishEnabled() { + return Boolean.parseBoolean(Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish")); + } + private static String getEncounterFeedUrl() { return Context.getAdministrationService().getGlobalProperty("encounter.feed.publish.url"); } diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java index edf530a..af496e8 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/EncounterServiceSaveAdvice.java @@ -43,7 +43,7 @@ public EncounterServiceSaveAdvice() throws SQLException { @Override public void afterReturning(Object returnValue, Method method, Object[] args, Object encounterService) throws Throwable { - if (method.getName().equals(SAVE_METHOD)) { + if (method.getName().equals(SAVE_METHOD) && isAtomFeedPublishEnabled()) { Encounter encounter = (Encounter) args[0]; // Assuming encounter is the first argument String encounterType = encounter.getEncounterType().getName(); // Assuming encounterType is a string if (ENCOUNTER_TYPE_INVESTIGATION.equals(encounterType)) { @@ -69,6 +69,10 @@ public PropagationDefinition getTxPropagationDefinition() { } } + private boolean isAtomFeedPublishEnabled() { + return Boolean.parseBoolean(Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish")); + } + private static String getEncounterFeedUrl() { return Context.getAdministrationService().getGlobalProperty("encounter.feed.publish.url"); } diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java index 6facfa0..a66c126 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientAdvice.java @@ -36,7 +36,7 @@ public PatientAdvice() throws SQLException { @Override public void afterReturning(Object returnValue, Method method, Object[] arguments, Object target) throws Throwable { - if (method.getName().equals(SAVE_PATIENT_METHOD)) { + if (method.getName().equals(SAVE_PATIENT_METHOD) && isAtomFeedPublishEnabled()) { String contents = String.format(TEMPLATE, ((Patient) returnValue).getUuid()); final Event event = new Event(UUID.randomUUID().toString(), TITLE, LocalDateTime.now(), (URI) null, contents, CATEGORY); @@ -56,6 +56,10 @@ public PropagationDefinition getTxPropagationDefinition() { } } + private boolean isAtomFeedPublishEnabled() { + return Boolean.parseBoolean(Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish")); + } + private PlatformTransactionManager getSpringPlatformTransactionManager() { List platformTransactionManagers = Context.getRegisteredComponents(PlatformTransactionManager.class); return platformTransactionManagers.get(0); diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java index f792aa8..def2432 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PatientProgramAdvice.java @@ -79,6 +79,8 @@ private AtomFeedSpringTransactionManager getAFTxManager() { } private boolean shouldRaiseRelationshipEvent() { + String masterSwitch = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); + if (!Boolean.parseBoolean(masterSwitch)) return false; String raiseEvent = Context.getAdministrationService().getGlobalProperty(RAISE_PATIENT_PROGRAM_EVENT_GLOBAL_PROPERTY); return Boolean.valueOf(raiseEvent); } diff --git a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java index b5e970c..9e03f8c 100644 --- a/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java +++ b/openmrs-atomfeed-api/src/main/java/org/openmrs/module/atomfeed/advice/PersonRelationshipAdvice.java @@ -58,6 +58,8 @@ public PropagationDefinition getTxPropagationDefinition() { } private boolean shouldRaiseRelationshipEvent() { + String masterSwitch = Context.getAdministrationService().getGlobalProperty("atomfeed.enable.publish"); + if (!Boolean.parseBoolean(masterSwitch)) return false; String raiseEvent = Context.getAdministrationService().getGlobalProperty(RAISE_RELATIONSHIP_EVENT_GLOBAL_PROPERTY); return Boolean.valueOf(raiseEvent); } diff --git a/openmrs-atomfeed-api/src/main/resources/liquibase.xml b/openmrs-atomfeed-api/src/main/resources/liquibase.xml index 0734e39..c8a6056 100644 --- a/openmrs-atomfeed-api/src/main/resources/liquibase.xml +++ b/openmrs-atomfeed-api/src/main/resources/liquibase.xml @@ -192,4 +192,20 @@ + + + + + SELECT COUNT(*) FROM global_property where property = 'atomfeed.enable.publish' + + + Adding master switch global property to enable or disable all atomfeed event publishing in atomfeed module + + + + + + + + \ No newline at end of file