From 5252d3b81f35868aa7597792443ca29b2047f70a Mon Sep 17 00:00:00 2001 From: lakshmikommalapati <lakshmi.kommalapati@tarento.com> Date: Fri, 4 Aug 2023 18:43:45 +0530 Subject: [PATCH] create new Api for guest user can create ticket --- .../controller/GrievanceRaiseController.java | 36 +++++++++++ .../upsmf/grievance/model/GrievanceRaise.java | 40 +++++++++++++ .../grievance/model/GrievanceTicket.java | 16 +++++ .../org/upsmf/grievance/model/Ticket.java | 5 ++ .../service/GrievanceRaiseService.java | 10 ++++ .../impl/GrievanceRaiseServiceImpl.java | 59 +++++++++++++++++++ .../java/org/upsmf/grievance/util/Sql.java | 2 +- src/main/resources/application.properties | 8 ++- 8 files changed, 172 insertions(+), 4 deletions(-) create mode 100644 src/main/java/org/upsmf/grievance/controller/GrievanceRaiseController.java create mode 100644 src/main/java/org/upsmf/grievance/model/GrievanceRaise.java create mode 100644 src/main/java/org/upsmf/grievance/model/GrievanceTicket.java create mode 100644 src/main/java/org/upsmf/grievance/service/GrievanceRaiseService.java create mode 100644 src/main/java/org/upsmf/grievance/service/impl/GrievanceRaiseServiceImpl.java 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 0000000..ef8bb8c --- /dev/null +++ b/src/main/java/org/upsmf/grievance/controller/GrievanceRaiseController.java @@ -0,0 +1,36 @@ +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; + @Autowired + private Ticket ticket; + + @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/model/GrievanceRaise.java b/src/main/java/org/upsmf/grievance/model/GrievanceRaise.java new file mode 100644 index 0000000..503ae7b --- /dev/null +++ b/src/main/java/org/upsmf/grievance/model/GrievanceRaise.java @@ -0,0 +1,40 @@ +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 appKey; + + private Long appId; + + private String appName; + + + +} 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 0000000..0bbe8fe --- /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/Ticket.java b/src/main/java/org/upsmf/grievance/model/Ticket.java index 87337b0..22b6b95 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.springframework.stereotype.Component; import org.upsmf.grievance.dto.TicketWorkflowDto; import lombok.AllArgsConstructor; @@ -16,6 +17,7 @@ import lombok.ToString; @NoArgsConstructor @AllArgsConstructor @ToString(includeFieldNames = true) +@Component public class Ticket { private Long userId; @@ -79,5 +81,8 @@ public class Ticket { private List<String> attachmentUrl; private List<String> selectedTags; private List<Tags> tags; + private String requesterEmail; + private String requesterPhoneNumber; + private String requesterUser; } \ 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 0000000..785e5c4 --- /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/impl/GrievanceRaiseServiceImpl.java b/src/main/java/org/upsmf/grievance/service/impl/GrievanceRaiseServiceImpl.java new file mode 100644 index 0000000..725184e --- /dev/null +++ b/src/main/java/org/upsmf/grievance/service/impl/GrievanceRaiseServiceImpl.java @@ -0,0 +1,59 @@ +package org.upsmf.grievance.service.impl; + +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; + + @Autowired + private Ticket ticket; + + @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; + + + @Override + public GrievanceTicket addGrievance(GrievanceRaise grievance) { + + 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()); + + ticket=ticketService.addTicket(ticket); + + // checking response + GrievanceTicket grievanceTicket = null; + 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/util/Sql.java b/src/main/java/org/upsmf/grievance/util/Sql.java index 6ed78a0..04c433d 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 ba08c5b..22fd476 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 services.esindexer.host=es.rain.idc.tarento.com services.esindexer.host.name=http://es.rain.idc.tarento.com/ @@ -32,7 +32,9 @@ 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 -- GitLab