Skip to content

Commit

Permalink
favorites services and ralational integration added
Browse files Browse the repository at this point in the history
  • Loading branch information
carnasci committed Apr 23, 2024
1 parent 8f136f1 commit 7e06cf6
Show file tree
Hide file tree
Showing 8 changed files with 335 additions and 260 deletions.
499 changes: 255 additions & 244 deletions ReactFrontEnd/src/Components/ParkDetails.jsx

Large diffs are not rendered by default.

29 changes: 16 additions & 13 deletions ReactFrontEnd/src/Services/FavoritesServices.jsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
import React from "react";
import axios from "axios";

const FAVORITES_API_BASE_URL = "http://localhost:8080/api/v1/favorites";
const FAVORITES_BASE_API_URL = "http://localhost:8080/api/v1/favorites";

const FAVORITES_API_LIST_URL = "http://localhost:8080/api/v1/favorites";
class FavoritesServices {
createFavorite(favorites) {
return axios.post(FAVORITES_BASE_API_URL, favorites);
}

getFavorites() {
return axios.get(FAVORITES_BASE_API_URL);
}

getFavoritesByUserId(id) {
return axios.get(FAVORITES_BASE_API_URL + "/" + "user" + "/" + id);
}

class FavoritesService {


addToFavorites(favorites) {
return axios.post(FAVORITES_API_BASE_URL, favorites);
}

getFavorites() {
return axios.get(FAVORITES_API_LIST_URL);
}
deleteFavorites(id) {
return axios.delete(FAVORITES_BASE_API_URL + "/" + id);
}
}

export default new FavoritesService();
export default new FavoritesServices();
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.nationalParkApp.demo.Controller;

import com.nationalParkApp.demo.Model.Favorites;
import com.nationalParkApp.demo.Model.User;
import com.nationalParkApp.demo.service.FavoritesService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
Expand All @@ -9,6 +10,7 @@
import java.util.List;
import java.util.Map;

@CrossOrigin(origins = "http://localhost:5173")
@RestController
@RequestMapping("/api/v1/")
public class FavoritesController {
Expand All @@ -34,8 +36,13 @@ public List<Favorites> getAllFavorites() {
return favoritesService.getAllFavorites();
}

@DeleteMapping("/favorites")
public ResponseEntity<Object> deleteFavorite(@RequestBody Long id) {
@GetMapping("/favorites/user/{id}")
public List<Favorites> getAllFavoritesByUserId(@PathVariable Long id) {

return favoritesService.getAllByUserId(id);
}
@DeleteMapping("/favorites{id}")
public ResponseEntity<Object> deleteFavorite(@PathVariable Long id) {
boolean deleted = false;
deleted = favoritesService.deleteFromFavorites(id);
Map<String, Boolean> response = new HashMap<>();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.nationalParkApp.demo.Model;

import com.nationalParkApp.demo.entity.UserEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
Expand All @@ -11,4 +12,10 @@ public class Favorites {

private long id;
private String parkCode;
private UserEntity user;

public Favorites(long id, String parkCode) {
this.id = id;
this.parkCode = parkCode;
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
package com.nationalParkApp.demo.Repository;

import com.nationalParkApp.demo.Model.Favorites;
import com.nationalParkApp.demo.Model.User;
import com.nationalParkApp.demo.entity.FavoritesEntity;
import jakarta.persistence.TypedQuery;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface FavoritesRepository extends JpaRepository<FavoritesEntity, Long> {

public List<FavoritesEntity> findByParkCode(String parkCode);

public List<FavoritesEntity> findByUserId(Long id);

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.nationalParkApp.demo.entity;

import com.nationalParkApp.demo.Model.User;
import jakarta.persistence.*;
import lombok.Data;

Expand All @@ -12,4 +13,11 @@ public class FavoritesEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String parkCode;

@ManyToOne
@JoinTable(name = "user_favorites",
joinColumns = @JoinColumn(name = "favorites_id"),
inverseJoinColumns = @JoinColumn(name = "user_id")
)
private UserEntity user;
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ public interface FavoritesService {

boolean deleteFromFavorites(Long id);

List<Favorites> getAllByParkCode(String parkCode);

List<Favorites> getAllByUserId(Long id);

List<Favorites> getAllFavorites();

Favorites getFavoritesById(Long id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,37 @@ public boolean deleteFromFavorites(Long id) {
return false;
}

@Override
public List<Favorites> getAllByParkCode(String parkCode) {
List<FavoritesEntity> favoritesEntities = favoritesRepository.findByParkCode(parkCode);

List<Favorites> favorites = favoritesEntities.stream().map(fav -> new Favorites(
fav.getId(),
fav.getParkCode(),
fav.getUser()))
.collect(Collectors.toList());
return favorites;
}

@Override
public List<Favorites> getAllByUserId(Long id) {
List<FavoritesEntity> favoritesEntities = favoritesRepository.findByUserId(id);

List<Favorites> favorites = favoritesEntities.stream().map(fav -> new Favorites(
fav.getId(),
fav.getParkCode()))
.collect(Collectors.toList());
return favorites;
}

@Override
public List<Favorites> getAllFavorites() {
List<FavoritesEntity> favoritesEntities = favoritesRepository.findAll();

List<Favorites> favorites = favoritesEntities.stream().map(fav -> new Favorites(
fav.getId(),
fav.getParkCode()))
fav.getParkCode(),
fav.getUser()))
.collect(Collectors.toList());
return favorites;
}
Expand Down

0 comments on commit 7e06cf6

Please sign in to comment.