Skip to content

Commit

Permalink
feat: Added endpoint userAdvertisement (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
arturhasparian authored Jan 9, 2024
1 parent 89e19ab commit 867334a
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,11 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
.authenticated()
.requestMatchers("/api/advertisements/create"
, "/api/advertisements/{id}/update"
, "/api/advertisements/{id}/remove")
, "/api/advertisements/{id}/remove"
, "/api/advertisements/user")
.authenticated()
.requestMatchers("/api/advertisements/{id}/favorites"
, "/api/advertisements/favorites")
, "/api/advertisements/favorites")
.authenticated()
.requestMatchers("/api/image/set/**")
.authenticated()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,17 @@ public ResponseEntity<?> deleteAdvertisement(@PathVariable Long id) {
advertisementService.removeAdvertisement(id);
return ResponseHandler.generateResponse("Ok", HttpStatus.OK);
}

@GetMapping("/user")
@SecurityRequirement(name = "Bearer Authentication")
@Operation(summary = "Get all user's advertisement")

@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "Ok"),
@ApiResponse(responseCode = "401", description = "Unauthorized")
})
public ResponseEntity<?> userAdvertisement() {
var userAdvertisement = advertisementService.findUserAdvertisement();
return ResponseHandler.generateResponse("All advertisements", HttpStatus.OK, userAdvertisement);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.sellbycar.marketplace.repositories;

import com.sellbycar.marketplace.models.entities.Advertisement;
import com.sellbycar.marketplace.models.entities.User;
import lombok.NonNull;
import org.springframework.data.jpa.repository.JpaRepository;

Expand All @@ -9,4 +10,6 @@
public interface AdvertisementRepository extends JpaRepository<Advertisement, Long> {

@NonNull List<Advertisement> findAll();

@NonNull List<Advertisement> findByUser(User user);
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public interface AdvertisementService {
* @return List of all advertisements
*/
List<AdvertisementDTO> findAllAd();

List<AdvertisementDTO> findAllAd(Sort sort);

/**
Expand All @@ -30,7 +31,7 @@ public interface AdvertisementService {
* Finds a user in the database by checking the given user ID and converts it into DTO.
*
* @param advertisementDTO object with datas for creating
* @return
* @return id of advertisement
*/
long createAdvertisement(AdvertisementDTO advertisementDTO, List<MultipartFile> files) throws IOException;

Expand Down Expand Up @@ -69,4 +70,12 @@ public interface AdvertisementService {
* @param id The identifier of the advertisement to be removed.
*/
void removeAdvertisement(Long id);

/**
* Finds all user's advertisements in the database
*
* @return All user's advertisements in list
*/
List<AdvertisementDTO> findUserAdvertisement();

}
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ public List<AdvertisementDTO> findAllAd() {
}

@Transactional
public List<AdvertisementDTO> findAllAd(Sort sort)
{
public List<AdvertisementDTO> findAllAd(Sort sort) {
List<Advertisement> advertisements = advertisementRepository.findAll(sort);
return advertisements.stream()
.map(advertisementMapper::toDTO)
Expand Down Expand Up @@ -133,8 +132,7 @@ public Advertisement addToFavoriteList(Long id) {
// Adding the advertisement to set favorites of users
favoriteCarsOfUser.add(advertisement);
user.setFavoriteCars(favoriteCarsOfUser);
} else
{
} else {
throw new FavoritesCarsNotFoundException(String.format(
"Advertisement with id %s was not found.", id
));
Expand Down Expand Up @@ -177,4 +175,15 @@ public void removeAdvertisement(Long id) {
});
}

@Transactional
public List<AdvertisementDTO> findUserAdvertisement() {
User user = userService.getUserFromSecurityContextHolder();
List<Advertisement> advertisements = advertisementRepository.findByUser(user);
if (user.getAdvertisement().isEmpty()) {
throw new CustomUserException("Advertisement not found");
}
return advertisements.stream()
.map(advertisementMapper::toDTO)
.collect(Collectors.toList());
}
}

0 comments on commit 867334a

Please sign in to comment.