Skip to content

Commit

Permalink
Entities enhancements (#21)
Browse files Browse the repository at this point in the history
* refactor: ♻️ refactoring entities logic

* refactor: ♻️ refactored logic for union and cooperative persons

* fix: 🐛 profile id type fix

* update: :refactor: updating dao to retrun single result
  • Loading branch information
arunasd463 authored Oct 24, 2024
1 parent 86970e2 commit 7839943
Show file tree
Hide file tree
Showing 4 changed files with 323 additions and 3 deletions.
77 changes: 76 additions & 1 deletion src/cropcert/entities/api/UserApi.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package cropcert.entities.api;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;

import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
Expand All @@ -25,11 +27,14 @@
import com.strandls.user.pojo.UserRoles;

import cropcert.entities.Headers;
import cropcert.entities.model.CollectionCenterEntity;
import cropcert.entities.model.CollectionCenterPerson;
import cropcert.entities.model.CooperativeEntity;
import cropcert.entities.model.CooperativePerson;
import cropcert.entities.model.Farmer;
import cropcert.entities.model.ICSManager;
import cropcert.entities.model.Inspector;
import cropcert.entities.model.UnionEntities;
import cropcert.entities.model.UnionPerson;
import cropcert.entities.model.UserEntityDTO;
import cropcert.entities.service.CollectionCenterPersonService;
Expand Down Expand Up @@ -105,6 +110,76 @@ public Response getUser(@Context HttpServletRequest request) {
return Response.ok().entity(myData).build();
}

@GET
@Path("union/all")
@Produces(MediaType.APPLICATION_JSON)

@ValidateUser

@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Authorization token", required = true, dataType = "string", paramType = "header") })
@ApiOperation(value = "Get the current user unions", response = Map.class)
public Response getMyUnion(@Context HttpServletRequest request) {
List<UnionEntities> result = userService.getMyUnionData(request);
return Response.ok().entity(result).build();
}

@GET
@Path("co/all")
@Produces(MediaType.APPLICATION_JSON)

@ValidateUser

@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Authorization token", required = true, dataType = "string", paramType = "header") })
@ApiOperation(value = "Get the current user cooperatives", response = Map.class)
public Response getMyCoopertive(@Context HttpServletRequest request) {
List<CooperativeEntity> result = userService.getMyCoopertiveData(request);
return Response.ok().entity(result).build();
}

@GET
@Path("cc/all")
@Produces(MediaType.APPLICATION_JSON)

@ValidateUser

@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Authorization token", required = true, dataType = "string", paramType = "header") })
@ApiOperation(value = "Get the current user collectionCenters", response = Map.class)
public Response getMyCollectionCenter(@Context HttpServletRequest request) {
List<CollectionCenterEntity> result = userService.getMyCollectionCenterData(request);
return Response.ok().entity(result).build();
}

@Path("union")
@GET
@Produces(MediaType.APPLICATION_JSON)

@ValidateUser

@ApiOperation(value = "Get list of co-operative from given union", response = CooperativeEntity.class, responseContainer = "List")
public Response getCooperativesByUnion(@Context HttpServletRequest request,
@DefaultValue("-1") @QueryParam("unionCodes") String unionCodes) {
List<CooperativeEntity> cooperatives = userService.getCooperativesByUnion(request, unionCodes);
return Response.ok().entity(cooperatives).build();
}

@Path("cooperative")
@GET
@Produces(MediaType.APPLICATION_JSON)

@ValidateUser

@ApiOperation(value = "Get list of co-operative from given union", response = CooperativeEntity.class, responseContainer = "List")
public Response getCollectionCenterByCooperative(@Context HttpServletRequest request,
@DefaultValue("-1") @QueryParam("cooperativeCodes") String cooperativeCodes) {
List<CollectionCenterEntity> cooperatives = userService
.getCollectionCenterByCooperative(request,
cooperativeCodes);
return Response.ok().entity(cooperatives).build();
}

@POST
@Path("signup")
@Consumes(MediaType.APPLICATION_JSON)
Expand Down
33 changes: 32 additions & 1 deletion src/cropcert/entities/dao/AbstractDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,10 @@ public T findByPropertyWithCondition(String property, Object value, String condi

T entity = null;
try {
entity = (T) query.getSingleResult();
List<T> results = query.getResultList();
if (!results.isEmpty()) {
entity = results.get(0);
}
} catch (NoResultException e) {
logger.error(e.getMessage());
}
Expand Down Expand Up @@ -252,4 +255,32 @@ public List<T> getByMultiplePropertyWithCondtion(String[] properties, Object[] v
session.close();
return resultList;
}

@SuppressWarnings({ "rawtypes", "unchecked" })
public List<T> getByMultipleValuesWithCondition(String property, List<Long> values, Integer limit, Integer offset) {

StringBuilder queryBuilder = new StringBuilder("from " + daoType.getSimpleName() + " t where ");
queryBuilder.append(" t.").append(property).append(" IN (:values) ");
queryBuilder.append(" order by id");

String queryStr = queryBuilder.toString();

Session session = sessionFactory.openSession();
org.hibernate.query.Query query = session.createQuery(queryStr);

query.setParameterList("values", values);

List<T> resultList = new ArrayList<>();
try {
if (limit > 0 && offset >= 0) {
query = query.setFirstResult(offset).setMaxResults(limit);
}
resultList = query.getResultList();
} catch (NoResultException e) {
logger.error(e.getMessage());
}
session.close();
return resultList;
}

}
5 changes: 5 additions & 0 deletions src/cropcert/entities/service/AbstractService.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,9 @@ public List<T> getByMultiplePropertyWithCondtion(String[] properties, Object[] v
public T deleteByPropertyWithCondition(String property, Object value, String condition) {
return dao.deleteByProperty(property, value, condition);
}

public List<T> getByMultipleValuesWithCondition(String property, List<Long> values, Integer limit, Integer offset) {
return dao.getByMultipleValuesWithCondition(property, values, limit, offset);
}

}
Loading

0 comments on commit 7839943

Please sign in to comment.