Done Ticket GEPAFINBE-207 Updated the API to update the call status from Publish status to Draft.
This commit is contained in:
@@ -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";
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user