end-point updateUserStatus added, new DTO: UpdateUserStatusDTO
This commit is contained in:
parent
379c9e75a8
commit
90397f7d8e
@ -2,6 +2,7 @@ package org.example.controller;
|
|||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.example.dto.PassingDTO;
|
import org.example.dto.PassingDTO;
|
||||||
|
import org.example.dto.UpdateUserStatusDTO;
|
||||||
import org.example.dto.UserDTO;
|
import org.example.dto.UserDTO;
|
||||||
import org.example.service.PassingService;
|
import org.example.service.PassingService;
|
||||||
import org.example.service.UserService;
|
import org.example.service.UserService;
|
||||||
@ -53,7 +54,7 @@ public class UserController {
|
|||||||
return ResponseEntity.ok(passingService.getAllPassingPaginated(pageable));
|
return ResponseEntity.ok(passingService.getAllPassingPaginated(pageable));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/{username/passing/new")
|
@PostMapping("/{username}/passing/new")
|
||||||
public ResponseEntity<PassingDTO> createPassing(@RequestBody PassingDTO dto) {
|
public ResponseEntity<PassingDTO> createPassing(@RequestBody PassingDTO dto) {
|
||||||
return ResponseEntity.status(HttpStatus.CREATED).body(passingService.createPassing(dto));
|
return ResponseEntity.status(HttpStatus.CREATED).body(passingService.createPassing(dto));
|
||||||
}
|
}
|
||||||
@ -67,4 +68,10 @@ public class UserController {
|
|||||||
public ResponseEntity<UserDTO> login(Authentication authentication){
|
public ResponseEntity<UserDTO> login(Authentication authentication){
|
||||||
return ResponseEntity.ok(userService.getUserByUsername(authentication.getName()));
|
return ResponseEntity.ok(userService.getUserByUsername(authentication.getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PatchMapping("/{username}")
|
||||||
|
public ResponseEntity<UserDTO> updateUserStatus(@PathVariable String username, @RequestBody UpdateUserStatusDTO dto) {
|
||||||
|
return ResponseEntity.ok(userService.patchUserStatusByUsername(username, dto));
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,5 +10,4 @@ public class PassingDTO {
|
|||||||
private String type;
|
private String type;
|
||||||
private String time;
|
private String time;
|
||||||
private String code;
|
private String code;
|
||||||
private String authority;
|
|
||||||
}
|
}
|
||||||
|
8
src/main/java/org/example/dto/UpdateUserStatusDTO.java
Normal file
8
src/main/java/org/example/dto/UpdateUserStatusDTO.java
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package org.example.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UpdateUserStatusDTO {
|
||||||
|
private String status;
|
||||||
|
}
|
@ -11,4 +11,5 @@ public class UserDTO {
|
|||||||
private String position;
|
private String position;
|
||||||
private String authority;
|
private String authority;
|
||||||
private String lastvisit;
|
private String lastvisit;
|
||||||
|
private String status;
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,5 @@ public class Passing {
|
|||||||
@Column(name = "code")
|
@Column(name = "code")
|
||||||
private String code;
|
private String code;
|
||||||
|
|
||||||
@Column(name = "authorities")
|
|
||||||
private String authority;
|
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,9 @@ public class User implements UserDetails{
|
|||||||
@Column(name = "lastvisit")
|
@Column(name = "lastvisit")
|
||||||
private String lastvisit;
|
private String lastvisit;
|
||||||
|
|
||||||
|
@Column(name = "status")
|
||||||
|
private String status;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<? extends GrantedAuthority> getAuthorities() {
|
public Collection<? extends GrantedAuthority> getAuthorities() {
|
||||||
return List.of();
|
return List.of();
|
||||||
|
@ -9,8 +9,6 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public interface PassingRepository extends JpaRepository<Passing, Integer> {
|
public interface PassingRepository extends JpaRepository<Passing, Integer> {
|
||||||
Optional<Passing> findByAuthority(String authority);
|
|
||||||
|
|
||||||
List<Passing> findByUsername(String login);
|
List<Passing> findByUsername(String login);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.example.service;
|
package org.example.service;
|
||||||
|
|
||||||
|
import org.example.dto.UpdateUserStatusDTO;
|
||||||
import org.example.dto.UserDTO;
|
import org.example.dto.UserDTO;
|
||||||
|
|
||||||
public interface UserService {
|
public interface UserService {
|
||||||
@ -9,5 +10,7 @@ public interface UserService {
|
|||||||
|
|
||||||
UserDTO patchUserByUsername(String username);
|
UserDTO patchUserByUsername(String username);
|
||||||
|
|
||||||
|
UserDTO patchUserStatusByUsername(String username, UpdateUserStatusDTO dto);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import org.example.dto.PassingDTO;
|
|||||||
import org.example.entity.Passing;
|
import org.example.entity.Passing;
|
||||||
import org.example.entity.User;
|
import org.example.entity.User;
|
||||||
import org.example.exception.AuthorityNotFoundException;
|
import org.example.exception.AuthorityNotFoundException;
|
||||||
import org.example.exception.UserNotFoundException;
|
|
||||||
import org.example.repository.PassingRepository;
|
import org.example.repository.PassingRepository;
|
||||||
import org.example.repository.UserRepository;
|
import org.example.repository.UserRepository;
|
||||||
import org.example.service.PassingService;
|
import org.example.service.PassingService;
|
||||||
@ -26,8 +25,8 @@ public class PassingServiceImpl implements PassingService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PassingDTO> getAllPassing(String authority) {
|
public List<PassingDTO> getAllPassing(String authority) {
|
||||||
Optional<Passing> passingOptional = passingRepository.findByAuthority("ROLE_ADMIN");
|
Optional<User> userOptional = userRepository.findByAuthority("ROLE_ADMIN");
|
||||||
if (passingOptional.isEmpty()) {
|
if (userOptional.isEmpty()) {
|
||||||
throw new AuthorityNotFoundException("Ошибка доступа");
|
throw new AuthorityNotFoundException("Ошибка доступа");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package org.example.service.impl;
|
package org.example.service.impl;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.example.dto.UpdateUserStatusDTO;
|
||||||
import org.example.dto.UserDTO;
|
import org.example.dto.UserDTO;
|
||||||
import org.example.entity.User;
|
import org.example.entity.User;
|
||||||
import org.example.exception.UserNotFoundException;
|
import org.example.exception.UserNotFoundException;
|
||||||
@ -43,4 +44,14 @@ public class UserServiceImpl implements UserService {
|
|||||||
return UserMapper.convertToDto(optionalUser.get());
|
return UserMapper.convertToDto(optionalUser.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UserDTO patchUserStatusByUsername(String username, UpdateUserStatusDTO dto) {
|
||||||
|
User user = userRepository.findByUsername(username).orElseThrow(() -> new UserNotFoundException("логина не существует или неверный"));
|
||||||
|
|
||||||
|
user.setStatus(dto.getStatus());
|
||||||
|
|
||||||
|
return UserMapper.convertToDto(userRepository.save(user));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,6 @@ public class PassingMapper {
|
|||||||
dto.setType(passing.getType());
|
dto.setType(passing.getType());
|
||||||
dto.setTime(passing.getTime());
|
dto.setTime(passing.getTime());
|
||||||
dto.setCode(passing.getCode());
|
dto.setCode(passing.getCode());
|
||||||
dto.setAuthority(passing.getAuthority());
|
|
||||||
|
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ public class UserMapper {
|
|||||||
dto.setPosition(user.getPosition());
|
dto.setPosition(user.getPosition());
|
||||||
dto.setAuthority(user.getAuthority());
|
dto.setAuthority(user.getAuthority());
|
||||||
dto.setLastvisit(user.getLastvisit());
|
dto.setLastvisit(user.getLastvisit());
|
||||||
|
dto.setStatus(user.getStatus());
|
||||||
|
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,9 @@
|
|||||||
<constraints nullable="false"/>
|
<constraints nullable="false"/>
|
||||||
</column>
|
</column>
|
||||||
<column name="lastvisit" type="VARCHAR(100)"/>
|
<column name="lastvisit" type="VARCHAR(100)"/>
|
||||||
|
<column name="status" type="VARCHAR(10)">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
</createTable>
|
</createTable>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
@ -27,9 +27,6 @@
|
|||||||
<column name="code" type="BIGINT">
|
<column name="code" type="BIGINT">
|
||||||
<constraints nullable="false"/>
|
<constraints nullable="false"/>
|
||||||
</column>
|
</column>
|
||||||
<column name="authorities" type="VARCHAR(20)">
|
|
||||||
<constraints nullable="false"/>
|
|
||||||
</column>
|
|
||||||
</createTable>
|
</createTable>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
username;password;name;photo;position;authorities;lastVisit
|
username;password;name;photo;position;authorities;lastVisit;status
|
||||||
pivanov;$2a$10$eObqG4zk7CbKPPTv0daHm.bcpK6zwyFPpjAVXOeDWrT/3TpVcxpia;Иванов Петр Федорович;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Разработчик;ROLE_ADMIN;2024-02-12T08:30:00
|
pivanov;$2a$10$eObqG4zk7CbKPPTv0daHm.bcpK6zwyFPpjAVXOeDWrT/3TpVcxpia;Иванов Петр Федорович;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Разработчик;ROLE_ADMIN;2024-02-12T08:30:00;NoBlock
|
||||||
ipetrov;$2a$10$eObqG4zk7CbKPPTv0daHm.bcpK6zwyFPpjAVXOeDWrT/3TpVcxpia;Петров Иван Константинович;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Аналитик;ROLE_USER;2024-02-30T08:35:00
|
ipetrov;$2a$10$eObqG4zk7CbKPPTv0daHm.bcpK6zwyFPpjAVXOeDWrT/3TpVcxpia;Петров Иван Константинович;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Аналитик;ROLE_USER;2024-02-30T08:35:00;NoBlock
|
||||||
asemenov;$2a$10$eObqG4zk7CbKPPTv0daHm.bcpK6zwyFPpjAVXOeDWrT/3TpVcxpia;Семенов Анатолий Анатольевич;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Разработчик;ROLE_USER;2024-02-31T08:31:00
|
asemenov;$2a$10$eObqG4zk7CbKPPTv0daHm.bcpK6zwyFPpjAVXOeDWrT/3TpVcxpia;Семенов Анатолий Анатольевич;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Разработчик;ROLE_USER;2024-02-31T08:31:00;NoBlock
|
||||||
afedorov;$2a$10$eObqG4zk7CbKPPTv0daHm.bcpK6zwyFPpjAVXOeDWrT/3TpVcxpia;Федоров Александр Сергеевич;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Тестировщик;ROLE_USER;2024-02-30T08:36:00
|
afedorov;$2a$10$eObqG4zk7CbKPPTv0daHm.bcpK6zwyFPpjAVXOeDWrT/3TpVcxpia;Федоров Александр Сергеевич;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Тестировщик;ROLE_USER;2024-02-30T08:36:00;NoBlock
|
|
@ -1,5 +1,5 @@
|
|||||||
username;type;time;code;authorities
|
username;type;time;code
|
||||||
pivanov;Карта;12:00;1234567890123456789;ROLE_ADMIN
|
pivanov;Карта;2024-02-12T08:30:00;1234567890123456789
|
||||||
ipetrov;Вход со смартфона;13:00;9223372036854775807;ROLE_USER
|
ipetrov;Вход со смартфона;2024-02-12T10:30:00;9223372036854775807
|
||||||
asemenov;Карта;10:00;1234567890123456789;ROLE_USER
|
asemenov;Карта;2024-02-12T09:30:00;1234567890123456789
|
||||||
pivanov;Вход со смартфона;15:00;1234567890123456789;ROLE_USER
|
pivanov;Вход со смартфона;2024-02-12T08:30:00;1234567890123456789
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user