signup bast
This commit is contained in:
parent
ddaad2f2de
commit
f4d04f9a04
12 changed files with 93 additions and 55 deletions
|
|
@ -27,7 +27,8 @@ public class CartController {
|
|||
|
||||
@PostMapping("/add")
|
||||
public ResponseEntity<Void> addEntry() {
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
|
||||
return ResponseEntity.noContent().build();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,17 +19,7 @@ public class EventController {
|
|||
this.eventService = eventService;
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public ResponseEntity<EventResponseDto> getById(@PathVariable Integer id) {
|
||||
return new ResponseEntity<>(eventService.getById(id), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
public ResponseEntity<List<EventResponseDto>> getAllFuture() {
|
||||
return new ResponseEntity<>(eventService.getAllFuture(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/add")
|
||||
@PostMapping("/create")
|
||||
public ResponseEntity<Void> create(@RequestBody EventRequestDto event) {
|
||||
// TODO admin only
|
||||
eventService.create(event);
|
||||
|
|
@ -39,14 +29,27 @@ public class EventController {
|
|||
@PutMapping("/update")
|
||||
public ResponseEntity<Void> update(@RequestBody EventUpdateRequestDto event) {
|
||||
// TODO admin only
|
||||
// eventService.update(event);
|
||||
eventService.update(event);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete/{id}")
|
||||
public ResponseEntity<Void> delete(@PathVariable Integer id) {
|
||||
public ResponseEntity<Void> delete(@PathVariable Long id) {
|
||||
// TODO admin only
|
||||
eventService.delete(id);
|
||||
return new ResponseEntity<>(null, HttpStatus.NO_CONTENT);
|
||||
return ResponseEntity.noContent().build();
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public ResponseEntity<EventResponseDto> getById(@PathVariable Long id) {
|
||||
return eventService.getById(id)
|
||||
.map(eventResponseDto -> new ResponseEntity<>(eventResponseDto, HttpStatus.OK))
|
||||
.orElseGet(() -> ResponseEntity.notFound().build());
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
public ResponseEntity<List<EventResponseDto>> getAllFuture() {
|
||||
return new ResponseEntity<>(eventService.getAllFuture(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package me.jweissen.aeticket.controller;
|
|||
import me.jweissen.aeticket.dto.request.LoginRequestDto;
|
||||
import me.jweissen.aeticket.dto.request.SignupRequestDto;
|
||||
import me.jweissen.aeticket.dto.request.UserUpdateRequestDto;
|
||||
import me.jweissen.aeticket.dto.response.SignupResponseDto;
|
||||
import me.jweissen.aeticket.dto.response.TokenResponseDto;
|
||||
import me.jweissen.aeticket.dto.response.UserResponseDto;
|
||||
import me.jweissen.aeticket.service.UserService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
|
|
@ -11,6 +11,7 @@ import org.springframework.http.ResponseEntity;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
|
|
@ -22,26 +23,31 @@ public class UserController {
|
|||
}
|
||||
|
||||
@PostMapping("/signup")
|
||||
public ResponseEntity<SignupResponseDto> signUp(@RequestBody SignupRequestDto user) {
|
||||
public ResponseEntity<TokenResponseDto> signUp(@RequestBody SignupRequestDto user) {
|
||||
return new ResponseEntity<>(userService.create(user), HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PostMapping("/signin")
|
||||
public ResponseEntity<SignupResponseDto> signIn(@RequestBody LoginRequestDto user) {
|
||||
// TODO
|
||||
return new ResponseEntity<>(null, HttpStatus.OK);
|
||||
public ResponseEntity<TokenResponseDto> signIn(@RequestBody LoginRequestDto user) {
|
||||
return userService.login(user)
|
||||
.map(tokenDto -> new ResponseEntity<>(tokenDto, HttpStatus.OK))
|
||||
.orElseGet(() -> ResponseEntity.status(HttpStatus.UNAUTHORIZED).build());
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
public ResponseEntity<Void> update(@RequestBody UserUpdateRequestDto user) {
|
||||
// TODO admin only
|
||||
return new ResponseEntity<>(null, HttpStatus.NO_CONTENT);
|
||||
if (!userService.update(user)) {
|
||||
return ResponseEntity.notFound().build();
|
||||
}
|
||||
return ResponseEntity.noContent().build();
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete/{id}")
|
||||
public ResponseEntity<Void> delete(@PathVariable Integer id) {
|
||||
// TODO admin only
|
||||
userService.delete(id);
|
||||
return new ResponseEntity<>(null, HttpStatus.NO_CONTENT);
|
||||
return ResponseEntity.noContent().build();
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
|
|
@ -50,4 +56,11 @@ public class UserController {
|
|||
return new ResponseEntity<>(userService.getAll(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/load/{id}")
|
||||
public ResponseEntity<UserResponseDto> getById(@PathVariable Integer id) {
|
||||
// TODO admin only
|
||||
return userService.getById(id)
|
||||
.map(userResponseDto -> new ResponseEntity<>(userResponseDto, HttpStatus.OK))
|
||||
.orElseGet(() -> new ResponseEntity<>(null, HttpStatus.NOT_FOUND));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.request;
|
||||
|
||||
public record EventUpdateRequestDto() {
|
||||
public record EventUpdateRequestDto(Long id) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.request;
|
||||
|
||||
public record UserUpdateRequestDto(Integer id, String name, String email) {
|
||||
public record UserUpdateRequestDto(Integer id, String firstname, String lastname, String email) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
public record LoginResponseDto(String token) {
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
public record SignupResponseDto(String token) {
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
public record TokenResponseDto(String token) {
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@ import org.springframework.data.jpa.repository.Query;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
public interface EventRepository extends JpaRepository<Event, Integer> {
|
||||
public interface EventRepository extends JpaRepository<Event, Long> {
|
||||
@Query("SELECT e FROM Event e WHERE e.start > CURRENT_TIMESTAMP")
|
||||
List<Event> findAllFuture();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package me.jweissen.aeticket.service;
|
||||
|
||||
import me.jweissen.aeticket.dto.response.LoginResponseDto;
|
||||
import me.jweissen.aeticket.model.Role;
|
||||
import me.jweissen.aeticket.model.User;
|
||||
import me.jweissen.aeticket.repository.UserRepository;
|
||||
|
|
@ -18,18 +17,6 @@ public class AuthService {
|
|||
this.userRepository = userRepository;
|
||||
}
|
||||
|
||||
public Optional<LoginResponseDto> login(String username, String password) {
|
||||
User user = userRepository.findByEmail(username);
|
||||
// user not found or passwords don't match
|
||||
if (user == null || !user.getPassword().equals(password)) {
|
||||
return Optional.empty();
|
||||
}
|
||||
String token = jwtService.generateToken(user.getId());
|
||||
user.setToken(token);
|
||||
userRepository.save(user);
|
||||
return Optional.of(new LoginResponseDto(username));
|
||||
}
|
||||
|
||||
public Optional<Role> getRole(String token) {
|
||||
User user = userRepository.findByToken(token);
|
||||
if (user == null) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import me.jweissen.aeticket.repository.EventRepository;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
public class EventService {
|
||||
|
|
@ -45,15 +46,21 @@ public class EventService {
|
|||
eventRepository.save(EventService.fromDto(event));
|
||||
}
|
||||
|
||||
public void update(EventUpdateRequestDto event) {
|
||||
public boolean update(EventUpdateRequestDto dto) {
|
||||
return eventRepository.findById(dto.id())
|
||||
.map(event -> {
|
||||
// dto auf object assignen
|
||||
return true;
|
||||
})
|
||||
.orElse(false);
|
||||
}
|
||||
|
||||
public void delete(Integer id) {
|
||||
public void delete(Long id) {
|
||||
eventRepository.deleteById(id);
|
||||
}
|
||||
|
||||
public EventResponseDto getById(Integer id) {
|
||||
return EventService.toDto(eventRepository.getReferenceById(id));
|
||||
public Optional<EventResponseDto> getById(Long id) {
|
||||
return eventRepository.findById(id).map(EventService::toDto);
|
||||
}
|
||||
|
||||
public List<EventResponseDto> getAllFuture() {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
package me.jweissen.aeticket.service;
|
||||
|
||||
import me.jweissen.aeticket.dto.request.LoginRequestDto;
|
||||
import me.jweissen.aeticket.dto.request.SignupRequestDto;
|
||||
import me.jweissen.aeticket.dto.response.SignupResponseDto;
|
||||
import me.jweissen.aeticket.dto.request.UserUpdateRequestDto;
|
||||
import me.jweissen.aeticket.dto.response.TokenResponseDto;
|
||||
import me.jweissen.aeticket.dto.response.UserResponseDto;
|
||||
import me.jweissen.aeticket.model.Role;
|
||||
import me.jweissen.aeticket.model.User;
|
||||
|
|
@ -48,15 +50,44 @@ public class UserService {
|
|||
return UserService.toDtos(userRepository.findAll());
|
||||
}
|
||||
|
||||
public SignupResponseDto create(SignupRequestDto dto) {
|
||||
var user = UserService.fromDto(dto);
|
||||
user = userRepository.save(user);
|
||||
public String generateToken(User user) {
|
||||
user.setToken(jwtService.generateToken(user.getId()));
|
||||
userRepository.save(user);
|
||||
return new SignupResponseDto(user.getToken());
|
||||
return user.getToken();
|
||||
}
|
||||
|
||||
public TokenResponseDto create(SignupRequestDto dto) {
|
||||
var user = UserService.fromDto(dto);
|
||||
user = userRepository.save(user);
|
||||
return new TokenResponseDto(generateToken(user));
|
||||
}
|
||||
|
||||
public void delete(Integer id) {
|
||||
userRepository.deleteById(id);
|
||||
}
|
||||
|
||||
public Optional<TokenResponseDto> login(LoginRequestDto dto) {
|
||||
var user = userRepository.findByEmail(dto.email());
|
||||
if (!user.getPassword().equals(dto.password())) {
|
||||
return Optional.empty();
|
||||
}
|
||||
return Optional.of(new TokenResponseDto(generateToken(user)));
|
||||
}
|
||||
|
||||
public boolean update(UserUpdateRequestDto dto) {
|
||||
var userOptional = userRepository.findById(dto.id());
|
||||
if (userOptional.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
var user = userOptional.get();
|
||||
user.setEmail(dto.email());
|
||||
user.setFirstname(dto.firstname());
|
||||
user.setLastname(dto.lastname());
|
||||
userRepository.save(user);
|
||||
return true;
|
||||
}
|
||||
|
||||
public Optional<UserResponseDto> getById(Integer id) {
|
||||
return userRepository.findById(id).map(UserService::toDto);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue