Всё ближе, и ближе, и блииижеееее

This commit is contained in:
Programmist73 2023-05-16 02:27:55 +04:00
parent b3f016eca3
commit 2f0e1edba8
8 changed files with 62 additions and 19 deletions

View File

@ -38,7 +38,7 @@ export default function AddClient() {
const requestParams = { const requestParams = {
method: "GET", method: "GET",
headers: { headers: {
"Authorization": getTokenForHeader(), "Authorization": getTokenForHeader()
} }
}; };
const requestUrl = host + `/users?page=${page}`; const requestUrl = host + `/users?page=${page}`;
@ -102,6 +102,21 @@ export default function AddClient() {
<h1 style={{textAlign: 'center'}}>В БД отсутствуют какие-либо клиенты!</h1> <h1 style={{textAlign: 'center'}}>В БД отсутствуют какие-либо клиенты!</h1>
} }
</div> </div>
<div>
<p>
Pages:
</p>
<nav>
<ul className="pagination">
{pageNumbers.map((number) => (
<li className={`page-item ${number === pageNumber + 1 ? "active" : ""}`}
onClick={() => pageButtonOnClick(number)}>
<a className="page-link" href="#">{number}</a>
</li>
))}
</ul>
</nav>
</div>
</div> </div>
); );
} }

View File

@ -50,6 +50,7 @@ const AddLevel = () => {
<div> <div>
<div className="Group_create_level"> <div className="Group_create_level">
<h1>Генератор уровней</h1> <h1>Генератор уровней</h1>
<div> <div>
<p style={{fontWeight: "900"}}> <p style={{fontWeight: "900"}}>
Введите уровень: Введите уровень:

View File

@ -43,17 +43,24 @@ const AddNation = () => {
} }
//добавление нового уровня //добавление нового уровня
function addNewNation(){ const addNewNation = async function (){
/*if(nation.nation === ''){ if(nation.nation === ''){
return; return;
} }
else { else {
axios.post('http://localhost:8080/nation/?nation=' + nation.nation) const requestParams = {
.then((response) => { method: "POST",
CheckArray(); headers: {
setNation({nation: ''}); "Content-Type": "application/json",
}); "Authorization": getTokenForHeader(),
}*/ }
};
console.log(JSON.stringify(nation));
const requestUrl = host + `/create/?nation=${nation.nation}`;
const response = await fetch(requestUrl, requestParams);
getNations();
setNation({nation: ''});
}
} }
//добавили условную отрисовку //добавили условную отрисовку

View File

@ -5,7 +5,7 @@ import ModalClient from './ModalClient';
import ModalTankNation from '../Nation/ModalTankNation'; import ModalTankNation from '../Nation/ModalTankNation';
const hostURL = "http://localhost:8080"; const hostURL = "http://localhost:8080";
const host = hostURL + "/api/1.0"; const host = hostURL + "/api/1.0/";
const ClientItem = (data) => { const ClientItem = (data) => {

View File

@ -7,7 +7,7 @@ const ModalNation = ({data, visible, setVisible}) => {
//для обновления уровня //для обновления уровня
const [nation, setNation] = useState(data.nation); const [nation, setNation] = useState(data.nation);
const nullId = 0; const nullId = 0;
//для контроля видимости модалки //для контроля видимости модалки
const rootClasses = [cl.myModal]; const rootClasses = [cl.myModal];

View File

@ -4,6 +4,9 @@ import './NationItem.css';
import ModalNation from './ModalNation'; import ModalNation from './ModalNation';
import ModalTankNation from './ModalTankNation'; import ModalTankNation from './ModalTankNation';
const hostURL = "http://localhost:8080";
const host = hostURL + "/api/1.0/nation";
//отвечает за отдельно взятую нацию (вывод карточки с ним) //отвечает за отдельно взятую нацию (вывод карточки с ним)
const NationItem = (data) => { const NationItem = (data) => {
const [nation, setNation] = useState(null); const [nation, setNation] = useState(null);
@ -14,13 +17,26 @@ const NationItem = (data) => {
//состояние для вызова окна показа списка танков нации //состояние для вызова окна показа списка танков нации
const[modalNation, setModalNation] = useState(false); const[modalNation, setModalNation] = useState(false);
function deleteNation(){ const getTokenForHeader = function () {
axios.delete('http://localhost:8080/nation/' + data.nationItem.id) return "Bearer " + localStorage.getItem("token");
.then((response) => {
console.log("Удаление нации с id " + data.nationItem.id)
});
} }
const deleteFecth = async function (id) {
const requestParams = {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": getTokenForHeader(),
}
};
const requestUrl = host + `/${id}`;
await fetch(requestUrl, requestParams);
}
/*function deleteNation(id){
deleteFecth(id)
}*/
return ( return (
<div className="nation-card"> <div className="nation-card">
<p className="nation-attribute"> id: {data.nationItem.id} </p> <p className="nation-attribute"> id: {data.nationItem.id} </p>
@ -32,7 +48,7 @@ const NationItem = (data) => {
Редактировать Редактировать
</button> </button>
<button className="nation-button" type="button" <button className="nation-button" type="button"
onClick={deleteNation} onClick={event => deleteFecth(data.nationItem.id)}
> >
Удалить Удалить
</button> </button>

View File

@ -1,9 +1,11 @@
package premium_store.controller.controller; package premium_store.controller.controller;
import org.springframework.security.access.annotation.Secured;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import premium_store.configuration.OpenAPI30Configuration; import premium_store.configuration.OpenAPI30Configuration;
import premium_store.configuration.WebConfiguration; import premium_store.configuration.WebConfiguration;
import premium_store.controller.DTO.FullNationDTO; import premium_store.controller.DTO.FullNationDTO;
import premium_store.model.UserRole;
import premium_store.service.NationService; import premium_store.service.NationService;
import premium_store.service.TankService; import premium_store.service.TankService;
@ -38,7 +40,8 @@ public class NationController {
.toList(); .toList();
} }
@PostMapping("/") @PostMapping("/create")
@Secured({UserRole.AsString.ADMIN})
public FullNationDTO createNation(@RequestParam("nation") String nation) { public FullNationDTO createNation(@RequestParam("nation") String nation) {
return new FullNationDTO(nationService.addNation(nation)); return new FullNationDTO(nationService.addNation(nation));
} }
@ -50,7 +53,7 @@ public class NationController {
return new FullNationDTO(nationService.updateNation(id, nation, (tankId > 0) ? tankService.findTank(tankId) : null)); return new FullNationDTO(nationService.updateNation(id, nation, (tankId > 0) ? tankService.findTank(tankId) : null));
} }
@DeleteMapping("/{id}") @PostMapping("/{id}")
public FullNationDTO deleteNation(@PathVariable Long id) { public FullNationDTO deleteNation(@PathVariable Long id) {
return new FullNationDTO(nationService.deleteNation(id)); return new FullNationDTO(nationService.deleteNation(id));
} }

View File

@ -2,6 +2,7 @@
spring.main.banner-mode=off spring.main.banner-mode=off
server.port=8080 server.port=8080
#JPA #JPA
server.tomcat.relaxed-query-chars=|,{,},[,]
spring.datasource.url=jdbc:h2:file:./data spring.datasource.url=jdbc:h2:file:./data
spring.datasource.driverClassName=org.h2.Driver spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa spring.datasource.username=sa