zack zack
This commit is contained in:
parent
7aee8fcdc9
commit
a63afaa022
36 changed files with 612 additions and 30 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -31,3 +31,6 @@ build/
|
|||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Custom ###
|
||||
db/mysql
|
||||
196
docs/task.html
Normal file
196
docs/task.html
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -162,7 +162,7 @@ services:
|
|||
* Endpunkt: `/api/v1/cart/add`
|
||||
* Erforderlicher Token wird als Bearer - Token im Autorizationheader mitgeschickt.
|
||||
* Erfoderliche Daten werden im Requst - Body als JSON - Objekt mitgeschickt.
|
||||
`{"id": 1, tickets: [{"id": 1, "amount": 2}, {"id": 2, "amount": 1}]}`
|
||||
`{"id": 1, cartEntries: [{"id": 1, "amount": 2}, {"id": 2, "amount": 1}]}`
|
||||
* Im Erfolgsfall wird der Statuscode `200` zurückgegeben.
|
||||
* Bei Misserfolg wird der Statuscode `400` / `401` zurückgebeben.
|
||||
|
||||
|
|
@ -170,7 +170,7 @@ services:
|
|||
* `GET` - Request
|
||||
* Endpunkt: `/api/v1/cart/list`
|
||||
* Erforderlicher Token wird als Bearer - Token im Autorizationheader mitgeschickt.
|
||||
* Im Erfolgsfall wird der Statuscode `200` und folgende Daten zurückgegeben: `[{"id": 1, "name": "Maturaball HTL Steyr 2024", "from": "02.03.2024 19:00", "to": "03.03.2024 05:00", "description": "Bester Ball der HTL Steyr", "tickets": [{"id": 1, "name": "A", "price": 25, "amount": 2}, {"id": 2, "name": "B", "price": 22, "amount": 1}]}, {"id": 2, "name": "Frühjahrskonzert der HTL Steyr", "from": "09.04.2024 19:00", "to": "09.04.2024 21:00", "description": "Konzert des Schulorchestersr", "tickets": [{"id": 4, "name": "A", "price": 12, "amount": 2}]}]`
|
||||
* Im Erfolgsfall wird der Statuscode `200` und folgende Daten zurückgegeben: `[{"id": 1, "name": "Maturaball HTL Steyr 2024", "from": "02.03.2024 19:00", "to": "03.03.2024 05:00", "description": "Bester Ball der HTL Steyr", "cartEntries": [{"id": 1, "name": "A", "price": 25, "amount": 2}, {"id": 2, "name": "B", "price": 22, "amount": 1}]}, {"id": 2, "name": "Frühjahrskonzert der HTL Steyr", "from": "09.04.2024 19:00", "to": "09.04.2024 21:00", "description": "Konzert des Schulorchestersr", "cartEntries": [{"id": 4, "name": "A", "price": 12, "amount": 2}]}]`
|
||||
* Bei Misserfolg wird der Statuscode `400` / `401` zurückgebeben.
|
||||
|
||||
### Tickets kaufen
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package me.jweissen.aeticket.controller;
|
||||
|
||||
import me.jweissen.aeticket.dto.request.EventRequestDto;
|
||||
import me.jweissen.aeticket.dto.request.EventUpdateRequestDto;
|
||||
import me.jweissen.aeticket.dto.response.EventResponseDto;
|
||||
import me.jweissen.aeticket.service.EventService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/event")
|
||||
public class EventController {
|
||||
private final EventService eventService;
|
||||
|
||||
public EventController(EventService eventService) {
|
||||
this.eventService = eventService;
|
||||
}
|
||||
|
||||
@PostMapping("/add")
|
||||
public ResponseEntity<Void> create(@RequestBody EventRequestDto event) {
|
||||
// TODO admin only
|
||||
eventService.create(event);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
public ResponseEntity<Void> update(@RequestBody EventUpdateRequestDto event) {
|
||||
// TODO admin only
|
||||
// eventService.update(event);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete/{id}")
|
||||
public ResponseEntity<Void> delete(@PathVariable Integer id) {
|
||||
// TODO admin only
|
||||
eventService.delete(id);
|
||||
return new ResponseEntity<>(null, HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public ResponseEntity<EventResponseDto> getById(@PathVariable Integer id) {
|
||||
eventService.getById();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
package me.jweissen.aeticket.controller;
|
||||
|
||||
import me.jweissen.aeticket.dto.request.LoginRequestDto;
|
||||
import me.jweissen.aeticket.dto.request.UserRequestDto;
|
||||
import me.jweissen.aeticket.dto.request.UserUpdateRequestDto;
|
||||
import me.jweissen.aeticket.dto.response.SignupResponseDto;
|
||||
import me.jweissen.aeticket.dto.response.UserResponseDto;
|
||||
import me.jweissen.aeticket.service.UserService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
public class UserController {
|
||||
private final UserService userService;
|
||||
|
||||
public UserController(UserService userService) {
|
||||
this.userService = userService;
|
||||
}
|
||||
|
||||
@PostMapping("/signup")
|
||||
public ResponseEntity<SignupResponseDto> signUp(@RequestBody UserRequestDto user) {
|
||||
// TODO
|
||||
return new ResponseEntity<>(null, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/signin")
|
||||
public ResponseEntity<SignupResponseDto> signIn(@RequestBody LoginRequestDto user) {
|
||||
// TODO
|
||||
return new ResponseEntity<>(null, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
public ResponseEntity<Void> update(@RequestBody UserUpdateRequestDto user) {
|
||||
// TODO admin only
|
||||
return new ResponseEntity<>(null, HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete/{id}")
|
||||
public ResponseEntity<Void> delete(@PathVariable Integer id) {
|
||||
userService.delete(id);
|
||||
return new ResponseEntity<>(null, HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
public ResponseEntity<List<UserResponseDto>> getAll() {
|
||||
// TODO admin only
|
||||
return new ResponseEntity<>(userService.getAll(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.request;
|
||||
|
||||
public record CategoryRequestDto(String name, int price, int stock) {
|
||||
}
|
||||
|
|
@ -1,4 +1,12 @@
|
|||
package me.jweissen.aeticket.dto.request;
|
||||
|
||||
public record EventRequestDto() {
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public record EventRequestDto(
|
||||
String name,
|
||||
Date from,
|
||||
Date to,
|
||||
String description,
|
||||
List<CategoryRequestDto> ticketCategories) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.request;
|
||||
|
||||
public record EventUpdateRequestDto() {
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.request;
|
||||
|
||||
public record LoginRequestDto() {
|
||||
public record LoginRequestDto(String email, String password) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,2 +0,0 @@
|
|||
package me.jweissen.aeticket.dto.request;public class TicketCategoryRequestDto {
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.request;
|
||||
|
||||
public record UserRequestDto() {
|
||||
public record UserRequestDto(String email, String password, String firstname, String lastname) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.request;
|
||||
|
||||
public record UserUpdateRequestDto(Integer id, String name, String email) {
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
public record CartEntryResponseDto(Integer id, String name, Double price, Integer amount) {
|
||||
}
|
||||
|
|
@ -1,12 +1,13 @@
|
|||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public record CartEventResponseDto(
|
||||
int id,
|
||||
String name,
|
||||
String from,
|
||||
String to,
|
||||
Date from,
|
||||
Date to,
|
||||
String description,
|
||||
List<TicketResponseDto> tickets) {
|
||||
List<CartEntryResponseDto> cartEntries) {
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
public record CategoryResponseDto(int id, String name, int price, int stock) {
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
public class CheckoutResponseDto {
|
||||
public record CheckoutResponseDto(double price) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
package me.jweissen.aeticket.dto.request;
|
||||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public record EventResponseDto(
|
||||
int id,
|
||||
String name,
|
||||
String from,
|
||||
String to,
|
||||
Date from,
|
||||
Date to,
|
||||
String description,
|
||||
List<TicketCategoryResponseDto> ticketCategories) {
|
||||
List<CategoryResponseDto> ticketCategories) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
public record SignupResponseDto(String token) {
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
package me.jweissen.aeticket.dto.response;public class TicketCategoryResponseDto {
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
package me.jweissen.aeticket.dto.response;public record TicketResponseDto() {
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package me.jweissen.aeticket.dto.response;
|
||||
|
||||
public record UserResponseDto() {
|
||||
public record UserResponseDto(int id, String firstname, String lastname, String email) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,25 @@
|
|||
package me.jweissen.aeticket.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table
|
||||
@Getter
|
||||
@Setter
|
||||
public class Cart {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Integer id;
|
||||
|
||||
@OneToMany(mappedBy = "cart")
|
||||
@JoinColumn(nullable = false)
|
||||
private List<CartEntry> cartEntries;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(nullable = false)
|
||||
private User user;
|
||||
}
|
||||
|
|
|
|||
26
src/main/java/me/jweissen/aeticket/model/CartEntry.java
Normal file
26
src/main/java/me/jweissen/aeticket/model/CartEntry.java
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
package me.jweissen.aeticket.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Entity
|
||||
@Table
|
||||
@Getter
|
||||
@Setter
|
||||
public class CartEntry {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private int id;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(nullable = false)
|
||||
private Cart cart;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(nullable = false)
|
||||
private Category category;
|
||||
|
||||
@Column(nullable = false)
|
||||
private int amount;
|
||||
}
|
||||
|
|
@ -4,6 +4,8 @@ import jakarta.persistence.*;
|
|||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table
|
||||
@Getter
|
||||
|
|
@ -26,4 +28,7 @@ public class Category {
|
|||
@JoinColumn(nullable = false)
|
||||
private Event event;
|
||||
|
||||
@OneToMany(mappedBy = "category")
|
||||
@JoinColumn
|
||||
private List<CartEntry> cartEntries;
|
||||
}
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
package me.jweissen.aeticket.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
|
@ -12,21 +11,28 @@ import java.util.List;
|
|||
@Table
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class Event {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private int id;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NonNull
|
||||
private String title;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NonNull
|
||||
private String description;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NonNull
|
||||
private Date start;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NonNull
|
||||
private Date end;
|
||||
|
||||
@OneToMany(mappedBy = "event")
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
package me.jweissen.aeticket.model;
|
||||
|
||||
public class Ticket {
|
||||
}
|
||||
|
|
@ -2,8 +2,11 @@ package me.jweissen.aeticket.model;
|
|||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.NonNull;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table
|
||||
@Getter
|
||||
|
|
@ -14,11 +17,26 @@ public class User {
|
|||
private int id;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NonNull
|
||||
private String firstname;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NonNull
|
||||
private String lastname;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NonNull
|
||||
private String email;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NonNull
|
||||
private String password;
|
||||
|
||||
@Column(nullable = false)
|
||||
@NonNull
|
||||
private Boolean admin;
|
||||
|
||||
@OneToMany(mappedBy = "user")
|
||||
@JoinColumn(nullable = false)
|
||||
private List<Cart> carts;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
package me.jweissen.aeticket.repository;
|
||||
|
||||
import me.jweissen.aeticket.model.CartEntry;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CartEntryRepository extends JpaRepository<CartEntry, Integer> {
|
||||
@Query("SELECT ce FROM CartEntry ce WHERE ce.cart.id = :cartId AND ce.category.event.id = :eventId")
|
||||
List<CartEntry> getByCartAndEvent(@Param("cartId") Integer cartId, @Param("eventId") Integer eventId);
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
package me.jweissen.aeticket.repository;
|
||||
|
||||
import me.jweissen.aeticket.model.Cart;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface CartRepository extends JpaRepository<Cart, Integer> {
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
package me.jweissen.aeticket.repository;
|
||||
|
||||
import me.jweissen.aeticket.model.Category;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface CategoryRepository extends JpaRepository<Category, Integer> {
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
package me.jweissen.aeticket.repository;
|
||||
|
||||
import me.jweissen.aeticket.model.Event;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface EventRepository extends JpaRepository<Event, Integer> {
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
package me.jweissen.aeticket.repository;
|
||||
|
||||
import me.jweissen.aeticket.model.User;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface UserRepository extends JpaRepository<User, Integer> {
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package me.jweissen.aeticket.service;
|
||||
|
||||
import me.jweissen.aeticket.dto.response.CartEntryResponseDto;
|
||||
import me.jweissen.aeticket.model.CartEntry;
|
||||
import me.jweissen.aeticket.model.Category;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class CartEntryService {
|
||||
public static CartEntryResponseDto toDto(CartEntry cartEntry) {
|
||||
Category category = cartEntry.getCategory();
|
||||
return new CartEntryResponseDto(
|
||||
category.getId(),
|
||||
category.getName(),
|
||||
category.getPrice(),
|
||||
cartEntry.getAmount()
|
||||
);
|
||||
}
|
||||
|
||||
public static List<CartEntryResponseDto> toDtos(List<CartEntry> cartEntries) {
|
||||
return cartEntries.stream().map(CartEntryService::toDto).toList();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +1,34 @@
|
|||
package me.jweissen.aeticket.service;public class CartService {
|
||||
package me.jweissen.aeticket.service;
|
||||
|
||||
import me.jweissen.aeticket.dto.response.CartEventResponseDto;
|
||||
import me.jweissen.aeticket.model.Cart;
|
||||
import me.jweissen.aeticket.model.Event;
|
||||
import me.jweissen.aeticket.repository.CartEntryRepository;
|
||||
import me.jweissen.aeticket.repository.CartRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class CartService {
|
||||
private final CartRepository cartRepository;
|
||||
private final CartEntryRepository cartEntryRepository;
|
||||
|
||||
public CartService(CartRepository cartRepository, CartEntryRepository cartEntryRepository) {
|
||||
this.cartRepository = cartRepository;
|
||||
this.cartEntryRepository = cartEntryRepository;
|
||||
}
|
||||
|
||||
public List<CartEventResponseDto> toDto(Cart cart) {
|
||||
List<Event> distinctEvents = cart.getCartEntries().stream().map(entry -> entry.getCategory().getEvent()).distinct().toList();
|
||||
return distinctEvents.stream().map(event ->
|
||||
new CartEventResponseDto(
|
||||
event.getId(),
|
||||
event.getTitle(),
|
||||
event.getStart(),
|
||||
event.getEnd(),
|
||||
event.getDescription(),
|
||||
CartEntryService.toDtos(cartEntryRepository.getByCartAndEvent(cart.getId(), event.getId()))
|
||||
)).toList();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,2 +1,52 @@
|
|||
package me.jweissen.aeticket.service;public class EventService {
|
||||
package me.jweissen.aeticket.service;
|
||||
|
||||
import me.jweissen.aeticket.dto.request.EventRequestDto;
|
||||
import me.jweissen.aeticket.dto.request.EventUpdateRequestDto;
|
||||
import me.jweissen.aeticket.dto.response.EventResponseDto;
|
||||
import me.jweissen.aeticket.model.Event;
|
||||
import me.jweissen.aeticket.repository.EventRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class EventService {
|
||||
private final EventRepository eventRepository;
|
||||
|
||||
public EventService(EventRepository eventRepository) {
|
||||
this.eventRepository = eventRepository;
|
||||
}
|
||||
|
||||
public static Event fromDto(EventRequestDto dto) {
|
||||
return Event.builder()
|
||||
.title(dto.name())
|
||||
.description(dto.description())
|
||||
.start(dto.from())
|
||||
.end(dto.to())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static EventResponseDto toDto(Event event) {
|
||||
return new EventResponseDto(
|
||||
event.getId(),
|
||||
event.getTitle(),
|
||||
event.getStart(),
|
||||
event.getEnd(),
|
||||
event.getDescription(),
|
||||
event.getCategories()
|
||||
)
|
||||
}
|
||||
|
||||
public void create(EventRequestDto event) {
|
||||
eventRepository.save(EventService.fromDto(event));
|
||||
}
|
||||
|
||||
public void update(EventUpdateRequestDto event) {
|
||||
}
|
||||
|
||||
public void delete(Integer id) {
|
||||
eventRepository.deleteById(id);
|
||||
}
|
||||
|
||||
public EventResponseDto getById(Integer id) {
|
||||
return eventRepository.getReferenceById(id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,2 +1,38 @@
|
|||
package me.jweissen.aeticket.service;public class UserService {
|
||||
package me.jweissen.aeticket.service;
|
||||
|
||||
import me.jweissen.aeticket.dto.response.UserResponseDto;
|
||||
import me.jweissen.aeticket.model.User;
|
||||
import me.jweissen.aeticket.repository.UserRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class UserService {
|
||||
private final UserRepository userRepository;
|
||||
|
||||
public UserService(UserRepository userRepository) {
|
||||
this.userRepository = userRepository;
|
||||
}
|
||||
|
||||
public static UserResponseDto toDto(User user) {
|
||||
return new UserResponseDto(
|
||||
user.getId(),
|
||||
user.getFirstname(),
|
||||
user.getLastname(),
|
||||
user.getEmail()
|
||||
);
|
||||
}
|
||||
|
||||
public static List<UserResponseDto> toDtos(List<User> users) {
|
||||
return users.stream().map(UserService::toDto).toList();
|
||||
}
|
||||
|
||||
public List<UserResponseDto> getAll() {
|
||||
return UserService.toDtos(userRepository.findAll());
|
||||
}
|
||||
|
||||
public void delete(Integer id) {
|
||||
userRepository.deleteById(id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue