Compare commits
5 Commits
cdd31fd6b7
...
initNotice
| Author | SHA1 | Date | |
|---|---|---|---|
| d869a18901 | |||
|
|
1d55f40753 | ||
| 3d205df038 | |||
|
|
5ccfc6ba2c | ||
|
|
f0e3a129d0 |
29
pom.xml
29
pom.xml
@@ -10,7 +10,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
<groupId>_11.asktpk</groupId>
|
<groupId>_11.asktpk</groupId>
|
||||||
<artifactId>ArtisanConnectBackend</artifactId>
|
<artifactId>ArtisanConnectBackend</artifactId>
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
<version>1.0.0</version>
|
||||||
<name>ArtisanConnectBackend</name>
|
<name>ArtisanConnectBackend</name>
|
||||||
<description>ArtisanConnectBackend</description>
|
<description>ArtisanConnectBackend</description>
|
||||||
<url/>
|
<url/>
|
||||||
@@ -34,31 +34,16 @@
|
|||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-data-rest</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
|
||||||
<!-- <artifactId>spring-boot-starter-oauth2-client</artifactId>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-web</artifactId>
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-devtools</artifactId>
|
<artifactId>spring-boot-devtools</artifactId>
|
||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
|
||||||
<!-- <artifactId>spring-boot-docker-compose</artifactId>-->
|
|
||||||
<!-- <scope>runtime</scope>-->
|
|
||||||
<!-- <optional>true</optional>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.postgresql</groupId>
|
<groupId>org.postgresql</groupId>
|
||||||
<artifactId>postgresql</artifactId>
|
<artifactId>postgresql</artifactId>
|
||||||
@@ -73,15 +58,10 @@
|
|||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.springframework.security</groupId>-->
|
|
||||||
<!-- <artifactId>spring-security-test</artifactId>-->
|
|
||||||
<!-- <scope>test</scope>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.squareup.okhttp3</groupId>
|
<groupId>com.squareup.okhttp3</groupId>
|
||||||
<artifactId>okhttp</artifactId>
|
<artifactId>okhttp</artifactId>
|
||||||
<version>4.9.3</version>
|
<version>4.12.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
@@ -93,11 +73,6 @@
|
|||||||
<artifactId>jakarta.validation-api</artifactId>
|
<artifactId>jakarta.validation-api</artifactId>
|
||||||
<version>3.1.0</version>
|
<version>3.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.springdoc</groupId>-->
|
|
||||||
<!-- <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>-->
|
|
||||||
<!-- <version>2.8.5</version>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package _11.asktpk.artisanconnectbackend.controller;
|
package _11.asktpk.artisanconnectbackend.controller;
|
||||||
|
|
||||||
import _11.asktpk.artisanconnectbackend.dto.NoticeAdditionDTO;
|
import _11.asktpk.artisanconnectbackend.dto.NoticeAdditionDTO;
|
||||||
|
import _11.asktpk.artisanconnectbackend.dto.NoticeBoostDTO;
|
||||||
|
import _11.asktpk.artisanconnectbackend.dto.RequestResponseDTO;
|
||||||
import _11.asktpk.artisanconnectbackend.service.ClientService;
|
import _11.asktpk.artisanconnectbackend.service.ClientService;
|
||||||
import _11.asktpk.artisanconnectbackend.service.NoticeService;
|
import _11.asktpk.artisanconnectbackend.service.NoticeService;
|
||||||
import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
|
import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
|
||||||
@@ -29,7 +31,7 @@ public class NoticeController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/get/{id}")
|
@GetMapping("/get/{id}")
|
||||||
public ResponseEntity getNoticeById(@PathVariable long id) {
|
public ResponseEntity<?> getNoticeById(@PathVariable long id) {
|
||||||
if (noticeService.noticeExists(id)) {
|
if (noticeService.noticeExists(id)) {
|
||||||
return ResponseEntity.ok(noticeService.getNoticeById(id));
|
return ResponseEntity.ok(noticeService.getNoticeById(id));
|
||||||
} else {
|
} else {
|
||||||
@@ -48,7 +50,6 @@ public class NoticeController {
|
|||||||
if (dto.getCategory() == null) {
|
if (dto.getCategory() == null) {
|
||||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new NoticeAdditionDTO("Nie ma takiej kategorii"));
|
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new NoticeAdditionDTO("Nie ma takiej kategorii"));
|
||||||
}
|
}
|
||||||
|
|
||||||
dto.setPublishDate(java.time.LocalDateTime.now());
|
dto.setPublishDate(java.time.LocalDateTime.now());
|
||||||
|
|
||||||
Long newNoticeId = noticeService.addNotice(dto);
|
Long newNoticeId = noticeService.addNotice(dto);
|
||||||
@@ -56,7 +57,6 @@ public class NoticeController {
|
|||||||
return ResponseEntity.status(HttpStatus.CREATED).body(new NoticeAdditionDTO(newNoticeId ,"Dodano ogłoszenie."));
|
return ResponseEntity.status(HttpStatus.CREATED).body(new NoticeAdditionDTO(newNoticeId ,"Dodano ogłoszenie."));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TODO: zamiast dodawać tutaj pętlą, musi to robić NoticeService, trzeba zaimplementować odpowienią metodę
|
// TODO: zamiast dodawać tutaj pętlą, musi to robić NoticeService, trzeba zaimplementować odpowienią metodę
|
||||||
@PostMapping("/bulk_add")
|
@PostMapping("/bulk_add")
|
||||||
public ResponseEntity<String> addNotices(@RequestBody List<NoticeDTO> notices_list) {
|
public ResponseEntity<String> addNotices(@RequestBody List<NoticeDTO> notices_list) {
|
||||||
@@ -100,12 +100,22 @@ public class NoticeController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("/delete/{id}")
|
@DeleteMapping("/delete/{id}")
|
||||||
public ResponseEntity deleteNotice(@PathVariable("id") long id) {
|
public ResponseEntity<RequestResponseDTO> deleteNotice(@PathVariable("id") long id) {
|
||||||
if (noticeService.noticeExists(id)) {
|
if (noticeService.noticeExists(id)) {
|
||||||
noticeService.deleteNotice(id);
|
noticeService.deleteNotice(id);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return ResponseEntity.status(HttpStatus.OK).body(new RequestResponseDTO("Pomyślnie usunięto ogłoszenie o ID: " + id));
|
||||||
} else {
|
} else {
|
||||||
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
|
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new RequestResponseDTO("Nie znaleziono ogłoszenia o ID: " + id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/boost/{id}")
|
||||||
|
public ResponseEntity<RequestResponseDTO> boostNotice(@PathVariable("id") long clientId, @RequestBody NoticeBoostDTO dto) {
|
||||||
|
if (!noticeService.isNoticeOwnedByClient(dto.getNoticeId(), clientId)) {
|
||||||
|
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new RequestResponseDTO("Ogłoszenie nie istnieje lub nie należy do zalogowanego klienta."));
|
||||||
|
}
|
||||||
|
noticeService.boostNotice(dto.getNoticeId());
|
||||||
|
|
||||||
|
return ResponseEntity.status(HttpStatus.OK).body(new RequestResponseDTO("Ogłoszenie zostało pomyślnie wypromowane."));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package _11.asktpk.artisanconnectbackend.controller;
|
|||||||
import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
|
import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
|
||||||
import _11.asktpk.artisanconnectbackend.dto.RequestResponseDTO;
|
import _11.asktpk.artisanconnectbackend.dto.RequestResponseDTO;
|
||||||
import _11.asktpk.artisanconnectbackend.dto.WishlistDTO;
|
import _11.asktpk.artisanconnectbackend.dto.WishlistDTO;
|
||||||
import _11.asktpk.artisanconnectbackend.entities.Wishlist;
|
|
||||||
import _11.asktpk.artisanconnectbackend.service.ClientService;
|
import _11.asktpk.artisanconnectbackend.service.ClientService;
|
||||||
import _11.asktpk.artisanconnectbackend.service.NoticeService;
|
import _11.asktpk.artisanconnectbackend.service.NoticeService;
|
||||||
import _11.asktpk.artisanconnectbackend.service.WishlistService;
|
import _11.asktpk.artisanconnectbackend.service.WishlistService;
|
||||||
@@ -15,7 +14,6 @@ import java.util.List;
|
|||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/v1/wishlist")
|
@RequestMapping("/api/v1/wishlist")
|
||||||
public class WishlistController {
|
public class WishlistController {
|
||||||
|
|
||||||
private final WishlistService wishlistService;
|
private final WishlistService wishlistService;
|
||||||
private final ClientService clientService;
|
private final ClientService clientService;
|
||||||
private final NoticeService noticeService;
|
private final NoticeService noticeService;
|
||||||
@@ -30,7 +28,6 @@ public class WishlistController {
|
|||||||
public ResponseEntity<RequestResponseDTO> toggleWishlist(@RequestBody WishlistDTO wishlistDTO) {
|
public ResponseEntity<RequestResponseDTO> toggleWishlist(@RequestBody WishlistDTO wishlistDTO) {
|
||||||
Long noticeId = wishlistDTO.getNoticeId();
|
Long noticeId = wishlistDTO.getNoticeId();
|
||||||
Long clientId = wishlistDTO.getClientId();
|
Long clientId = wishlistDTO.getClientId();
|
||||||
|
|
||||||
NoticeDTO noticeDTO = noticeService.getNoticeById(noticeId);
|
NoticeDTO noticeDTO = noticeService.getNoticeById(noticeId);
|
||||||
if (noticeDTO == null) {
|
if (noticeDTO == null) {
|
||||||
return ResponseEntity.badRequest().body(new RequestResponseDTO("Notice not found"));
|
return ResponseEntity.badRequest().body(new RequestResponseDTO("Notice not found"));
|
||||||
@@ -47,21 +44,16 @@ public class WishlistController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @GetMapping("/{clientId}")
|
||||||
|
// public ResponseEntity<List<WishlistDTO>> getWishlist(@PathVariable Long clientId) {
|
||||||
@GetMapping("/{clientId}")
|
// List<WishlistDTO> wishlist = wishlistService.getWishlistForClientId(clientId);
|
||||||
public ResponseEntity<List<WishlistDTO>> getWishlist(@PathVariable Long clientId) {
|
// return ResponseEntity.ok(wishlist);
|
||||||
List<WishlistDTO> wishlist = wishlistService.getWishlistForClientId(clientId);
|
|
||||||
return ResponseEntity.ok(wishlist);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// @GetMapping("/get/all")
|
|
||||||
// public List<NoticeDTO> getAllNotices() {
|
|
||||||
// return noticeService.getAllNotices();
|
|
||||||
// }
|
// }
|
||||||
@GetMapping("/")
|
|
||||||
public List<NoticeDTO> getWishlistForClient() {
|
@GetMapping("/")
|
||||||
Long clientId =1L;
|
public List<NoticeDTO> getWishlistForClient() {
|
||||||
return wishlistService.getNoticesInWishlist(clientId);
|
// TODO: Replace with actual client ID from authentication context
|
||||||
}
|
Long clientId = 1L;
|
||||||
|
return wishlistService.getNoticesInWishlist(clientId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package _11.asktpk.artisanconnectbackend.dto;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter @Setter
|
||||||
|
public class NoticeBoostDTO {
|
||||||
|
private Long noticeId;
|
||||||
|
}
|
||||||
@@ -5,4 +5,7 @@ import _11.asktpk.artisanconnectbackend.entities.Notice;
|
|||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
public interface NoticeRepository extends JpaRepository<Notice, Long> {
|
public interface NoticeRepository extends JpaRepository<Notice, Long> {
|
||||||
|
|
||||||
|
boolean existsByIdNoticeAndClientId(long noticeId, long clientId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,4 @@ public interface WishlistRepository extends JpaRepository<Wishlist, Long> {
|
|||||||
List<Wishlist> findAllByClientId(Long clientId);
|
List<Wishlist> findAllByClientId(Long clientId);
|
||||||
|
|
||||||
Optional<Wishlist> findByClientAndNotice(Client client, Notice notice);
|
Optional<Wishlist> findByClientAndNotice(Client client, Notice notice);
|
||||||
|
|
||||||
Boolean existsByClientAndNotice(Client client, Notice notice);
|
|
||||||
}
|
}
|
||||||
@@ -5,10 +5,11 @@ import _11.asktpk.artisanconnectbackend.entities.Notice;
|
|||||||
import _11.asktpk.artisanconnectbackend.repository.ClientRepository;
|
import _11.asktpk.artisanconnectbackend.repository.ClientRepository;
|
||||||
import _11.asktpk.artisanconnectbackend.repository.NoticeRepository;
|
import _11.asktpk.artisanconnectbackend.repository.NoticeRepository;
|
||||||
import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
|
import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
|
||||||
import _11.asktpk.artisanconnectbackend.repository.WishlistRepository;
|
//import _11.asktpk.artisanconnectbackend.service.WishlistService;
|
||||||
import jakarta.persistence.EntityNotFoundException;
|
import jakarta.persistence.EntityNotFoundException;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -18,12 +19,12 @@ public class NoticeService {
|
|||||||
|
|
||||||
private final NoticeRepository noticeRepository;
|
private final NoticeRepository noticeRepository;
|
||||||
private final ClientRepository clientRepository;
|
private final ClientRepository clientRepository;
|
||||||
private final WishlistRepository wishlistRepository;
|
private final WishlistService wishlistService;
|
||||||
|
|
||||||
public NoticeService(NoticeRepository noticeRepository, ClientRepository clientRepository,WishlistRepository wishlistRepository) {
|
public NoticeService(NoticeRepository noticeRepository, ClientRepository clientRepository, WishlistService wishlistService) {
|
||||||
this.noticeRepository = noticeRepository;
|
this.noticeRepository = noticeRepository;
|
||||||
this.clientRepository = clientRepository;
|
this.clientRepository = clientRepository;
|
||||||
this.wishlistRepository = wishlistRepository;//serwis zamiast repository
|
this.wishlistService = wishlistService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Notice fromDTO(NoticeDTO dto) {
|
public Notice fromDTO(NoticeDTO dto) {
|
||||||
@@ -45,11 +46,12 @@ public class NoticeService {
|
|||||||
|
|
||||||
private NoticeDTO toDTO(Notice notice) {
|
private NoticeDTO toDTO(Notice notice) {
|
||||||
NoticeDTO dto = new NoticeDTO();
|
NoticeDTO dto = new NoticeDTO();
|
||||||
|
// TODO: To be updated using AuthService after implementing authentication.
|
||||||
Optional<Client> client = clientRepository.findById(1L);
|
Optional<Client> client = clientRepository.findById(1L);
|
||||||
boolean isWishlisted = false;
|
boolean isWishlisted = false;
|
||||||
if (client.isPresent()) {
|
if (client.isPresent()) {
|
||||||
Client c = client.get();
|
Client c = client.get();
|
||||||
isWishlisted = wishlistRepository.existsByClientAndNotice(c,notice);
|
isWishlisted = wishlistService.isWishlisted(c, notice);
|
||||||
}
|
}
|
||||||
dto.setNoticeId(notice.getIdNotice());
|
dto.setNoticeId(notice.getIdNotice());
|
||||||
dto.setTitle(notice.getTitle());
|
dto.setTitle(notice.getTitle());
|
||||||
@@ -77,10 +79,10 @@ public class NoticeService {
|
|||||||
.orElseThrow(() -> new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id));
|
.orElseThrow(() -> new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id));
|
||||||
return toDTO(notice);
|
return toDTO(notice);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Notice getNoticeByIdEntity(Long id) {
|
public Notice getNoticeByIdEntity(Long id) {
|
||||||
Notice notice = noticeRepository.findById(id)
|
return noticeRepository.findById(id)
|
||||||
.orElseThrow(() -> new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id));
|
.orElseThrow(() -> new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id));
|
||||||
return notice;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long addNotice(NoticeDTO dto) {
|
public Long addNotice(NoticeDTO dto) {
|
||||||
@@ -118,4 +120,20 @@ public class NoticeService {
|
|||||||
throw new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id);
|
throw new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isNoticeOwnedByClient(long noticeId, long clientId) {
|
||||||
|
return noticeRepository.existsByIdNoticeAndClientId(noticeId, clientId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void boostNotice(long noticeId) {
|
||||||
|
Notice notice = noticeRepository.findById(noticeId)
|
||||||
|
.orElseThrow(() -> new EntityNotFoundException("Ogłoszenie o ID " + noticeId + " nie istnieje."));
|
||||||
|
|
||||||
|
notice.setPublishDate(LocalDateTime.now());
|
||||||
|
|
||||||
|
noticeRepository.save(notice);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,25 +2,26 @@ package _11.asktpk.artisanconnectbackend.service;
|
|||||||
|
|
||||||
import _11.asktpk.artisanconnectbackend.dto.WishlistDTO;
|
import _11.asktpk.artisanconnectbackend.dto.WishlistDTO;
|
||||||
import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
|
import _11.asktpk.artisanconnectbackend.dto.NoticeDTO;
|
||||||
import _11.asktpk.artisanconnectbackend.service.NoticeService;
|
|
||||||
import _11.asktpk.artisanconnectbackend.entities.Client;
|
import _11.asktpk.artisanconnectbackend.entities.Client;
|
||||||
import _11.asktpk.artisanconnectbackend.entities.Notice;
|
import _11.asktpk.artisanconnectbackend.entities.Notice;
|
||||||
import _11.asktpk.artisanconnectbackend.entities.Wishlist;
|
import _11.asktpk.artisanconnectbackend.entities.Wishlist;
|
||||||
import _11.asktpk.artisanconnectbackend.repository.WishlistRepository;
|
import _11.asktpk.artisanconnectbackend.repository.WishlistRepository;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class WishlistService {
|
public class WishlistService {
|
||||||
|
|
||||||
private final WishlistRepository wishlistRepository;
|
private final WishlistRepository wishlistRepository;
|
||||||
private final NoticeService noticeService;
|
private final NoticeService noticeService;
|
||||||
|
|
||||||
public WishlistService(WishlistRepository wishlistRepository, NoticeService noticeService) {
|
public WishlistService(WishlistRepository wishlistRepository, @Lazy NoticeService noticeService) {
|
||||||
this.wishlistRepository = wishlistRepository;
|
this.wishlistRepository = wishlistRepository;
|
||||||
this.noticeService = noticeService;//tak robimy
|
this.noticeService = noticeService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<WishlistDTO> getWishlistForClientId(Long clientId) {
|
public List<WishlistDTO> getWishlistForClientId(Long clientId) {
|
||||||
@@ -33,11 +34,7 @@ public class WishlistService {
|
|||||||
public boolean isWishlisted(Client client, Notice notice) {
|
public boolean isWishlisted(Client client, Notice notice) {
|
||||||
Optional<Wishlist> existingEntry = wishlistRepository.findByClientAndNotice(client, notice);
|
Optional<Wishlist> existingEntry = wishlistRepository.findByClientAndNotice(client, notice);
|
||||||
|
|
||||||
if (existingEntry.isPresent()) {
|
return existingEntry.isEmpty();
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean toggleWishlist(Client client, Notice notice) {
|
public boolean toggleWishlist(Client client, Notice notice) {
|
||||||
|
|||||||
Reference in New Issue
Block a user