From 9cc0007aed4b95a47cb4f1215f84f1f99dc398e7 Mon Sep 17 00:00:00 2001 From: risadmin_prod Date: Tue, 20 Aug 2024 05:15:27 +0000 Subject: [PATCH] build_app --- .../Builders/Services/BuilderService.java | 3 + .../test1/Controllers/Test1Controller.java | 82 ++ .../java/com/realnet/test1/Entity/Test1.java | 30 + .../test1/Repository/Test1Repository.java | 19 + .../realnet/test1/Services/Test1Service.java | 68 ++ .../authsec_mysql/mysql/wf_table/wf_table.sql | 2 + .../authsec_react_materail_ui/src/App.js | 7 +- .../BuilderComponents/test1/Test1/Test1.js | 733 ++++++++++++++++++ 8 files changed, 943 insertions(+), 1 deletion(-) create mode 100644 prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Controllers/Test1Controller.java create mode 100644 prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Entity/Test1.java create mode 100644 prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Repository/Test1Repository.java create mode 100644 prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Services/Test1Service.java create mode 100755 prod121mui-db-d/authsec_mysql/mysql/wf_table/wf_table.sql create mode 100644 prod121mui-front-f/authsec_react_materail_ui/authsec_react_materail_ui/src/components/BuilderComponents/test1/Test1/Test1.js diff --git a/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/Builders/Services/BuilderService.java b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/Builders/Services/BuilderService.java index 931ca7c..93057c2 100644 --- a/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/Builders/Services/BuilderService.java +++ b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/Builders/Services/BuilderService.java @@ -46,6 +46,9 @@ public class BuilderService { public void callotherService() { // ADD OTHER SERVICE +addCustomMenu( "Test1", "Transcations"); + + diff --git a/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Controllers/Test1Controller.java b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Controllers/Test1Controller.java new file mode 100644 index 0000000..e610e8f --- /dev/null +++ b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Controllers/Test1Controller.java @@ -0,0 +1,82 @@ +package com.realnet.test1.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.beans.factory.annotation.*; +import com.realnet.test1.Entity.Test1; +import com.realnet.test1.Services.Test1Service ; +@RequestMapping(value = "/Test1") + @CrossOrigin("*") +@RestController +public class Test1Controller { + @Autowired + private Test1Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + @PostMapping("/Test1") + public Test1 Savedata(@RequestBody Test1 data) { + Test1 save = Service.Savedata(data) ; + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Test1/{id}") + public Test1 update(@RequestBody Test1 data,@PathVariable Integer id ) { + Test1 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Test1/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Test1") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Test1") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Test1/{id}") + public Test1 getdetailsbyId(@PathVariable Integer id ) { + Test1 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Test1/{id}") + public void delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + + } + +} \ No newline at end of file diff --git a/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Entity/Test1.java b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Entity/Test1.java new file mode 100644 index 0000000..81df515 --- /dev/null +++ b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Entity/Test1.java @@ -0,0 +1,30 @@ +package com.realnet.test1.Entity; + import lombok.*; +import com.realnet.WhoColumn.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + @Entity + @Data + public class Test1 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String namemm; + +@Column(length = 2000) +private String descriptionmm; + + +} diff --git a/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Repository/Test1Repository.java b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Repository/Test1Repository.java new file mode 100644 index 0000000..299a596 --- /dev/null +++ b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Repository/Test1Repository.java @@ -0,0 +1,19 @@ +package com.realnet.test1.Repository; + + +import org.springframework.data.jpa.repository.JpaRepository; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + +import com.realnet.test1.Entity.Test1; + +@Repository +public interface Test1Repository extends JpaRepository { +} \ No newline at end of file diff --git a/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Services/Test1Service.java b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Services/Test1Service.java new file mode 100644 index 0000000..9ac92cd --- /dev/null +++ b/prod121mui-back-b/authsec_springboot/backend/src/main/java/com/realnet/test1/Services/Test1Service.java @@ -0,0 +1,68 @@ +package com.realnet.test1.Services; +import com.realnet.test1.Repository.Test1Repository; +import com.realnet.test1.Entity.Test1;import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import com.realnet.Notification.Entity.NotificationService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + import org.springframework.stereotype.Service; + +@Service + public class Test1Service { +@Autowired +private Test1Repository Repository; + @Autowired + private AppUserServiceImpl userService; + + + +public Test1 Savedata(Test1 data) { + + + + +Test1 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll(page); + } +public List getdetails() { + return (List) Repository.findAll(); + } + + +public Test1 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Test1 update(Test1 data,Integer id) { + Test1 old = Repository.findById(id).get(); +old.setNamemm(data.getNamemm()); + +old.setDescriptionmm(data.getDescriptionmm()); + +final Test1 test = Repository.save(old); + return test;} + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/prod121mui-db-d/authsec_mysql/mysql/wf_table/wf_table.sql b/prod121mui-db-d/authsec_mysql/mysql/wf_table/wf_table.sql new file mode 100755 index 0000000..0a5c3ea --- /dev/null +++ b/prod121mui-db-d/authsec_mysql/mysql/wf_table/wf_table.sql @@ -0,0 +1,2 @@ +CREATE TABLE db.Test1(id BIGINT NOT NULL AUTO_INCREMENT, Namemm VARCHAR(400), Descriptionmm VARCHAR(400), PRIMARY KEY (id)); + diff --git a/prod121mui-front-f/authsec_react_materail_ui/authsec_react_materail_ui/src/App.js b/prod121mui-front-f/authsec_react_materail_ui/authsec_react_materail_ui/src/App.js index 5b63a92..0f42367 100644 --- a/prod121mui-front-f/authsec_react_materail_ui/authsec_react_materail_ui/src/App.js +++ b/prod121mui-front-f/authsec_react_materail_ui/authsec_react_materail_ui/src/App.js @@ -1,3 +1,5 @@ +import Test1 from "./components/BuilderComponents/test1/Test1/Test1"; + import React from "react"; import { Routes, Route } from "react-router-dom"; import { BrowserRouter as Router } from 'react-router-dom'; @@ -41,6 +43,9 @@ const App = () => { {/* buildercomponents */} + } /> + + @@ -50,4 +55,4 @@ const App = () => { ); }; -export default App; +export default App; \ No newline at end of file diff --git a/prod121mui-front-f/authsec_react_materail_ui/authsec_react_materail_ui/src/components/BuilderComponents/test1/Test1/Test1.js b/prod121mui-front-f/authsec_react_materail_ui/authsec_react_materail_ui/src/components/BuilderComponents/test1/Test1/Test1.js new file mode 100644 index 0000000..4c0194a --- /dev/null +++ b/prod121mui-front-f/authsec_react_materail_ui/authsec_react_materail_ui/src/components/BuilderComponents/test1/Test1/Test1.js @@ -0,0 +1,733 @@ +import React, { useEffect, useState } from "react"; +import axios from "axios"; +import { + Button, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + Snackbar, + Alert, + Typography, + TextField, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + TablePagination, + Paper, + IconButton, + InputAdornment, +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; +import SearchIcon from "@mui/icons-material/Search"; + +const API_URL = `${process.env.REACT_APP_API_URL}/Testrm5/Testrm5`; +const token = localStorage.getItem("authToken"); +// Custom styles using makeStyles +const useStyles = makeStyles((theme) => ({ + tableHeader: { + backgroundColor: "#000000", + color: "#ffffff", + }, + searchContainer: { + display: "flex", + alignItems: "center", + marginBottom: theme.spacing(2), + }, + searchInput: { + marginRight: theme.spacing(2), + flex: 1, + }, + tableContainer: { + marginTop: theme.spacing(2), + }, + dialogContent: { + display: "flex", + flexDirection: "column", + gap: theme.spacing(2), + }, + formControl: { + marginBottom: theme.spacing(2), + }, + button: { + margin: theme.spacing(1), + }, +})); + +const EntityTable = () => { + const classes = useStyles(); + const [data, setData] = useState([]); + const [filteredData, setFilteredData] = useState([]); + const [newEntity, setNewEntity] = useState({ + +import React, { useEffect, useState } from "react"; +import axios from "axios"; +import { + Button, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + Snackbar, + Alert, + Typography, + TextField, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + TablePagination, + Paper, + IconButton, + InputAdornment, +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; +import SearchIcon from "@mui/icons-material/Search"; + +const API_URL = `${process.env.REACT_APP_API_URL}/Testrm5/Testrm5`; +const token = localStorage.getItem("authToken"); +// Custom styles using makeStyles +const useStyles = makeStyles((theme) => ({ + tableHeader: { + backgroundColor: "#000000", + color: "#ffffff", + }, + searchContainer: { + display: "flex", + alignItems: "center", + marginBottom: theme.spacing(2), + }, + searchInput: { + marginRight: theme.spacing(2), + flex: 1, + }, + tableContainer: { + marginTop: theme.spacing(2), + }, + dialogContent: { + display: "flex", + flexDirection: "column", + gap: theme.spacing(2), + }, + formControl: { + marginBottom: theme.spacing(2), + }, + button: { + margin: theme.spacing(1), + }, +})); + +const EntityTable = () => { + const classes = useStyles(); + const [data, setData] = useState([]); + const [filteredData, setFilteredData] = useState([]); + const [newEntity, setNewEntity] = useState({ + + namemm: "", + + descriptionmm: "", + +}); + const [editEntity, setEditEntity] = useState(null); + const [showEditModal, setShowEditModal] = useState(false); + const [showAddModal, setShowAddModal] = useState(false); + const [showDeleteModal, setShowDeleteModal] = useState(false); + const [deleteEntityId, setDeleteEntityId] = useState(null); + const [currentPage, setCurrentPage] = useState(0); + const [itemsPerPage] = useState(5); // Adjust this value as needed + const [searchQuery, setSearchQuery] = useState(""); + const [openSnackbar, setOpenSnackbar] = useState(false); + const [snackbarMessage, setSnackbarMessage] = useState(""); + const [snackbarSeverity, setSnackbarSeverity] = useState("success"); + + const handlePageChange = (event, newPage) => { + setCurrentPage(newPage); + }; + + useEffect(() => { + fetchData(); + }, []); + + useEffect(() => { + handleSearch(); + }, [searchQuery, data]); + + const fetchData = async () => { + try { + const response = await axios.get(API_URL, { + headers: { Authorization: `Bearer ${token}` }, + }); + setData(response.data); + } catch (error) { + console.error("Error fetching data:", error); + } + }; + + const handleDelete = async () => { + try { + await axios.delete(`${API_URL}/${deleteEntityId}`, { + headers: { Authorization: `Bearer ${token}` }, + }); + fetchData(); + setSnackbarMessage("Successfully deleted!"); + setSnackbarSeverity("success"); + setOpenSnackbar(true); + setShowDeleteModal(false); + } catch (error) { + console.error("Error deleting data:", error); + setSnackbarMessage("Failed to delete!"); + setSnackbarSeverity("error"); + setOpenSnackbar(true); + } + }; + + const handleAdd = async () => { + try { + await axios.post(API_URL, newEntity, { + headers: { Authorization: `Bearer ${token}` }, + }); + fetchData(); + setNewEntity({ + +}); + const [editEntity, setEditEntity] = useState(null); + const [showEditModal, setShowEditModal] = useState(false); + const [showAddModal, setShowAddModal] = useState(false); + const [showDeleteModal, setShowDeleteModal] = useState(false); + const [deleteEntityId, setDeleteEntityId] = useState(null); + const [currentPage, setCurrentPage] = useState(0); + const [itemsPerPage] = useState(5); // Adjust this value as needed + const [searchQuery, setSearchQuery] = useState(""); + const [openSnackbar, setOpenSnackbar] = useState(false); + const [snackbarMessage, setSnackbarMessage] = useState(""); + const [snackbarSeverity, setSnackbarSeverity] = useState("success"); + + const handlePageChange = (event, newPage) => { + setCurrentPage(newPage); + }; + + useEffect(() => { + fetchData(); + }, []); + + useEffect(() => { + handleSearch(); + }, [searchQuery, data]); + + const fetchData = async () => { + try { + const response = await axios.get(API_URL, { + headers: { Authorization: `Bearer ${token}` }, + }); + setData(response.data); + } catch (error) { + console.error("Error fetching data:", error); + } + }; + + const handleDelete = async () => { + try { + await axios.delete(`${API_URL}/${deleteEntityId}`, { + headers: { Authorization: `Bearer ${token}` }, + }); + fetchData(); + setSnackbarMessage("Successfully deleted!"); + setSnackbarSeverity("success"); + setOpenSnackbar(true); + setShowDeleteModal(false); + } catch (error) { + console.error("Error deleting data:", error); + setSnackbarMessage("Failed to delete!"); + setSnackbarSeverity("error"); + setOpenSnackbar(true); + } + }; + + const handleAdd = async () => { + try { + await axios.post(API_URL, newEntity, { + headers: { Authorization: `Bearer ${token}` }, + }); + fetchData(); + setNewEntity({ + + namemm: "", + + descriptionmm: "", + + }); + setShowAddModal(false); + setSnackbarMessage("Successfully added!"); + setSnackbarSeverity("success"); + setOpenSnackbar(true); + } catch (error) { + console.error("Error adding data:", error); + setSnackbarMessage("Failed to add!"); + setSnackbarSeverity("error"); + setOpenSnackbar(true); + } + }; + + const handleChange = (e) => { + const { name, value } = e.target; + setNewEntity({ ...newEntity, [name]: value }); + }; + + const handleEditChange = (e) => { + const { name, value } = e.target; + setEditEntity({ ...editEntity, [name]: value }); + }; + + const handleEdit = (entity) => { + setEditEntity(entity); + setShowEditModal(true); + }; + + const handleUpdate = async () => { + try { + await axios.put(`${API_URL}/${editEntity.id}`, editEntity, { + headers: { Authorization: `Bearer ${token}` }, + }); + fetchData(); + setShowEditModal(false); + setSnackbarMessage("Successfully updated!"); + setSnackbarSeverity("success"); + setOpenSnackbar(true); + } catch (error) { + console.error("Error updating data:", error); + setSnackbarMessage("Failed to update!"); + setSnackbarSeverity("error"); + setOpenSnackbar(true); + } + }; + + const handleSearch = () => { + const filtered = data.filter( + (entity) => + + + }); + setShowAddModal(false); + setSnackbarMessage("Successfully added!"); + setSnackbarSeverity("success"); + setOpenSnackbar(true); + } catch (error) { + console.error("Error adding data:", error); + setSnackbarMessage("Failed to add!"); + setSnackbarSeverity("error"); + setOpenSnackbar(true); + } + }; + + const handleChange = (e) => { + const { name, value } = e.target; + setNewEntity({ ...newEntity, [name]: value }); + }; + + const handleEditChange = (e) => { + const { name, value } = e.target; + setEditEntity({ ...editEntity, [name]: value }); + }; + + const handleEdit = (entity) => { + setEditEntity(entity); + setShowEditModal(true); + }; + + const handleUpdate = async () => { + try { + await axios.put(`${API_URL}/${editEntity.id}`, editEntity, { + headers: { Authorization: `Bearer ${token}` }, + }); + fetchData(); + setShowEditModal(false); + setSnackbarMessage("Successfully updated!"); + setSnackbarSeverity("success"); + setOpenSnackbar(true); + } catch (error) { + console.error("Error updating data:", error); + setSnackbarMessage("Failed to update!"); + setSnackbarSeverity("error"); + setOpenSnackbar(true); + } + }; + + const handleSearch = () => { + const filtered = data.filter( + (entity) => + + + + + entity.namemm.toLowerCase().includes(searchQuery.toLowerCase()) || + + + + + entity.descriptionmm.toLowerCase().includes(searchQuery.toLowerCase()) ); + setFilteredData(filtered); + }; + + return ( +
+ + Entity Table + +
+ + setSearchQuery(e.target.value)} + InputProps={{ + endAdornment: ( + + + + + + ), + }} + /> +
+ + + + + + +); + setFilteredData(filtered); + }; + + return ( +
+ + Entity Table + +
+ + setSearchQuery(e.target.value)} + InputProps={{ + endAdornment: ( + + + + + + ), + }} + /> +
+ +
+ + + + + + + + + + + + {filteredData + .slice( + currentPage * itemsPerPage, + (currentPage + 1) * itemsPerPage + ) + .map((entity) => ( + + + + + + + {filteredData + .slice( + currentPage * itemsPerPage, + (currentPage + 1) * itemsPerPage + ) + .map((entity) => ( + + + + + + + + + + + + + + + + + ))} + +
namemmdescriptionmm{entity.namemm}{entity.descriptionmm}
+
+ + setShowEditModal(false)}> + Edit Entity + + + + + + + + + ))} + + + + + setShowEditModal(false)}> + Edit Entity + + + + + + + + + + + + + + setShowAddModal(false)}> + Add Entity + + + + + + + + + + setShowAddModal(false)}> + Add Entity + + + + + + + + + + + + + + + + setShowDeleteModal(false)}> + Confirm Delete + + Are you sure you want to delete this entity? + + + + + + + setOpenSnackbar(false)} + > + setOpenSnackbar(false)} + severity={snackbarSeverity} + > + {snackbarMessage} + + +
+ ); +}; + +export default EntityTable; + + + + + + + + setShowDeleteModal(false)}> + Confirm Delete + + Are you sure you want to delete this entity? + + + + + + + setOpenSnackbar(false)} + > + setOpenSnackbar(false)} + severity={snackbarSeverity} + > + {snackbarMessage} + + + + ); +}; + +export default EntityTable; +