Changeset 7deb3e2


Ignore:
Timestamp:
04/12/25 20:03:33 (7 weeks ago)
Author:
ste08 <sjovanoska@…>
Branches:
master
Parents:
8ae59d6
Message:

notification status + review page fixed

Location:
src/main
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/skychasemk/controller/ReviewController.java

    r8ae59d6 r7deb3e2  
    22
    33import com.example.skychasemk.dto.ReviewDTO;
    4 import com.example.skychasemk.model.Notification;
    54import com.example.skychasemk.model.Review;
    65import com.example.skychasemk.repository.ReviewRepository;
     
    1110
    1211import java.util.List;
    13 import java.util.Optional;
    1412
    1513@RestController
     
    2422    // Get all reviews
    2523    @GetMapping
    26     public List<Review> getAllReviews() {
     24    public List<ReviewDTO> getAllReviews() {
    2725        return reviewService.getAllReviews();
    2826    }
  • src/main/java/com/example/skychasemk/dto/ReviewDTO.java

    r8ae59d6 r7deb3e2  
    1111    private Integer rating;
    1212    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    }
    1322
    1423    // Getters and Setters
  • src/main/java/com/example/skychasemk/services/ReviewService.java

    r8ae59d6 r7deb3e2  
    33import com.example.skychasemk.dto.ReviewDTO;
    44import com.example.skychasemk.model.Review;
     5import com.example.skychasemk.repository.FlightRepository;
    56import com.example.skychasemk.repository.ReviewRepository;
    67import org.springframework.beans.factory.annotation.Autowired;
     
    89
    910import java.time.LocalDate;
     11import java.util.ArrayList;
    1012import java.util.List;
    1113import java.util.Optional;
     
    1719    private ReviewRepository reviewRepository;
    1820
    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() {
    2047        return reviewRepository.findAll();
    21     }
     48    }*/
    2249
    2350    public Optional<Review> getReviewById(Integer reviewID) {
  • src/main/resources/static/FlightSearch.html

    r8ae59d6 r7deb3e2  
    356356        <ul>
    357357            <li v-for="notification in notifications" :key="notification.message">
    358                 {{ notification.message }}
     358                {{ notification.message }} - {{ "RESOLVED" }}
    359359            </li>
    360360        </ul>
     
    402402                        this.notifications = response.data;
    403403                        this.unreadNotifications = this.notifications.filter(n => !n.read).length;
     404                        console.log(response.data);
    404405                    })
    405406                    .catch(error => {
  • src/main/resources/static/ReviewPage.html

    r8ae59d6 r7deb3e2  
    1212    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet">
    1313<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
    1449    .popup-overlay {
    1550        position: fixed;
     
    85120            <div class="review-list">
    86121                <div v-for="review in reviews" :key="review.reviewid" class="review-item">
     122                    <p><strong>Flight Number:</strong> {{ review.flightNumber }}</p>
    87123                    <h3>{{ review.date }}</h3>
    88124                    <p>{{ review.reviewComment }}</p>
    89                     <span>{{ review.rating }}</span>
     125                    <span><i class="fas fa-star" style="color:gold;"></i> {{ review.rating }}</span>
    90126                </div>
    91127            </div>
     
    139175                    const response = await axios.get("api/reviews");
    140176                    this.reviews = response.data;
     177                    console.log(response.data);
    141178                } catch (error) {
    142179                    console.error(error);
Note: See TracChangeset for help on using the changeset viewer.