diff --git a/pom.xml b/pom.xml index 6c201fbbafb516b807d23f59e206af7abff3abe3..e869025f45e7d271adfcb6739fe91d1a8011af52 100644 --- a/pom.xml +++ b/pom.xml @@ -232,6 +232,16 @@ <artifactId>json-utils</artifactId> <version>0.0.24</version> </dependency> + <!-- Spring Boot Starter Data Redis --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-redis</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-mail</artifactId> + </dependency> </dependencies> <build> <plugins> diff --git a/src/main/java/org/upsmf/grievance/controller/GrievanceRaiseController.java b/src/main/java/org/upsmf/grievance/controller/GrievanceRaiseController.java new file mode 100644 index 0000000000000000000000000000000000000000..137d9786095d28d288972bb6eed5011f1e4148cf --- /dev/null +++ b/src/main/java/org/upsmf/grievance/controller/GrievanceRaiseController.java @@ -0,0 +1,34 @@ +package org.upsmf.grievance.controller; + +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.upsmf.grievance.model.GrievanceRaise; +import org.upsmf.grievance.model.GrievanceTicket; +import org.upsmf.grievance.model.Ticket; +import org.upsmf.grievance.service.GrievanceRaiseService; +import org.upsmf.grievance.util.*; + +import javax.annotation.security.PermitAll; + +@RestController +@RequestMapping("/grievance") +public class GrievanceRaiseController { + @Autowired + private GrievanceRaiseService service; + + @PostMapping(value ="/grievanceRaise") + public String addGrievance(@RequestBody GrievanceRaise grievance) + throws JsonProcessingException { + GrievanceTicket grievanceTicket = service.addGrievance(grievance); + // validating response + if (grievanceTicket != null) { + // return success response + return ResponseGenerator.successResponse(grievanceTicket); + } + // return error response + return ResponseGenerator.failureResponse(); + } + + +} diff --git a/src/main/java/org/upsmf/grievance/controller/OtpController.java b/src/main/java/org/upsmf/grievance/controller/OtpController.java new file mode 100644 index 0000000000000000000000000000000000000000..ad528f08fbb4e6f42a714d6b948c236788241250 --- /dev/null +++ b/src/main/java/org/upsmf/grievance/controller/OtpController.java @@ -0,0 +1,42 @@ +package org.upsmf.grievance.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.upsmf.grievance.model.OtpRequest; +import org.upsmf.grievance.model.OtpValidationRequest; +import org.upsmf.grievance.model.Ticket; +import org.upsmf.grievance.service.OtpService; +import org.upsmf.grievance.service.TicketService; + +@RestController +@RequestMapping("/otp") +public class OtpController { + + @Autowired + private OtpService otpService; + + @PostMapping("/generate-otp") + public ResponseEntity<String> generateOtp(@RequestBody OtpRequest otpRequest) { + try { + otpService.generateAndSendOtp(otpRequest); + return ResponseEntity.ok("OTP generated and sent successfully to " + otpRequest.getEmail()); + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body("Failed to generate and send OTP: " + e.getMessage()); + } + } + + @PostMapping("/validate-otp") + public ResponseEntity<String> validateOtp(@RequestBody OtpValidationRequest otpValidationRequest) { + boolean isValid = otpService.validateOtp(otpValidationRequest.getEmail(), otpValidationRequest.getOtp()); + if (isValid) { + return ResponseEntity.ok("OTP validation successful."); + } else { + return ResponseEntity.badRequest().body("Invalid OTP."); + } + } + + +} diff --git a/src/main/java/org/upsmf/grievance/dao/TicketDao.java b/src/main/java/org/upsmf/grievance/dao/TicketDao.java index dfed0c3168f5ffc5739211621d6a835ea81e713a..289e58da94b88f948640a6fef76c82d940c7322c 100644 --- a/src/main/java/org/upsmf/grievance/dao/TicketDao.java +++ b/src/main/java/org/upsmf/grievance/dao/TicketDao.java @@ -81,4 +81,6 @@ public interface TicketDao { boolean sendRepliesToReviews(Updates updates); + Ticket addTicketwithOtp(Ticket ticket,String Otp); + } diff --git a/src/main/java/org/upsmf/grievance/dao/impl/TicketDaoImpl.java b/src/main/java/org/upsmf/grievance/dao/impl/TicketDaoImpl.java index f1425e538e92c93d0e43393feea6093977e90306..474f3beed461ee28ed29b26f80b3c43c24c4c83b 100644 --- a/src/main/java/org/upsmf/grievance/dao/impl/TicketDaoImpl.java +++ b/src/main/java/org/upsmf/grievance/dao/impl/TicketDaoImpl.java @@ -11,6 +11,7 @@ import java.sql.SQLException; import java.sql.Timestamp; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; @@ -52,6 +53,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -62,6 +64,7 @@ import org.springframework.jdbc.core.BatchPreparedStatementSetter; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.PreparedStatementCreator; import org.springframework.jdbc.support.KeyHolder; +import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Repository; import org.springframework.web.client.RestTemplate; import org.springframework.web.multipart.MultipartFile; @@ -97,6 +100,7 @@ import org.upsmf.grievance.model.mapper.SqlDataMapper; import org.upsmf.grievance.model.mapper.SqlDataMapper.HelpdeskRowRecordMapper; import org.upsmf.grievance.model.mapper.SqlDataMapper.TicketWorkFlowMapperV2; import org.upsmf.grievance.service.HelpdeskService; +import org.upsmf.grievance.service.OtpService; import org.upsmf.grievance.service.UserService; import org.upsmf.grievance.util.Constants; import org.upsmf.grievance.util.DateUtil; @@ -169,6 +173,9 @@ public class TicketDaoImpl implements TicketDao { @Autowired private TicketsRequestInterceptor ticketsRequestInterceptor; + @Autowired + private OtpService otpService; + public TicketDaoImpl(@Value("${image.source.attachment.aws}") Boolean attachmentSource, JdbcTemplate jdbcTemplate, HelpdeskDao helpdeskDao, HelpdeskService helpdeskService, SuperAdminDao superAdminDao) { this.attachmentSource = attachmentSource; @@ -282,7 +289,7 @@ public class TicketDaoImpl implements TicketDao { ticket.setOperation("save"); ticket.setStatus(value); if (ticket.getSourceId().equals(3L)) { - sendTicketEmail(ticket); + sendTicketEmailVal(ticket,ticket.getRequesterEmail()); ticketsRequestInterceptor.addData(ticket); } if (!value1) { @@ -296,6 +303,20 @@ public class TicketDaoImpl implements TicketDao { return ticket; } + @Override + public Ticket addTicketwithOtp(Ticket ticket, String Otp){ + if (ProjectUtil.isObjectNull(intializeAddTicket(ticket))) { + return null; + } + if (ProjectUtil.isObjectNull(getApps(ticket))) { + return null; + } + if(!otpService.validateOtp(ticket.getRequesterEmail(),Otp)){ + return null; + } + return addTicket(ticket); + } + public void setUsername(Ticket ticket) { User user = new User(); if (!StringUtils.isBlank(ticket.getUserName())) { @@ -401,7 +422,7 @@ public class TicketDaoImpl implements TicketDao { } public String genText() { - String randomText = "abcdefghijklmnopqrstuvwxyz123456789"; + String randomText = Constants.RANDOM; int length = 5; return RandomStringUtils.random(length, randomText); } @@ -424,6 +445,23 @@ public class TicketDaoImpl implements TicketDao { } } + + private void sendTicketEmailVal(Ticket ticket, String recipientEmail) { + try { + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DateUtil.DEFAULT_DATE_FORMAT); + User user = superAdminDao.userDetailsByUserId(ticket.getRequestedBy()); + user.setOrgId(MasterDataManager.getUserOrgMap().get(ticket.getRequestedBy())); + Map<String, String> keyValue = new HashMap<>(); + keyValue.put(JsonKey.FIRST_NAME, user.getName()); + keyValue.put(JsonKey.ID, ticket.getId().toString()); + keyValue.put(JsonKey.DATE, ticket.getCreatedTime().toLocalDateTime().format(dateTimeFormatter)); + String[] emails = recipientEmail.split(","); + SendMail.sendMail(keyValue, emails, Constants.TICKETCREATION, "new-ticket-createdby-aurora.vm"); + } catch (ResourceNotFoundException e) { + LOGGER.error(String.format(ENCOUNTERED_AN_EXCEPTION_S, e.getMessage())); + } + } + private void mapTicketToHelpdesk(Ticket ticket) { if (ticket.getAppId() != null) { jdbcTemplate.update(Sql.Ticket.ADD_TICKET_TO_HELPDESK, diff --git a/src/main/java/org/upsmf/grievance/model/GrievanceRaise.java b/src/main/java/org/upsmf/grievance/model/GrievanceRaise.java new file mode 100644 index 0000000000000000000000000000000000000000..45f9680d88be297d49154e193b46cd1a74b947e2 --- /dev/null +++ b/src/main/java/org/upsmf/grievance/model/GrievanceRaise.java @@ -0,0 +1,35 @@ +package org.upsmf.grievance.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.*; + +import java.util.List; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString(includeFieldNames = true) +public class GrievanceRaise { + + private String name; + + private String emailId; + + @JsonInclude(JsonInclude.Include.NON_NULL) + private String phone; + + @JsonInclude(JsonInclude.Include.NON_NULL) + private Long orgId; + + @JsonInclude(JsonInclude.Include.NON_NULL) + private Long helpdeskId; + + private String description; + + private List<String> filePath; + + private String otp; + + +} diff --git a/src/main/java/org/upsmf/grievance/model/GrievanceTicket.java b/src/main/java/org/upsmf/grievance/model/GrievanceTicket.java new file mode 100644 index 0000000000000000000000000000000000000000..0bbe8fe5feda5b10aa7f8306918995a99e3fb53e --- /dev/null +++ b/src/main/java/org/upsmf/grievance/model/GrievanceTicket.java @@ -0,0 +1,16 @@ +package org.upsmf.grievance.model; + +import lombok.*; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString(includeFieldNames = true) +@Builder +public class GrievanceTicket { + + private Long ticketId; + + private String date; +} diff --git a/src/main/java/org/upsmf/grievance/model/OtpRequest.java b/src/main/java/org/upsmf/grievance/model/OtpRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..c570af4db0b0bad5efc9a30db57443c4d4d7980a --- /dev/null +++ b/src/main/java/org/upsmf/grievance/model/OtpRequest.java @@ -0,0 +1,17 @@ +package org.upsmf.grievance.model; + +import lombok.*; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString(includeFieldNames = true) +public class OtpRequest { + + private String email; + private String phoneNumber; + + private String name; + +} diff --git a/src/main/java/org/upsmf/grievance/model/OtpValidationRequest.java b/src/main/java/org/upsmf/grievance/model/OtpValidationRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..92093c2b3896c21bfa13bd01f93197753e966255 --- /dev/null +++ b/src/main/java/org/upsmf/grievance/model/OtpValidationRequest.java @@ -0,0 +1,15 @@ +package org.upsmf.grievance.model; + + +import lombok.*; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString(includeFieldNames = true) +public class OtpValidationRequest { + + private String email; + private String otp; +} diff --git a/src/main/java/org/upsmf/grievance/model/RedisTicketData.java b/src/main/java/org/upsmf/grievance/model/RedisTicketData.java new file mode 100644 index 0000000000000000000000000000000000000000..ef8858418fa3dc6c5bb558e4f57edab36d4bd3f4 --- /dev/null +++ b/src/main/java/org/upsmf/grievance/model/RedisTicketData.java @@ -0,0 +1,24 @@ +package org.upsmf.grievance.model; + +import lombok.*; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString(includeFieldNames = true) +public class RedisTicketData { + + private String email; + private Long ticketId; + + private String date; + + private String emailOtp; + + private String mobileOtp; + + private String phoneNumber; + + +} diff --git a/src/main/java/org/upsmf/grievance/model/Ticket.java b/src/main/java/org/upsmf/grievance/model/Ticket.java index 87337b0617a21cd50bb803948f747cd3de9dd0aa..de23e8579b77bf499bf5a6ad0c2577201fddee45 100644 --- a/src/main/java/org/upsmf/grievance/model/Ticket.java +++ b/src/main/java/org/upsmf/grievance/model/Ticket.java @@ -3,6 +3,7 @@ package org.upsmf.grievance.model; import java.sql.Timestamp; import java.util.List; + import org.upsmf.grievance.dto.TicketWorkflowDto; import lombok.AllArgsConstructor; @@ -79,5 +80,25 @@ public class Ticket { private List<String> attachmentUrl; private List<String> selectedTags; private List<Tags> tags; + private String requesterEmail; + private String requesterPhoneNumber; + private String requesterUser; + + private Boolean junk; + + private Long lastUpdatedBy; + + private Boolean escalated; + + private Timestamp escalatedDate; + + private Long escalatedTo; + + private String requestedType; + + private List<String> comment; + + private List<String> requestedAttachmentUrl; + private String escalatedBy; } \ No newline at end of file diff --git a/src/main/java/org/upsmf/grievance/service/GrievanceRaiseService.java b/src/main/java/org/upsmf/grievance/service/GrievanceRaiseService.java new file mode 100644 index 0000000000000000000000000000000000000000..785e5c4d11f31ede0fef3716f50d0de866d77db8 --- /dev/null +++ b/src/main/java/org/upsmf/grievance/service/GrievanceRaiseService.java @@ -0,0 +1,10 @@ +package org.upsmf.grievance.service; + +import org.upsmf.grievance.model.GrievanceRaise; +import org.upsmf.grievance.model.GrievanceTicket; + + +public interface GrievanceRaiseService { + + GrievanceTicket addGrievance(GrievanceRaise grievanceRaise); +} diff --git a/src/main/java/org/upsmf/grievance/service/OtpService.java b/src/main/java/org/upsmf/grievance/service/OtpService.java new file mode 100644 index 0000000000000000000000000000000000000000..af2d950d03a637d012381775c7a9225cf2d21d8a --- /dev/null +++ b/src/main/java/org/upsmf/grievance/service/OtpService.java @@ -0,0 +1,12 @@ +package org.upsmf.grievance.service; + +import org.springframework.stereotype.Service; +import org.upsmf.grievance.model.OtpRequest; +import org.upsmf.grievance.model.Ticket; + +@Service +public interface OtpService { + + String generateAndSendOtp(OtpRequest otpRequest); + boolean validateOtp(String email, String otp); +} diff --git a/src/main/java/org/upsmf/grievance/service/OtpServiceImpl.java b/src/main/java/org/upsmf/grievance/service/OtpServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..13833c267a69ba397a88c134d8d071fa80b35cf2 --- /dev/null +++ b/src/main/java/org/upsmf/grievance/service/OtpServiceImpl.java @@ -0,0 +1,112 @@ +package org.upsmf.grievance.service; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.mail.SimpleMailMessage; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.stereotype.Service; +import org.upsmf.grievance.model.OtpRequest; +import org.upsmf.grievance.model.RedisTicketData; + + +import java.util.concurrent.TimeUnit; + +@Service(value = "OtpService") +public class OtpServiceImpl implements OtpService{ + + @Autowired + private StringRedisTemplate redisTemplate; + + @Autowired + private JavaMailSender mailSender; + + @Value("${otp.expiration.minutes}") + private int otpExpirationMinutes; + + + + @Autowired + public OtpServiceImpl(StringRedisTemplate redisTemplate, JavaMailSender mailSender) { + this.redisTemplate = redisTemplate; + this.mailSender = mailSender; + } + + @Override + public String generateAndSendOtp(OtpRequest otpRequest) { + String email = otpRequest.getEmail(); + String otp = generateOtp(); + String mobileOtp= generateOtp(); + RedisTicketData redisTicketData = new RedisTicketData(); + redisTicketData.setEmail(email); + redisTicketData.setPhoneNumber(otpRequest.getPhoneNumber()); + redisTicketData.setEmailOtp(otp); + redisTicketData.setMobileOtp(mobileOtp); + + + + String redisKey = "otp:" + email; + redisTemplate.opsForValue().set(redisKey, toJson(redisTicketData), otpExpirationMinutes, TimeUnit.MINUTES); + + sendOtpEmail(email, otp); + return otp; + } + + @Override + public boolean validateOtp(String email, String enteredOtp) { + String redisKey = "otp:" + email; + String redisData = redisTemplate.opsForValue().get(redisKey); + if (redisData != null) { + RedisTicketData ticketData = fromJson(redisData, RedisTicketData.class); + if (ticketData.getEmailOtp().equals(enteredOtp)) { + // Remove the data from Redis after successful validation + redisTemplate.delete(redisKey); + return true; + } + } + return false; + } + + private String toJson(Object obj) { + try { + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.writeValueAsString(obj); + } catch (JsonProcessingException e) { + // Handle the exception + return null; + } + } + + private <T> T fromJson(String json, Class<T> valueType) { + try { + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.readValue(json, valueType); + } catch (JsonProcessingException e) { + // Handle the exception + return null; + } + } + + + private String generateOtp() { + int otpLength = 6; + StringBuilder otp = new StringBuilder(); + + for (int i = 0; i < otpLength; i++) { + int digit = (int) (Math.random() * 10); + otp.append(digit); + } + + return otp.toString(); + } + + private void sendOtpEmail(String email, String otp) { + SimpleMailMessage message = new SimpleMailMessage(); + message.setTo(email); + message.setSubject("Your OTP for Ticket Creation"); + message.setText("Your OTP is: " + otp); + mailSender.send(message); + } +} diff --git a/src/main/java/org/upsmf/grievance/service/TicketService.java b/src/main/java/org/upsmf/grievance/service/TicketService.java index 4cf25d731ca97d80a91d4d63d8d1a59fd3234326..34ad309d3ddf48a7c7f9eeb9ed46842fbd5ebd1b 100644 --- a/src/main/java/org/upsmf/grievance/service/TicketService.java +++ b/src/main/java/org/upsmf/grievance/service/TicketService.java @@ -79,4 +79,6 @@ public interface TicketService { TicketCount getNoOfTickets(Long userId); boolean pinTicket(Ticket ticket); + + Ticket addTicketWithOtp(Ticket ticket, String otp); } diff --git a/src/main/java/org/upsmf/grievance/service/impl/GrievanceRaiseServiceImpl.java b/src/main/java/org/upsmf/grievance/service/impl/GrievanceRaiseServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..88124dff15c8078bac0e0416677dcd9a81a13d9c --- /dev/null +++ b/src/main/java/org/upsmf/grievance/service/impl/GrievanceRaiseServiceImpl.java @@ -0,0 +1,61 @@ +package org.upsmf.grievance.service.impl; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.upsmf.grievance.model.GrievanceRaise; +import org.upsmf.grievance.model.GrievanceTicket; +import org.upsmf.grievance.model.Ticket; +import org.upsmf.grievance.service.GrievanceRaiseService; +import org.upsmf.grievance.service.TicketService; + +@Service(value = "GrievanceRaiseService") +public class GrievanceRaiseServiceImpl implements GrievanceRaiseService { + + @Autowired + private TicketService ticketService; + + @Value("${source_default_request_id}") + private Long sourceId; + + @Value("${default_app_name}") + private String appName; + + @Value("${default_app_id}") + private Long appId; + + @Value("${default_app_key}") + private String appKey; + + public static final Logger LOGGER = LoggerFactory.getLogger(GrievanceRaiseServiceImpl.class); + + @Override + public GrievanceTicket addGrievance(GrievanceRaise grievance) { + LOGGER.info("Enter the addGrievanc method"); + Ticket ticket=new Ticket(); + ticket.setUserName(grievance.getName()); + ticket.setHelpdeskId(grievance.getHelpdeskId()); + ticket.setSourceId(sourceId); + ticket.setAppKey(appKey); + ticket.setAppId(appId); + ticket.setDescription(grievance.getDescription()); + ticket.setAppName(appName); + ticket.setRequesterUser(grievance.getName()); + ticket.setRequesterEmail(grievance.getEmailId()); + ticket.setRequesterPhoneNumber(grievance.getPhone()); + LOGGER.info("added all values to ticket" + ticket); + ticket=ticketService.addTicketWithOtp(ticket,grievance.getOtp()); + + // checking response + GrievanceTicket grievanceTicket = null; + LOGGER.info("after raise and sent a ticket to mail taking ticketid"+ticket.getId()+" date"+ticket.getCreatedTimeTS()); + if(ticket!=null && ticket.getId()>0){ + grievanceTicket = GrievanceTicket.builder().ticketId(ticket.getId()) + .date(ticket.getCreatedTime().toString()).build(); + // send mail to stakeholder i.e. requestor, admins + } + return grievanceTicket; + } +} diff --git a/src/main/java/org/upsmf/grievance/service/impl/TicketServiceImpl.java b/src/main/java/org/upsmf/grievance/service/impl/TicketServiceImpl.java index 3925cd5233a1a42c85de0095f1310e4adecea3fd..009558eed9513de1e94affb27bda367f588983ad 100644 --- a/src/main/java/org/upsmf/grievance/service/impl/TicketServiceImpl.java +++ b/src/main/java/org/upsmf/grievance/service/impl/TicketServiceImpl.java @@ -234,6 +234,11 @@ public class TicketServiceImpl implements TicketService { return ticketDao.pinTicket(ticket); } + @Override + public Ticket addTicketWithOtp(Ticket ticket, String otp) { + return ticketDao.addTicketwithOtp(ticket,otp); + } + @Override public TicketCount getNoOfTickets(Long userId) { return ticketDao.getNoOfTickets(userId); diff --git a/src/main/java/org/upsmf/grievance/util/Constants.java b/src/main/java/org/upsmf/grievance/util/Constants.java index 5fe70df828ba299e6c2e3685b7081651a3fcffa6..ef6edc9afa681462be351dca54c6e1c8b3202637 100644 --- a/src/main/java/org/upsmf/grievance/util/Constants.java +++ b/src/main/java/org/upsmf/grievance/util/Constants.java @@ -332,9 +332,8 @@ public class Constants { public static final String MAX_RATING = "max-rating"; public static final String RATE = "rate"; public static final String DESCRIPTION = "description"; - + public static final String RANDOM="abcdefghijklmnopqrstuvwxyz123456789"; public static final String EL_STIC123 = "Elastic123"; - public static final String ELASTIC = "elastic"; private static final String[] INCLUDE_FIELDS = new String[] { ID, STATUS, TOTAL, DESCRIPTION, PINNED_TICKET, diff --git a/src/main/java/org/upsmf/grievance/util/JsonKey.java b/src/main/java/org/upsmf/grievance/util/JsonKey.java index ee88bd18b4ba8cb910624cfe8eb24876a53820ab..3a803898a5c008a7317d551085f36cf14615a5ac 100644 --- a/src/main/java/org/upsmf/grievance/util/JsonKey.java +++ b/src/main/java/org/upsmf/grievance/util/JsonKey.java @@ -112,4 +112,6 @@ public class JsonKey { public static final String NEWSTATUS = "newStatus"; public static final String ID = "id"; public static final String HELPDESKID = "helpdeskId"; + + public static final String DATE = "date"; } diff --git a/src/main/java/org/upsmf/grievance/util/Sql.java b/src/main/java/org/upsmf/grievance/util/Sql.java index 6ed78a0aa668615083af8a6e075824a9feed28c8..04c433d35efd6b4cdd39f0a19fbe58d8e18eb8ac 100644 --- a/src/main/java/org/upsmf/grievance/util/Sql.java +++ b/src/main/java/org/upsmf/grievance/util/Sql.java @@ -294,7 +294,7 @@ public final class Sql { public static final String GET_USER_ID_AND_USER_NAME = "SELECT id,name FROM \"user\" where is_active is true;"; public static final String UPDATE_ALLOW_ALL_USERS = "UPDATE helpdesk SET allow_all_users = ? WHERE id = ?"; public static final String REMOVE_ALL_TICKET_ATTACHMENT = "DELETE FROM ticket_attachment where ticket_id=?"; - public static final String GET_HELPDESK_CHANNELS = "SELECT direct, playstore, appstore, aurora_sdk FROM helpdesk where id=? and is_active is true "; + public static final String GET_HELPDESK_CHANNELS = "SELECT direct, playstore, appstore, grievance_sdk FROM helpdesk where id=? and is_active is true "; public static final String QUERY1 = "SELECT toa.aut_id as id, toa.base_url as name, auth_name as description from organization_auth toa, "; public static final String QUERY2 = " authentication auth WHERE toa.aut_id = auth.id AND toa.org_id = "; diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ba08c5bc3ccdf374e20b4301a5ec3ada42baa471..f3aff8c23b97d9e7685c9cb38f0a01da7ed19b30 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -13,7 +13,7 @@ spring.jpa.hibernate.ddl-auto=none spring.datasource.initialization-mode=always spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -urls.whitelist=/,/user/login,/user/logout,/signup,/token/validate,/upload,/user/forgotPassword,/superadmin/getAuthTypes,/tickets/getTemplateVersion,/user/updateEkstepUser,/superadmin/addOrganization,/helpdesk/getPerformanceWithoutAccessControl +urls.whitelist=/,/user/login,/user/logout,/signup,/token/validate,/upload,/user/forgotPassword,/superadmin/getAuthTypes,/tickets/getTemplateVersion,/user/updateEkstepUser,/superadmin/addOrganization,/helpdesk/getPerformanceWithoutAccessControl,/grievance/grievanceRaise,/otp/generate-otp,/otp/validate-otp services.esindexer.host=es.rain.idc.tarento.com services.esindexer.host.name=http://es.rain.idc.tarento.com/ @@ -32,7 +32,22 @@ elk.data.up=true image.source.aws=true image.source.attachment.aws=true +source_default_request_id=3 +default_app_name=test app 9 +default_app_id=1 +default_app_key=26f3847b-74f5-418d-9621-c331b1907131 +spring.redis.host= +spring.redis.port= +# OTP expiration time in minutes +otp.expiration.minutes=5 + +spring.mail.host= +spring.mail.port= +spring.mail.username= +spring.mail.password= +spring.mail.properties.mail.smtp.auth=true +spring.mail.properties.mail.smtp.starttls.enable=true