diff --git a/front/premium_store/src/App.js b/front/premium_store/src/App.js index be39239..70d6f66 100644 --- a/front/premium_store/src/App.js +++ b/front/premium_store/src/App.js @@ -22,7 +22,7 @@ function App() { { path: 'levels', element: , label: 'Обзор уровней', userGroup: "AUTH" }, { path: 'nations', element: , label: 'Обзор наций', userGroup: "AUTH" }, { path: 'tanks', element: , label: 'Обзор танков', userGroup: "AUTH"}, - { path: 'clients', element: , label: 'Обзор клиентов', userGroup: "AUTH"}, + { path: 'clients', element: , label: 'Обзор клиентов', userGroup: "ADMIN"}, { path: 'checkPage', element: , label: 'Фильтр по танкам', userGroup: "AUTH"} ]; @@ -42,13 +42,11 @@ function App() { } path="/singup" /> }> } path="/tanks" /> + } path="/levels" /> } path="/checkPage" /> } path="/nations" exact /> } path="*" /> - }> - } path="/levels" /> - }> } path="/clients" /> diff --git a/front/premium_store/src/components/AddClient.jsx b/front/premium_store/src/components/AddClient.jsx index cc706e2..545fcc4 100644 --- a/front/premium_store/src/components/AddClient.jsx +++ b/front/premium_store/src/components/AddClient.jsx @@ -4,6 +4,9 @@ import '../styles/App.css'; import ClientList from './items/GameClient/ClientList'; import './AddClient.css'; +const hostURL = "http://localhost:8080"; +const host = hostURL + "/api/1.0"; + export default function AddClient() { const [clientItems, setClientItems] = useState([]); @@ -14,45 +17,41 @@ export default function AddClient() { const [clientBalance, setClientBalance] = useState(); + const [pageNumbers, setPageNumbers] = useState([]); + + const [pageNumber, setPageNumber] = useState(); - //загрузка всех имеющихся уровней при старте useEffect(() => { - console.log('Обращение к БД'); - axios.get('http://localhost:8080/api/1.0/client/') - .then((responce) => { - console.log(responce.data); - setClientItems(responce.data) - }) - }, []) + getUsers(1); + }, []); + + const pageButtonOnClick = function (page) { + getUsers(page); + } + + const getTokenForHeader = function () { + return "Bearer " + localStorage.getItem("token"); + } + + //загрузка всех имеющихся клиентов при старте + const getUsers = async function (page) { + const requestParams = { + method: "GET", + headers: { + "Authorization": getTokenForHeader(), + } + }; + const requestUrl = host + `/users?page=${page}`; + const response = await fetch(requestUrl, requestParams); + const data = await response.json(); + setClientItems(data.first.content); + setPageNumber(data.first.number); + setPageNumbers(data.second); + } //обновить список уровней function CheckArray(){ - console.log('Обращение к БД'); - axios.get('http://localhost:8080/api/1.0/client/') - .then((responce) => { - console.log(responce.data); - setClientItems(responce.data) - }) - } - - //добавление нового уровня - function addNewClient(){ - console.log(clientNickName); - console.log(clientEmail); - console.log(clientBalance); - - if(clientNickName === ''){ - return; - } - else { - axios.post('http://localhost:8080/api/1.0/client/?nickName=' + clientNickName + '&email=' + clientEmail + '&balance=' + clientBalance) - .then((response) => { - CheckArray(); - setClientNickName(''); - setClientEmail(''); - setClientBalance(''); - }); - } + getUsers(1); } //добавили условную отрисовку @@ -87,11 +86,6 @@ export default function AddClient() {

- diff --git a/front/premium_store/src/components/items/GameClient/ModalClient.jsx b/front/premium_store/src/components/items/GameClient/ModalClient.jsx index 0d45517..4719e6b 100644 --- a/front/premium_store/src/components/items/GameClient/ModalClient.jsx +++ b/front/premium_store/src/components/items/GameClient/ModalClient.jsx @@ -6,12 +6,14 @@ import '../../AddClient.css'; const ModalClient = ({data, visible, setVisible}) => { //для обновления уровня - const [clientNickName, setClientNickName] = useState(data.nickName); + const [clientNickName, setClientNickName] = useState(data.login); const [clientEmail, setClientEmail] = useState(data.email); const [clientBalance, setClientBalance] = useState(data.balance); + const [clientPassword, setClientPassword] = useState(data.password); + const [clientTank, setClientTank] = useState(null); const [tankItems, setTankItems] = useState([]); @@ -35,8 +37,8 @@ const ModalClient = ({data, visible, setVisible}) => { //добавление нового уровня function updateLevel(){ - axios.put('http://localhost:8080/client/' + data.id + '?nickName=' - + clientNickName + '&email=' + clientEmail + '&balance=' + clientBalance + '&tankId=' + clientTank) + axios.put('http://localhost:8080/client/' + data.id + '?login=' + + clientNickName + '&email=' + clientEmail + '&password=' + clientPassword + + '&balance=' + clientBalance + '&tankId=' + clientTank) .then((response) => { console.log("Обновление клиента с id " + data.id) }); @@ -90,6 +92,14 @@ const ModalClient = ({data, visible, setVisible}) => { )}

+

+ Пароль: + setClientPassword(e.target.value)} + /> +

+
+

Balance

+ +

Password

tanks; + private List tanks = new ArrayList<>(); private UserRole role; public ClientDTO(){ } diff --git a/spring_online_calculator/src/main/java/premium_store/controller/controller/GameClientController.java b/spring_online_calculator/src/main/java/premium_store/controller/controller/GameClientController.java index b65d0f6..9e089d2 100644 --- a/spring_online_calculator/src/main/java/premium_store/controller/controller/GameClientController.java +++ b/spring_online_calculator/src/main/java/premium_store/controller/controller/GameClientController.java @@ -19,8 +19,6 @@ import java.util.List; import java.util.stream.IntStream; @RestController -@CrossOrigin -@RequestMapping("/client") public class GameClientController { public static final String URL_LOGIN = "/jwt/login"; public static final String URL_SING_UP = "/sing_up"; @@ -52,28 +50,11 @@ public class GameClientController { } //аннотация PathVariable связывает значения id из URL и Long id - @GetMapping(OpenAPI30Configuration.API_PREFIX + "/{id}") + @GetMapping(OpenAPI30Configuration.API_PREFIX + "/") public ClientDTO getClient(@PathVariable Long id) { return new ClientDTO(gameClientService.findClient(id)); } - //с помощью Java Stream преобразуем набор пришедших данных в объекты StudentDto - @GetMapping(OpenAPI30Configuration.API_PREFIX + "/") - @Secured({UserRole.AsString.ADMIN}) - public List getClients() { - return gameClientService.findAllClients().stream() - .map(ClientDTO::new) - .toList(); - } - - @PostMapping(OpenAPI30Configuration.API_PREFIX + "/") - public ClientDTO createClient(@RequestParam("login") String login, - @RequestParam("password") String password, - @RequestParam("email") String email, - @RequestParam("balance") Integer balance) { - return new ClientDTO(gameClientService.addClient(login, email, password, balance, password, UserRole.USER)); - } - @PutMapping(OpenAPI30Configuration.API_PREFIX + "/{id}") @Secured({UserRole.AsString.USER}) public ClientDTO updateClient(@PathVariable Long id, @@ -85,7 +66,7 @@ public class GameClientController { return new ClientDTO(gameClientService.updateClient(id, login, password, email, balance, tankService.findTank(tankId))); } - @DeleteMapping(OpenAPI30Configuration.API_PREFIX + "/{id}") + @PostMapping(OpenAPI30Configuration.API_PREFIX + "/{id}") @Secured({UserRole.AsString.USER}) public ClientDTO deleteClient(@PathVariable Long id) { return new ClientDTO(gameClientService.deleteClient(id)); @@ -93,7 +74,7 @@ public class GameClientController { @GetMapping(OpenAPI30Configuration.API_PREFIX + "/users") @Secured({UserRole.AsString.ADMIN}) - public Pair, List> getUsers(@RequestParam(defaultValue = "1") int page, + public Pair, List> getClients(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "5") int size) { final Page users = gameClientService.findAllPages(page, size) .map(ClientDTO::new); diff --git a/spring_online_calculator/src/main/java/premium_store/controller/controller/NationController.java b/spring_online_calculator/src/main/java/premium_store/controller/controller/NationController.java index 88a444a..d72ff01 100644 --- a/spring_online_calculator/src/main/java/premium_store/controller/controller/NationController.java +++ b/spring_online_calculator/src/main/java/premium_store/controller/controller/NationController.java @@ -31,7 +31,7 @@ public class NationController { } //с помощью Java Stream преобразуем набор пришедших данных в объекты StudentDto - @GetMapping("/") + @GetMapping("/getNations") public List getNations() { return nationService.findAllNations().stream() .map(FullNationDTO::new)