diff --git a/pom.xml b/pom.xml index 16f7a9a..1f7ab15 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,10 @@ org.springframework.boot spring-boot-starter-web - + + org.springframework.boot + spring-boot-starter-security + com.mysql mysql-connector-j diff --git a/src/main/java/me/jweissen/aeticket/controller/CartController.java b/src/main/java/me/jweissen/aeticket/controller/CartController.java index fb9930b..6c339dc 100644 --- a/src/main/java/me/jweissen/aeticket/controller/CartController.java +++ b/src/main/java/me/jweissen/aeticket/controller/CartController.java @@ -1,12 +1,16 @@ package me.jweissen.aeticket.controller; +import me.jweissen.aeticket.dto.response.CartEntryResponseDto; import me.jweissen.aeticket.service.CartService; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController @RequestMapping("/cart") public class CartController { @@ -16,8 +20,15 @@ public class CartController { this.cartService = cartService; } + /*@GetMapping("/list") + public ResponseEntity> getCartEntries() { + return cartService.get + }*/ + @PostMapping("/add") public ResponseEntity addEntry() { return new ResponseEntity<>(HttpStatus.NO_CONTENT); } + + } diff --git a/src/main/java/me/jweissen/aeticket/dto/response/CartEntryResponseDto.java b/src/main/java/me/jweissen/aeticket/dto/response/CartEntryResponseDto.java index 5b3ac3c..37c923a 100644 --- a/src/main/java/me/jweissen/aeticket/dto/response/CartEntryResponseDto.java +++ b/src/main/java/me/jweissen/aeticket/dto/response/CartEntryResponseDto.java @@ -1,4 +1,4 @@ package me.jweissen.aeticket.dto.response; -public record CartEntryResponseDto(Integer id, String name, Double price, Integer amount) { +public record CartEntryResponseDto(Long id, String name, Double price, Integer amount) { } diff --git a/src/main/java/me/jweissen/aeticket/model/Role.java b/src/main/java/me/jweissen/aeticket/model/Role.java new file mode 100644 index 0000000..31c0609 --- /dev/null +++ b/src/main/java/me/jweissen/aeticket/model/Role.java @@ -0,0 +1,6 @@ +package me.jweissen.aeticket.model; + +public enum Role { + ADMIN, + USER, +} diff --git a/src/main/java/me/jweissen/aeticket/model/User.java b/src/main/java/me/jweissen/aeticket/model/User.java index bc7bdfb..95b563e 100644 --- a/src/main/java/me/jweissen/aeticket/model/User.java +++ b/src/main/java/me/jweissen/aeticket/model/User.java @@ -4,14 +4,18 @@ import jakarta.persistence.*; import lombok.Getter; import lombok.NonNull; import lombok.Setter; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; +import java.util.Collection; import java.util.List; @Entity @Table @Getter @Setter -public class User { +public class User implements UserDetails { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @@ -39,4 +43,38 @@ public class User { @OneToMany(mappedBy = "user") @JoinColumn(nullable = false) private List carts; + + @Enumerated(EnumType.STRING) + private Role role; + + @Override + public Collection getAuthorities() { + return List.of(new SimpleGrantedAuthority(role.name())); + } + + @Override + public String getUsername() { + return email; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} } diff --git a/src/main/java/me/jweissen/aeticket/service/CartEntryService.java b/src/main/java/me/jweissen/aeticket/service/CartEntryService.java index bedd27c..ef218b9 100644 --- a/src/main/java/me/jweissen/aeticket/service/CartEntryService.java +++ b/src/main/java/me/jweissen/aeticket/service/CartEntryService.java @@ -14,7 +14,7 @@ public class CartEntryService { return new CartEntryResponseDto( category.getId(), category.getName(), - category.getPrice(), + CategoryService.centsToEuros(category.getPrice()), cartEntry.getAmount() ); } diff --git a/src/main/java/me/jweissen/aeticket/service/CartService.java b/src/main/java/me/jweissen/aeticket/service/CartService.java index 792f5d9..eb18f7a 100644 --- a/src/main/java/me/jweissen/aeticket/service/CartService.java +++ b/src/main/java/me/jweissen/aeticket/service/CartService.java @@ -1,5 +1,6 @@ package me.jweissen.aeticket.service; +import me.jweissen.aeticket.dto.response.CartEntryResponseDto; import me.jweissen.aeticket.dto.response.CartEventResponseDto; import me.jweissen.aeticket.model.Cart; import me.jweissen.aeticket.model.Event; @@ -33,4 +34,7 @@ public class CartService { CartEntryService.toDtos(cartEntryRepository.getByCartAndEvent(cart.getId(), event.getId())) )).toList(); } + + //public List getCartByAuthToken() { + } diff --git a/src/main/java/me/jweissen/aeticket/service/CategoryService.java b/src/main/java/me/jweissen/aeticket/service/CategoryService.java index 7b44853..599065c 100644 --- a/src/main/java/me/jweissen/aeticket/service/CategoryService.java +++ b/src/main/java/me/jweissen/aeticket/service/CategoryService.java @@ -10,14 +10,18 @@ import java.util.List; public class CategoryService { public static CategoryResponseDto toDto(Category category) { return new CategoryResponseDto( - category.getId(), - category.getName(), - category.getPrice() / 100.0, - category.getStock() + category.getId(), + category.getName(), + centsToEuros(category.getPrice()), + category.getStock() ); } public static List toDtos(List categories) { return categories.stream().map(CategoryService::toDto).toList(); } + + public static Double centsToEuros(int cents) { + return cents / 100.0; + } }