modified the ppi call to retrieve ppi entry. instead of returning the entry of the active ppi now return all the entries of a user
This commit is contained in:
+15
-1
@@ -121,11 +121,25 @@ public class SurveyApiResource {
|
|||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(SurveyApiConstants.SURVEY_RESOURCE_NAME);
|
this.context.authenticatedUser().validateHasReadPermission(SurveyApiConstants.SURVEY_RESOURCE_NAME);
|
||||||
|
|
||||||
List<ClientScoresOverview> scores = this.readSurveyService.retrieveClientSurveyScoreOverview(surveyName, clientId);
|
List<ClientScoresOverview> scores = this.readSurveyService.retrieveClientSurveyScoreOverview(clientId);
|
||||||
|
|
||||||
return this.toApiJsonClientScoreOverviewSerializer.serialize(scores);
|
return this.toApiJsonClientScoreOverviewSerializer.serialize(scores);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @GET
|
||||||
|
// @Path("{clientId}")
|
||||||
|
// @Consumes({ MediaType.APPLICATION_JSON })
|
||||||
|
// @Produces({ MediaType.APPLICATION_JSON })
|
||||||
|
// public String getAllClientSurveyOverview( @PathParam("clientId") final Long clientId) {
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// this.context.authenticatedUser().validateHasReadPermission(SurveyApiConstants.SURVEY_RESOURCE_NAME);
|
||||||
|
//
|
||||||
|
// List<ClientScoresOverview> scores = this.readSurveyService.retrieveClientSurveyScoreOverview(clientId);
|
||||||
|
//
|
||||||
|
// return this.toApiJsonClientScoreOverviewSerializer.serialize(scores);
|
||||||
|
// }
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("{surveyName}/{clientId}/{entryId}")
|
@Path("{surveyName}/{clientId}/{entryId}")
|
||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
|
|||||||
+4
-1
@@ -7,6 +7,7 @@ import org.joda.time.LocalDate;
|
|||||||
*/
|
*/
|
||||||
public class ClientScoresOverview {
|
public class ClientScoresOverview {
|
||||||
|
|
||||||
|
final private String surveyName;
|
||||||
final private long id ;
|
final private long id ;
|
||||||
final private String likelihoodCode ;
|
final private String likelihoodCode ;
|
||||||
final private String likelihoodName;
|
final private String likelihoodName;
|
||||||
@@ -19,7 +20,8 @@ public class ClientScoresOverview {
|
|||||||
final long score,
|
final long score,
|
||||||
final Double povertyLine,
|
final Double povertyLine,
|
||||||
final LocalDate date,
|
final LocalDate date,
|
||||||
final long resourceId) {
|
final long resourceId,
|
||||||
|
final String surveyName) {
|
||||||
|
|
||||||
this.likelihoodCode = likelihoodCode;
|
this.likelihoodCode = likelihoodCode;
|
||||||
this.likelihoodName = likelihoodName;
|
this.likelihoodName = likelihoodName;
|
||||||
@@ -27,6 +29,7 @@ public class ClientScoresOverview {
|
|||||||
this.povertyLine = povertyLine;
|
this.povertyLine = povertyLine;
|
||||||
this.date = date;
|
this.date = date;
|
||||||
this.id = resourceId;
|
this.id = resourceId;
|
||||||
|
this.surveyName = surveyName;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -17,6 +17,7 @@ public interface ReadSurveyService {
|
|||||||
SurveyDataTableData retrieveSurvey(String surveyName);
|
SurveyDataTableData retrieveSurvey(String surveyName);
|
||||||
|
|
||||||
List<ClientScoresOverview>retrieveClientSurveyScoreOverview(String surveyName, Long clientId);
|
List<ClientScoresOverview>retrieveClientSurveyScoreOverview(String surveyName, Long clientId);
|
||||||
|
List<ClientScoresOverview>retrieveClientSurveyScoreOverview(Long clientId);
|
||||||
|
|
||||||
GenericResultsetData retrieveSurveyEntry(String surveyName, Long clientId, Long entryId);
|
GenericResultsetData retrieveSurveyEntry(String surveyName, Long clientId, Long entryId);
|
||||||
|
|
||||||
|
|||||||
+60
-2
@@ -125,7 +125,7 @@ public class ReadSurveyServiceImpl implements ReadSurveyService {
|
|||||||
public List<ClientScoresOverview> retrieveClientSurveyScoreOverview(String surveyName, Long clientId)
|
public List<ClientScoresOverview> retrieveClientSurveyScoreOverview(String surveyName, Long clientId)
|
||||||
{
|
{
|
||||||
|
|
||||||
final String sql = "SELECT tz.id, lkh.name, lkh.code, poverty_line, tz.date, tz.score FROM "+surveyName+" tz"
|
final String sql = "SELECT tz.id, lkh.name, lkh.code, poverty_line, tz.date, tz.score FROM "+surveyName+" tz"
|
||||||
+" JOIN ppi_likelihoods_ppi lkp on lkp.ppi_name = '"+surveyName+"' AND enabled = '"+ LikelihoodStatus.ENABLED
|
+" JOIN ppi_likelihoods_ppi lkp on lkp.ppi_name = '"+surveyName+"' AND enabled = '"+ LikelihoodStatus.ENABLED
|
||||||
+"' JOIN ppi_scores sc on score_from <= tz.score AND score_to >=tz.score"
|
+"' JOIN ppi_scores sc on score_from <= tz.score AND score_to >=tz.score"
|
||||||
+" JOIN ppi_poverty_line pvl on pvl.likelihood_ppi_id = lkp.id AND pvl.score_id = sc.id"
|
+" JOIN ppi_poverty_line pvl on pvl.likelihood_ppi_id = lkp.id AND pvl.score_id = sc.id"
|
||||||
@@ -144,7 +144,8 @@ public class ReadSurveyServiceImpl implements ReadSurveyService {
|
|||||||
rs.getLong("score"),
|
rs.getLong("score"),
|
||||||
rs.getDouble("poverty_line"),
|
rs.getDouble("poverty_line"),
|
||||||
new LocalDate(rs.getTimestamp("date").getTime()),
|
new LocalDate(rs.getTimestamp("date").getTime()),
|
||||||
rs.getLong("id")
|
rs.getLong("id"),
|
||||||
|
surveyName
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,6 +153,63 @@ public class ReadSurveyServiceImpl implements ReadSurveyService {
|
|||||||
return scoresOverviews ;
|
return scoresOverviews ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<ClientScoresOverview> retrieveClientSurveyScoreOverview(Long clientId)
|
||||||
|
{
|
||||||
|
final String surveyNameSql = retrieveAllSurveyNameSQL();
|
||||||
|
final SqlRowSet surveyNames = this.jdbcTemplate.queryForRowSet(surveyNameSql);
|
||||||
|
|
||||||
|
ArrayList<String> sqls = new ArrayList<String>();
|
||||||
|
|
||||||
|
while(surveyNames .next())
|
||||||
|
{
|
||||||
|
sqls.add( "SELECT '"+surveyNames.getString("name") +"' as surveyName, tz.id, lkh.name, lkh.code, poverty_line, tz.date, tz.score FROM "+surveyNames.getString("name")+" tz"
|
||||||
|
+" JOIN ppi_likelihoods_ppi lkp on lkp.ppi_name = '"+surveyNames.getString("name")+"' AND enabled = '"+ LikelihoodStatus.ENABLED
|
||||||
|
+"' JOIN ppi_scores sc on score_from <= tz.score AND score_to >=tz.score"
|
||||||
|
+" JOIN ppi_poverty_line pvl on pvl.likelihood_ppi_id = lkp.id AND pvl.score_id = sc.id"
|
||||||
|
+" JOIN ppi_likelihoods lkh on lkh.id = lkp.likelihood_id "
|
||||||
|
+" WHERE client_id = "+clientId );
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ClientScoresOverview> scoresOverviews = new ArrayList<ClientScoresOverview>();
|
||||||
|
|
||||||
|
for(String sql:sqls)
|
||||||
|
{
|
||||||
|
final SqlRowSet rs = this.jdbcTemplate.queryForRowSet(sql);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
while(rs.next())
|
||||||
|
{
|
||||||
|
scoresOverviews.add(new ClientScoresOverview(
|
||||||
|
rs.getString("code"),
|
||||||
|
rs.getString("name"),
|
||||||
|
rs.getLong("score"),
|
||||||
|
rs.getDouble("poverty_line"),
|
||||||
|
new LocalDate(rs.getTimestamp("date").getTime()),
|
||||||
|
rs.getLong("id"),
|
||||||
|
rs.getString("surveyName")
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return scoresOverviews ;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String retrieveAllSurveyNameSQL()
|
||||||
|
{
|
||||||
|
// PERMITTED datatables
|
||||||
|
return "select cf.name from x_registered_table "
|
||||||
|
+ " join c_configuration cf on x_registered_table.registered_table_name = cf.name "
|
||||||
|
+ " where exists"
|
||||||
|
+ " (select 'f'" + " from m_appuser_role ur " + " join m_role r on r.id = ur.role_id"
|
||||||
|
+ " left join m_role_permission rp on rp.role_id = r.id" + " left join m_permission p on p.id = rp.permission_id"
|
||||||
|
+ " where ur.appuser_id = " + this.context.authenticatedUser().getId()
|
||||||
|
+ " and (p.code in ('ALL_FUNCTIONS', 'ALL_FUNCTIONS_READ') or p.code = concat('READ_', registered_table_name))) "
|
||||||
|
+ " and x_registered_table.category = "+ DataTableApiConstant.CATEGORY_PPI
|
||||||
|
+ " order by application_table_name, registered_table_name";
|
||||||
|
}
|
||||||
|
|
||||||
public GenericResultsetData retrieveSurveyEntry(String surveyName, Long clientId, Long entryId)
|
public GenericResultsetData retrieveSurveyEntry(String surveyName, Long clientId, Long entryId)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user