Changeset 7deb3e2
- Timestamp:
- 04/12/25 20:03:33 (7 weeks ago)
- Branches:
- master
- Parents:
- 8ae59d6
- Location:
- src/main
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/com/example/skychasemk/controller/ReviewController.java
r8ae59d6 r7deb3e2 2 2 3 3 import com.example.skychasemk.dto.ReviewDTO; 4 import com.example.skychasemk.model.Notification;5 4 import com.example.skychasemk.model.Review; 6 5 import com.example.skychasemk.repository.ReviewRepository; … … 11 10 12 11 import java.util.List; 13 import java.util.Optional;14 12 15 13 @RestController … … 24 22 // Get all reviews 25 23 @GetMapping 26 public List<Review > getAllReviews() {24 public List<ReviewDTO> getAllReviews() { 27 25 return reviewService.getAllReviews(); 28 26 } -
src/main/java/com/example/skychasemk/dto/ReviewDTO.java
r8ae59d6 r7deb3e2 11 11 private Integer rating; 12 12 private LocalDate date; 13 private String flightNumber; 14 15 public String getFlightNumber() { 16 return flightNumber; 17 } 18 19 public void setFlightNumber(String flightNumber) { 20 this.flightNumber = flightNumber; 21 } 13 22 14 23 // Getters and Setters -
src/main/java/com/example/skychasemk/services/ReviewService.java
r8ae59d6 r7deb3e2 3 3 import com.example.skychasemk.dto.ReviewDTO; 4 4 import com.example.skychasemk.model.Review; 5 import com.example.skychasemk.repository.FlightRepository; 5 6 import com.example.skychasemk.repository.ReviewRepository; 6 7 import org.springframework.beans.factory.annotation.Autowired; … … 8 9 9 10 import java.time.LocalDate; 11 import java.util.ArrayList; 10 12 import java.util.List; 11 13 import java.util.Optional; … … 17 19 private ReviewRepository reviewRepository; 18 20 19 public List<Review> getAllReviews() { 21 @Autowired 22 private FlightRepository flightRepository; 23 24 public List<ReviewDTO> getAllReviews(){ 25 List<Review> reviews = reviewRepository.findAll(); 26 List<ReviewDTO> reviewDTOs = new ArrayList<>(); 27 28 for (Review review : reviews) { 29 ReviewDTO dto = new ReviewDTO(); 30 dto.setReviewID(review.getReviewID()); 31 dto.setReviewComment(review.getReviewComment()); 32 dto.setRating(review.getRating()); 33 dto.setTargetID(review.getTargetID()); 34 dto.setUserID(review.getUserID()); 35 36 flightRepository.findById(Long.valueOf(review.getTargetID())).ifPresent(flight -> { 37 dto.setFlightNumber(flight.getFlightNumber()); 38 }); 39 40 41 reviewDTOs.add(dto); 42 } 43 return reviewDTOs; 44 } 45 46 /* public List<Review> getAllReviews() { 20 47 return reviewRepository.findAll(); 21 } 48 }*/ 22 49 23 50 public Optional<Review> getReviewById(Integer reviewID) { -
src/main/resources/static/FlightSearch.html
r8ae59d6 r7deb3e2 356 356 <ul> 357 357 <li v-for="notification in notifications" :key="notification.message"> 358 {{ notification.message }} 358 {{ notification.message }} - {{ "RESOLVED" }} 359 359 </li> 360 360 </ul> … … 402 402 this.notifications = response.data; 403 403 this.unreadNotifications = this.notifications.filter(n => !n.read).length; 404 console.log(response.data); 404 405 }) 405 406 .catch(error => { -
src/main/resources/static/ReviewPage.html
r8ae59d6 r7deb3e2 12 12 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"> 13 13 <style> 14 .review-container { 15 max-width: 800px; 16 margin: 0 auto; 17 padding: 20px; 18 } 19 20 .review-list { 21 display: flex; 22 flex-direction: column; 23 gap: 20px; 24 margin-top: 20px; 25 } 26 27 .review-item { 28 background-color: #fff; 29 border: 1px solid #ccc; 30 border-radius: 12px; 31 padding: 15px 20px; 32 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); 33 transition: box-shadow 0.3s ease; 34 } 35 36 .review-item:hover { 37 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); 38 } 39 40 .review-item p { 41 margin: 5px 0; 42 } 43 44 .review-item span { 45 font-weight: bold; 46 color: #673ab7; 47 } 48 14 49 .popup-overlay { 15 50 position: fixed; … … 85 120 <div class="review-list"> 86 121 <div v-for="review in reviews" :key="review.reviewid" class="review-item"> 122 <p><strong>Flight Number:</strong> {{ review.flightNumber }}</p> 87 123 <h3>{{ review.date }}</h3> 88 124 <p>{{ review.reviewComment }}</p> 89 <span> {{ review.rating }}</span>125 <span><i class="fas fa-star" style="color:gold;"></i> {{ review.rating }}</span> 90 126 </div> 91 127 </div> … … 139 175 const response = await axios.get("api/reviews"); 140 176 this.reviews = response.data; 177 console.log(response.data); 141 178 } catch (error) { 142 179 console.error(error);
Note:
See TracChangeset
for help on using the changeset viewer.