Skip to content

Commit

Permalink
Merge pull request #703 from vedfordev/master
Browse files Browse the repository at this point in the history
Added LastModifiedBy
  • Loading branch information
vinayvenu authored Apr 1, 2024
2 parents 99f928e + edde3fc commit aaffe0a
Show file tree
Hide file tree
Showing 5 changed files with 182 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,16 @@ public boolean getActive() {
return encounterType.getActive();
}

@Override
public DateTime getLastModifiedDateTime() {
return getEncounterType().getLastModifiedDateTime().isAfter(super.getLastModifiedDateTime()) ? getEncounterType().getLastModifiedDateTime() : super.getLastModifiedDateTime();
Auditable lastModified = getLastModified(getEncounterType());
return lastModified.equals(this)?super.getLastModifiedDateTime(): lastModified.getLastModifiedDateTime();
}

@Override
public User getLastModifiedBy() {
Auditable lastModified = getLastModified(getEncounterType());
return lastModified.equals(this)?super.getLastModifiedBy(): lastModified.getLastModifiedBy();
}

public String getEncounterEligibilityCheckRule() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,19 @@ public String getProgramName() {
return program.getName();
}

@Override
public DateTime getLastModifiedDateTime() {
return getProgram().getLastModifiedDateTime().isAfter(super.getLastModifiedDateTime()) ? getProgram().getLastModifiedDateTime() : super.getLastModifiedDateTime();
Auditable lastModified = getLastModified(getProgram());
return lastModified.equals(this)?super.getLastModifiedDateTime(): lastModified.getLastModifiedDateTime();
}

@Override
public User getLastModifiedBy() {
Auditable lastModified = getLastModified(getProgram());
return lastModified.equals(this)?super.getLastModifiedBy(): lastModified.getLastModifiedBy();
}


public void setProgramSubjectLabel(String programSubjectLabel) {
this.programSubjectLabel = programSubjectLabel;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.avni.server.domain;

import org.hibernate.annotations.BatchSize;
import org.joda.time.DateTime;
import org.avni.server.application.Format;
import org.avni.server.application.Subject;
import org.hibernate.annotations.BatchSize;
import org.joda.time.DateTime;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
Expand Down Expand Up @@ -96,9 +96,16 @@ public boolean isLastNameOptional() {
}
public Format getValidMiddleNameFormat() { return subjectType.getValidMiddleNameFormat();}

@Override
public DateTime getLastModifiedDateTime() {
return getSubjectType().getLastModifiedDateTime().isAfter(super.getLastModifiedDateTime()) ?
getSubjectType().getLastModifiedDateTime() : super.getLastModifiedDateTime();
Auditable lastModified = getLastModified(getSubjectType());
return lastModified.equals(this)?super.getLastModifiedDateTime(): lastModified.getLastModifiedDateTime();
}

@Override
public User getLastModifiedBy() {
Auditable lastModified = getLastModified(getSubjectType());
return lastModified.equals(this)?super.getLastModifiedBy(): lastModified.getLastModifiedBy();
}

public boolean isDirectlyAssignable() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.avni.server.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.Column;
import javax.persistence.MappedSuperclass;

Expand All @@ -15,4 +16,10 @@ public Long getOrganisationId() {
public void setOrganisationId(Long organisationId) {
this.organisationId = organisationId;
}

@JsonIgnore
public Auditable getLastModified(Auditable auditable) {
return super.getLastModifiedDateTime().isAfter(auditable.getLastModifiedDateTime()) ? this : auditable;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
package org.avni.server.domain;

import org.joda.time.DateTime;
import org.junit.Test;

import java.util.HashSet;
import java.util.Set;

import static org.junit.Assert.assertEquals;

public class OrganisationAwareEntityTest {


@Test
public void test_getLastModifiedForSubject(){
User user1 = new User();
user1.setUsername("user1");
user1.setName("user1");

User user2 = new User();
user2.setUsername("user2");
user2.setName("user2");

DateTime lastModifiedDateTime1 = new DateTime("2023-05-06T10:11:12.123");
DateTime lastModifiedDateTime2 = new DateTime("2023-05-05T10:11:12.123");

SubjectType subjectType = new SubjectType();
subjectType.setLastModifiedBy(user1);
subjectType.setCreatedBy(user1);
subjectType.setName("abc");
subjectType.setLastModifiedDateTime(lastModifiedDateTime1);

OperationalSubjectType operationalSubjectType = new OperationalSubjectType();
operationalSubjectType.setCreatedBy(user2);
operationalSubjectType.setLastModifiedDateTime(lastModifiedDateTime2);
operationalSubjectType.setLastModifiedBy(user2);

Set<OperationalSubjectType> operationalSubjectTypeSet = new HashSet<>();
operationalSubjectTypeSet.add(operationalSubjectType);
subjectType.setOperationalSubjectTypes(operationalSubjectTypeSet);
operationalSubjectType.setSubjectType(subjectType);

assertEquals(operationalSubjectType.getLastModifiedDateTime(),lastModifiedDateTime1);
assertEquals(operationalSubjectType.getLastModifiedBy(),user1);

subjectType.setLastModifiedDateTime(lastModifiedDateTime2);
operationalSubjectType.setLastModifiedDateTime(lastModifiedDateTime1);

assertEquals(operationalSubjectType.getLastModifiedDateTime(),lastModifiedDateTime1);
assertEquals(operationalSubjectType.getLastModifiedBy(),user2);

operationalSubjectType.setLastModifiedDateTime(lastModifiedDateTime2);
assertEquals(operationalSubjectType.getLastModifiedDateTime(),lastModifiedDateTime2);
assertEquals(operationalSubjectType.getLastModifiedBy(),user2);

}

@Test
public void test_getLastModifiedForProgram(){
User user1 = new User();
user1.setUsername("user1");
user1.setName("user1");

User user2 = new User();
user2.setUsername("user2");
user2.setName("user2");

DateTime lastModifiedDateTime1 = new DateTime("2023-05-06T10:11:12.123");
DateTime lastModifiedDateTime2 = new DateTime("2023-05-05T10:11:12.123");

Program program = new Program();
program.setLastModifiedBy(user1);
program.setCreatedBy(user1);
program.setName("abc");
program.setLastModifiedDateTime(lastModifiedDateTime1);

OperationalProgram operationalProgramType = new OperationalProgram();
operationalProgramType.setCreatedBy(user2);
operationalProgramType.setLastModifiedDateTime(lastModifiedDateTime2);
operationalProgramType.setLastModifiedBy(user2);

Set<OperationalProgram> operationalProgramTypeSet = new HashSet<>();
operationalProgramTypeSet.add(operationalProgramType);
program.setOperationalPrograms(operationalProgramTypeSet);
operationalProgramType.setProgram(program);

assertEquals(operationalProgramType.getLastModifiedDateTime(),lastModifiedDateTime1);
assertEquals(operationalProgramType.getLastModifiedBy(),user1);

program.setLastModifiedDateTime(lastModifiedDateTime2);
operationalProgramType.setLastModifiedDateTime(lastModifiedDateTime1);

assertEquals(operationalProgramType.getLastModifiedDateTime(),lastModifiedDateTime1);
assertEquals(operationalProgramType.getLastModifiedBy(),user2);

operationalProgramType.setLastModifiedDateTime(lastModifiedDateTime2);
assertEquals(operationalProgramType.getLastModifiedDateTime(),lastModifiedDateTime2);
assertEquals(operationalProgramType.getLastModifiedBy(),user2);

}

@Test
public void test_getLastModifiedForEncounter(){
User user1 = new User();
user1.setUsername("user1");
user1.setName("user1");

User user2 = new User();
user2.setUsername("user2");
user2.setName("user2");

DateTime lastModifiedDateTime1 = new DateTime("2023-05-06T10:11:12.123");
DateTime lastModifiedDateTime2 = new DateTime("2023-05-05T10:11:12.123");

EncounterType encounterType = new EncounterType();
encounterType.setLastModifiedBy(user1);
encounterType.setCreatedBy(user1);
encounterType.setName("abc");
encounterType.setLastModifiedDateTime(lastModifiedDateTime1);

OperationalEncounterType operationalEncounterType = new OperationalEncounterType();
operationalEncounterType.setCreatedBy(user2);
operationalEncounterType.setLastModifiedDateTime(lastModifiedDateTime2);
operationalEncounterType.setLastModifiedBy(user2);

Set<OperationalEncounterType> operationalEncounterTypeSet = new HashSet<>();
operationalEncounterTypeSet.add(operationalEncounterType);
encounterType.setOperationalEncounterTypes(operationalEncounterTypeSet);
operationalEncounterType.setEncounterType(encounterType);

assertEquals(operationalEncounterType.getLastModifiedDateTime(),lastModifiedDateTime1);
assertEquals(operationalEncounterType.getLastModifiedBy(),user1);

encounterType.setLastModifiedDateTime(lastModifiedDateTime2);
operationalEncounterType.setLastModifiedDateTime(lastModifiedDateTime1);

assertEquals(operationalEncounterType.getLastModifiedDateTime(),lastModifiedDateTime1);
assertEquals(operationalEncounterType.getLastModifiedBy(),user2);

operationalEncounterType.setLastModifiedDateTime(lastModifiedDateTime2);
assertEquals(operationalEncounterType.getLastModifiedDateTime(),lastModifiedDateTime2);
assertEquals(operationalEncounterType.getLastModifiedBy(),user2);

}
}

0 comments on commit aaffe0a

Please sign in to comment.