Skip to content
Snippets Groups Projects
Commit b6d9b7e5 authored by Zain Munshi's avatar Zain Munshi
Browse files

get link function

parent 06d98e75
Branches
Tags
No related merge requests found
......@@ -24,5 +24,7 @@ public class Complaint {
@Size(min = 10, max = 250, message = "complaint message must be between 10 and 250 characters")
private String textBox;
private List<Integer> linkedComplaints;
}
......@@ -16,6 +16,9 @@ import org.springframework.web.servlet.ModelAndView;
import java.sql.Timestamp;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
@Controller
@RequestMapping("/complaint")
......@@ -42,7 +45,7 @@ public class ComplaintController {
ModelAndView modelandView = new ModelAndView(String.format("redirect:/%s/complaint", accessLevel));
return modelandView;
}
}
}
@PostMapping("/update-complaint")
......@@ -89,14 +92,15 @@ public class ComplaintController {
}
@PostMapping("/link")
public void addLink(@RequestParam("to_id")Integer to_id, @RequestParam("from_id") Integer from_id, Authentication userAuth){
System.out.println(from_id);
System.out.println(to_id);
public ModelAndView addLink(@RequestParam("to_id")Integer to_id,@RequestParam("complaint") Integer from_id, Authentication userAuth){
String accessLevel = userAuth.getAuthorities().iterator().next().toString().toLowerCase();
complaintService.addLink(userAuth, from_id, to_id);
// return new ModelAndView("redirect:/staff/complaint/details/"+ from_id);
Scanner myObj = new Scanner(System.in);
System.out.println("Enter link id");
String userName = myObj.nextLine();
complaintService.getLink(userAuth,from_id);
return new ModelAndView(String.format("redirect:/%s/complaint/details/%d", accessLevel, 2));
}
}
......@@ -5,6 +5,7 @@ import com.project.cms.complaint.enums.FCAType;
import org.springframework.security.core.Authentication;
import java.util.List;
import java.util.Map;
public interface ComplaintRepository {
Complaint getComplaintById(Authentication userAuth, int id);
......@@ -15,7 +16,7 @@ public interface ComplaintRepository {
List<Complaint> getComplaint( Authentication userAuth, String policyNumber, String title);
boolean updateFCAType(Authentication userAuth, int id, FCAType newType);
boolean updateStatus(Authentication userAuth, int id, Boolean newStatus);
void getLink(Authentication userAuth, int id);
List<Map<String, Object>> getLink(Authentication userAuth, int id);
void addLink(Authentication userAuth, int from_id, int to_id);
}
......@@ -4,6 +4,7 @@ import com.project.cms.complaint.enums.FCAType;
import com.project.cms.complaint.enums.ComplaintMethod;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.ColumnMapRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.security.core.Authentication;
......@@ -12,9 +13,13 @@ import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.stereotype.Repository;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.stream.Collectors;
import java.util.List;
import java.util.Map;
import static org.thymeleaf.util.ListUtils.size;
......@@ -217,13 +222,21 @@ public class ComplaintRepositoryImpl implements ComplaintRepository{
}
@Override
public void getLink(Authentication userAuth, int id) {
public List<Map<String, Object>> getLink(Authentication userAuth, int id) {
String sql = "SELECT * FROM linked_complaint WHERE from_complaint = ?";
List<Map<String, Object>> data=jdbcTemplate.queryForList(sql,id);
return data;
}
@Override
public void addLink(Authentication userAuth, int from_id, int to_id) {
System.out.println(from_id);
if (!userAuth.isAuthenticated()){
return;
}
......@@ -233,11 +246,11 @@ public class ComplaintRepositoryImpl implements ComplaintRepository{
if (userRoles.contains(new SimpleGrantedAuthority("STAFF")) || userRoles.contains(new SimpleGrantedAuthority("ADMIN") )){
jdbcTemplate.update(
"INSERT INTO complaint (complaint_from,complaint_to) VALUES (?,?)", from_id, to_id
"INSERT INTO linked_complaint (from_complaint,to_complaint) VALUES (?,?)", from_id, to_id
);
jdbcTemplate.update(
"INSERT INTO complaint (complaint_from,complaint_to) VALUES (?,?)", to_id,from_id
"INSERT INTO linked_complaint (from_complaint,to_complaint) VALUES (?,?)", to_id,from_id
);
......
......@@ -4,6 +4,7 @@ import com.project.cms.complaint.enums.FCAType;
import org.springframework.security.core.Authentication;
import java.util.List;
import java.util.Map;
public interface ComplaintService {
Complaint getComplaintById(Authentication userAuth, int id);
......@@ -14,6 +15,6 @@ public interface ComplaintService {
List<Complaint> getComplaint(Authentication userAuth, String policyNumber, String title);
boolean updateFCAType(Authentication userAuth, int id, FCAType newType);
boolean updateStatus(Authentication userAuth, int id, Boolean newStatus);
List<Map<String, Object>> getLink(Authentication userAuth, int id);
void addLink(Authentication userAuth, int from_id, int to_id);
}
......@@ -5,6 +5,7 @@ import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class ComplaintServiceImpl implements ComplaintService{
......@@ -54,6 +55,12 @@ public class ComplaintServiceImpl implements ComplaintService{
return complaintRepository.updateStatus(userAuth, id, newStatus);
}
@Override
public List<Map<String, Object>> getLink(Authentication userAuth, int id) {
return complaintRepository.getLink(userAuth,id);
}
@Override
public void addLink(Authentication userAuth, int from_id, int to_id) {
complaintRepository.addLink(userAuth, from_id, to_id);
......
......@@ -63,12 +63,17 @@
</div>
<div>
<h4>Linked Complaints</h4>
</div>
<div class="d-flex flex-column mt-3">
<form th:action = "@{/complaint/link}" method="post">
<input type="number" name = "to_id" id="to_id" placeholder="Link Complaint Id">
<input type="hidden" name = "complaint" th:value="${complaintObject.id}" id="complaint">
<input type="hidden" name = "from_id" th:value="${complaintObject.id}" id="from_id">
<button class="btn btn-primary" type="submit">Submit</button>
<button class="btn btn-primary" type="submit">Link</button>
</form>
</div>
......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CMS | 500</title>
<link th:replace="~{fragments/header :: bootstrap-css}"/>
</head>
<body>
<div th:replace="~{fragments/header :: header}"/>
<h1 class="fw-bold text-center mt-3"> 500 | Something went wrong</h1>
</body>
</html>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment