Time issue resolve

This commit is contained in:
harish
2024-10-23 12:23:34 +05:30
parent 2810a809d7
commit 647c05d457
6 changed files with 40 additions and 1 deletions

View File

@@ -250,5 +250,6 @@ public class GepafinConstant {
public static final String EVALUATIONCRITERIA_INVALID = "evaluationCriteria.invalid";
public static final String APPLICATION_NOT_IN_DRAFT_STATUS="application.not.in.draft.status";
public static final String GET_ERROR_S3 = "get.error.s3";
public static final String INVALID_APPLICATION_STATUS = "invalid.application.status";
}

View File

@@ -5,6 +5,7 @@ import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.entities.ApplicationEntity;
import net.gepafin.tendermanagement.entities.AssignedApplicationsEntity;
import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
import net.gepafin.tendermanagement.enums.AssignedApplicationEnum;
import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest;
import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse;
@@ -46,6 +47,12 @@ public class AssignedApplicationsDao {
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_ALREADY_ASSIGNED));
}
ApplicationEntity application = applicationService.validateApplication(applicationId);
if (Boolean.FALSE.equals(ApplicationStatusTypeEnum.SUBMIT.equals(application.getStatus()))) {
throw new CustomValidationException(
Status.BAD_REQUEST,
Translator.toLocale(GepafinConstant.INVALID_APPLICATION_STATUS)
);
}
UserEntity user = userService.validateUser(userId);
AssignedApplicationsEntity assignment = createAssignmentEntity(application, user.getId(), assignedByUser, assignedApplicationsRequest);
AssignedApplicationsResponse assignApplicationToInstructorResponse = convertEntityToResponse(assignment, assignedApplicationsRequest);

View File

@@ -5,8 +5,10 @@ import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import net.gepafin.tendermanagement.enums.CallStatusEnum;
import net.gepafin.tendermanagement.util.DynamicLocalTimeSerializer;
@Data
public class CallResponse {
@@ -47,8 +49,10 @@ public class CallResponse {
private String phoneNumber;
@JsonSerialize(using = DynamicLocalTimeSerializer.class)
private LocalTime startTime;
@JsonSerialize(using = DynamicLocalTimeSerializer.class)
private LocalTime endTime;
private LocalDateTime createdDate;

View File

@@ -0,0 +1,26 @@
package net.gepafin.tendermanagement.util;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class DynamicLocalTimeSerializer extends JsonSerializer<LocalTime> {
private static final DateTimeFormatter HH_MM_FORMAT = DateTimeFormatter.ofPattern("HH:mm");
private static final DateTimeFormatter HH_MM_SS_FORMAT = DateTimeFormatter.ofPattern("HH:mm:ss");
@Override
public void serialize(LocalTime time, JsonGenerator gen, SerializerProvider serializers) throws IOException {
// Use HH:mm if seconds are 00, otherwise use HH:mm:ss
String formattedTime = (time.getSecond() == 0)
? time.format(HH_MM_FORMAT)
: time.format(HH_MM_SS_FORMAT);
gen.writeString(formattedTime);
}
}