Done Ticket GEPAFINBE-207 Updated the API to update the call status from Publish status to Draft.

This commit is contained in:
piyushkag
2025-04-10 18:07:21 +05:30
parent f379b954ed
commit c34b63b321
5 changed files with 34 additions and 26 deletions

View File

@@ -101,6 +101,7 @@ public class GepafinConstant {
public static final String STATUS_SAME_ERROR = "status.same.error"; public static final String STATUS_SAME_ERROR = "status.same.error";
public static final String INVALID_STATUS_CHANGE_FROM_DRAFT = "invalid.status.change.from.draft"; public static final String INVALID_STATUS_CHANGE_FROM_DRAFT = "invalid.status.change.from.draft";
public static final String INVALID_STATUS_CHANGE_FROM_PUBLISH = "invalid.status.change.from.publish"; public static final String INVALID_STATUS_CHANGE_FROM_PUBLISH = "invalid.status.change.from.publish";
public static final String INVALID_STATUS_CHANGE_FROM_PUBLISH_TO_DRAFT = "invalid.status.change.from.publish.to.draft";
public static final String STATUS_CANNOT_BE_CHANGED = "status.cannot.be.changed"; public static final String STATUS_CANNOT_BE_CHANGED = "status.cannot.be.changed";
public static final String PUBLISHED_CALL_NOT_UPDATE = "published.call.not.update"; public static final String PUBLISHED_CALL_NOT_UPDATE = "published.call.not.update";
public static final String INVALID_USER = "invalid_user"; public static final String INVALID_USER = "invalid_user";

View File

@@ -124,6 +124,9 @@ public class CallDao {
@Autowired @Autowired
private EvaluationFormDao evalualtionFormDao; private EvaluationFormDao evalualtionFormDao;
@Autowired
private ApplicationRepository applicationRepository;
public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, UserEntity userEntity) { public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, UserEntity userEntity) {
createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId()); createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId());
CallEntity callEntity = convertToCallEntity(createCallRequest, userEntity); CallEntity callEntity = convertToCallEntity(createCallRequest, userEntity);
@@ -902,7 +905,7 @@ public class CallDao {
public CallResponse updateCallStatus(CallEntity callEntity, CallStatusEnum statusReq) { public CallResponse updateCallStatus(CallEntity callEntity, CallStatusEnum statusReq) {
CallEntity oldCallEntity = Utils.getClonedEntityForData(callEntity); CallEntity oldCallEntity = Utils.getClonedEntityForData(callEntity);
CallStatusEnum currentStatus = CallStatusEnum.valueOf(callEntity.getStatus()); CallStatusEnum currentStatus = CallStatusEnum.valueOf(callEntity.getStatus());
validateStatusChange(currentStatus, statusReq); validateStatusChange(currentStatus, statusReq, callEntity.getId());
callEntity.setStatus(statusReq.getValue()); callEntity.setStatus(statusReq.getValue());
callEntity = callRepository.save(callEntity); callEntity = callRepository.save(callEntity);
@@ -922,36 +925,37 @@ public class CallDao {
return convertToCallResponseBean(callEntity); return convertToCallResponseBean(callEntity);
} }
private void validateStatusChange(CallStatusEnum currentStatus, CallStatusEnum newStatus) { private void validateStatusChange(CallStatusEnum currentStatus, CallStatusEnum newStatus, Long callId) {
if (currentStatus == newStatus) { if (currentStatus == newStatus) {
throw new CustomValidationException(Status.VALIDATION_ERROR, throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.STATUS_SAME_ERROR));
Translator.toLocale(GepafinConstant.STATUS_SAME_ERROR));
} }
switch (currentStatus) { switch (currentStatus) {
case DRAFT: case DRAFT:
if (newStatus == CallStatusEnum.READY_TO_PUBLISH || newStatus == CallStatusEnum.PUBLISH) { if (newStatus == CallStatusEnum.READY_TO_PUBLISH || newStatus == CallStatusEnum.PUBLISH) {
throw new CustomValidationException(Status.VALIDATION_ERROR, throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.INVALID_STATUS_CHANGE_FROM_DRAFT));
Translator.toLocale(GepafinConstant.INVALID_STATUS_CHANGE_FROM_DRAFT)); }
} break;
break;
case PUBLISH:
if (newStatus == CallStatusEnum.READY_TO_PUBLISH || newStatus == CallStatusEnum.DRAFT) {
throw new CustomValidationException(Status.VALIDATION_ERROR,
Translator.toLocale(GepafinConstant.INVALID_STATUS_CHANGE_FROM_PUBLISH));
}
break;
case EXPIRED: case PUBLISH:
throw new CustomValidationException(Status.VALIDATION_ERROR, if (newStatus == CallStatusEnum.READY_TO_PUBLISH) {
Translator.toLocale(GepafinConstant.STATUS_CANNOT_BE_CHANGED)); throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.INVALID_STATUS_CHANGE_FROM_PUBLISH));
case READY_TO_PUBLISH: }
break; if (newStatus == CallStatusEnum.DRAFT && Boolean.TRUE.equals(applicationRepository.existsByCallId(callId))) {
default: throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.INVALID_STATUS_CHANGE_FROM_PUBLISH_TO_DRAFT));
break; }
break;
case EXPIRED:
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.STATUS_CANNOT_BE_CHANGED));
case READY_TO_PUBLISH:
break;
default:
break;
} }
} }
public CallEntity validatePublishedCall(Long callId, Long hubId) { public CallEntity validatePublishedCall(Long callId, Long hubId) {
CallEntity callEntity= callRepository CallEntity callEntity= callRepository
.findByIdAndStatusAndHubId(callId, CallStatusEnum.PUBLISH.getValue(), hubId); .findByIdAndStatusAndHubId(callId, CallStatusEnum.PUBLISH.getValue(), hubId);

View File

@@ -177,4 +177,5 @@ public interface ApplicationRepository extends JpaRepository<ApplicationEntity,
@Query("UPDATE ApplicationEntity a SET a.ndgStatus = NULL WHERE a.ndgStatus = :status") @Query("UPDATE ApplicationEntity a SET a.ndgStatus = NULL WHERE a.ndgStatus = :status")
void resetNdgStatusForInProgress(@Param("status") String status); void resetNdgStatusForInProgress(@Param("status") String status);
boolean existsByCallId(Long callId);
} }

View File

@@ -60,7 +60,8 @@ status.same.error=Status is already set.
invalid.status.change.from.draft=Status cannot be changed to READY_TO_PUBLISH or PUBLISH from DRAFT. invalid.status.change.from.draft=Status cannot be changed to READY_TO_PUBLISH or PUBLISH from DRAFT.
status.cannot.be.changed=Status cannot be changed. status.cannot.be.changed=Status cannot be changed.
published.call.not.update=Published call cannot be updated. published.call.not.update=Published call cannot be updated.
invalid.status.change.from.publish=Status cannot be changed to READY_TO_PUBLISH or DRAFT from PUBLISH. invalid.status.change.from.publish=Status cannot be changed to READY_TO_PUBLISH from PUBLISH.
invalid.status.change.from.publish.to.draft=Status cannot be changed to DRAFT from PUBLISH as Applications are already created for this CALL.
validation.table.message=Data for field {0} is not present. validation.table.message=Data for field {0} is not present.

View File

@@ -60,7 +60,8 @@ status.same.error=Lo stato ? gi? impostato.
invalid.status.change.from.draft=Lo stato non pu? essere cambiato in READY_TO_PUBLISH o PUBLISH da DRAFT. invalid.status.change.from.draft=Lo stato non pu? essere cambiato in READY_TO_PUBLISH o PUBLISH da DRAFT.
status.cannot.be.changed=Lo stato non pu? essere cambiato. status.cannot.be.changed=Lo stato non pu? essere cambiato.
published.call.not.update=Il bando pubblicato non pu? essere aggiornato. published.call.not.update=Il bando pubblicato non pu? essere aggiornato.
invalid.status.change.from.publish=Lo stato non pu? essere modificato in READY_TO_PUBLISH o DRAFT da PUBLISH. invalid.status.change.from.publish=Lo stato non pu? essere modificato in READY_TO_PUBLISH da PUBLISH.
invalid.status.change.from.publish.to.draft=Lo stato non può essere modificato da PUBLISH a DRAFT poiché sono già state create applicazioni per questa CALL.
# Login-related messages # Login-related messages