added Staff details to GET /groups api

This commit is contained in:
Nayan Ambali
2013-02-24 23:51:27 +05:30
parent 328f294e1a
commit bddfa98c4a
2 changed files with 49 additions and 9 deletions
@@ -21,7 +21,11 @@ public class GroupData {
private final String externalId; private final String externalId;
private final Long officeId; private final Long officeId;
private final String officeName; private final String officeName;
private final Long staffId;
private final String staffName;
private final Long groupLevel; private final Long groupLevel;
private final Long parentId;
private final String parentName;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final GroupLevelData groupLevelData; private final GroupLevelData groupLevelData;
private final Collection<ClientLookup> clientMembers; private final Collection<ClientLookup> clientMembers;
@@ -36,13 +40,18 @@ public class GroupData {
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final Collection<GroupLookupData> childGroups; private final Collection<GroupLookupData> childGroups;
public GroupData(final Long id, final Long officeId, final String officeName, final String name, final String externalId , final Long groupLevel ) { public GroupData(final Long id, final Long officeId, final String officeName, final String name, final String externalId,
final Long groupLevel, final Long parentId, final String parentName, final Long staffId, final String staffName) {
this.id = id; this.id = id;
this.officeId = officeId; this.officeId = officeId;
this.officeName = officeName; this.officeName = officeName;
this.name = name; this.name = name;
this.externalId = externalId; this.externalId = externalId;
this.groupLevel =groupLevel; this.groupLevel = groupLevel;
this.parentId = parentId;
this.parentName = parentName;
this.staffId = staffId;
this.staffName = staffName;
this.groupLevelData = null; this.groupLevelData = null;
this.clientMembers = null; this.clientMembers = null;
this.allowedClients = null; this.allowedClients = null;
@@ -54,13 +63,17 @@ public class GroupData {
public GroupData(final GroupData group, final Collection<ClientLookup> clientMembers, final Collection<ClientLookup> allowedClients, public GroupData(final GroupData group, final Collection<ClientLookup> clientMembers, final Collection<ClientLookup> allowedClients,
final Collection<OfficeLookup> allowedOffices, final Collection<GroupLookupData> allowedParentGroups, final Collection<OfficeLookup> allowedOffices, final Collection<GroupLookupData> allowedParentGroups,
final GroupLevelData groupLevelData , final Collection<StaffData> allowedStaffs , final Collection<GroupLookupData> childGroups) { final GroupLevelData groupLevelData, final Collection<StaffData> allowedStaffs, final Collection<GroupLookupData> childGroups) {
this.id = group.getId(); this.id = group.getId();
this.officeId = group.getOfficeId(); this.officeId = group.getOfficeId();
this.officeName = group.getOfficeName(); this.officeName = group.getOfficeName();
this.name = group.getName(); this.name = group.getName();
this.externalId = group.getExternalId(); this.externalId = group.getExternalId();
this.groupLevel = group.getGroupLevel(); this.groupLevel = group.getGroupLevel();
this.parentId = group.getParentId();
this.parentName = group.getParentName();
this.staffId = group.getStaffId();
this.staffName = group.getStaffName();
this.groupLevelData = groupLevelData; this.groupLevelData = groupLevelData;
this.clientMembers = clientMembers; this.clientMembers = clientMembers;
@@ -72,14 +85,19 @@ public class GroupData {
} }
public GroupData(final Long officeId, final Collection<ClientLookup> allowedClients, final Collection<OfficeLookup> allowedOffices, public GroupData(final Long officeId, final Collection<ClientLookup> allowedClients, final Collection<OfficeLookup> allowedOffices,
final Collection<GroupLookupData> allowedParentGroups, final GroupLevelData groupLevelData , final Collection<StaffData> allowedStaffs ) { final Collection<GroupLookupData> allowedParentGroups, final GroupLevelData groupLevelData,
final Collection<StaffData> allowedStaffs) {
this.id = null; this.id = null;
this.officeId = officeId; this.officeId = officeId;
this.officeName = null; this.officeName = null;
this.name = null; this.name = null;
this.externalId = null; this.externalId = null;
this.clientMembers = null; this.clientMembers = null;
this.groupLevel =null; this.groupLevel = null;
this.parentId = null;
this.parentName = null;
this.staffId = null;
this.staffName = null;
this.groupLevelData = groupLevelData; this.groupLevelData = groupLevelData;
this.allowedClients = allowedClients; this.allowedClients = allowedClients;
this.allowedOffices = allowedOffices; this.allowedOffices = allowedOffices;
@@ -112,6 +130,21 @@ public class GroupData {
return this.groupLevel; return this.groupLevel;
} }
public Long getParentId() {
return this.parentId;
}
public Long getStaffId() {
return this.staffId;
}
public String getStaffName() {
return this.staffName;
}
public String getParentName() {
return this.parentName;
}
public Collection<ClientLookup> clientMembers() { public Collection<ClientLookup> clientMembers() {
return this.clientMembers; return this.clientMembers;
@@ -221,8 +221,10 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
private static final class GroupDataMapper implements RowMapper<GroupData> { private static final class GroupDataMapper implements RowMapper<GroupData> {
public String groupSchema() { public String groupSchema() {
return "g.office_id as officeId, g.level_id as groupLevel , o.name as officeName, g.id as id, g.external_id as externalId, " return "g.office_id as officeId, g.level_id as groupLevel , g.parent_id as parentId , o.name as officeName,"
+ "g.name as name from m_group g join m_office o on o.id = g.office_id"; + " g.id as id, g.external_id as externalId, g.name as name , s.display_name as staffName , pg.name as"
+ " parentName , g.staff_id as staffId from m_group g join m_office o on o.id = g.office_id left join "
+ "m_staff s on s.id = g.staff_id left join m_group pg on pg.id = g.parent_id";
} }
@Override @Override
@@ -234,7 +236,12 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
Long officeId = rs.getLong("officeId"); Long officeId = rs.getLong("officeId");
String officeName = rs.getString("officeName"); String officeName = rs.getString("officeName");
Long groupLevel = rs.getLong("groupLevel"); Long groupLevel = rs.getLong("groupLevel");
return new GroupData(id, officeId, officeName, name, externalId, groupLevel); Long parentId = rs.getLong("parentId");
String parentName = rs.getString("parentName");
Long staffId = rs.getLong("staffId");
String staffName = rs.getString("staffName");
return new GroupData(id, officeId, officeName, name, externalId, groupLevel, parentId, parentName, staffId, staffName);
} }
} }