Changeset 4063ae0
- Timestamp:
- 01/22/26 20:58:22 (6 months ago)
- Branches:
- main
- Children:
- 0d9725c, c6f7486
- Parents:
- ab9c16a
- Location:
- finkwave/src/main/java/com/ukim/finki/develop/finkwave
- Files:
-
- 1 added
- 6 edited
-
controller/AllController.java (modified) (4 diffs)
-
model/Event.java (modified) (3 diffs)
-
model/EventProjection.java (added)
-
model/Listen.java (modified) (3 diffs)
-
model/ListenId.java (modified) (4 diffs)
-
model/Song.java (modified) (1 diff)
-
repository/EventRepository.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
finkwave/src/main/java/com/ukim/finki/develop/finkwave/controller/AllController.java
rab9c16a r4063ae0 2 2 3 3 import com.ukim.finki.develop.finkwave.model.Admin; 4 import com.ukim.finki.develop.finkwave.model.Event; 5 import com.ukim.finki.develop.finkwave.model.User; 4 import com.ukim.finki.develop.finkwave.model.EventProjection; 6 5 import com.ukim.finki.develop.finkwave.repository.AdminRepository; 7 6 import com.ukim.finki.develop.finkwave.repository.EventRepository; 8 import com.ukim.finki.develop.finkwave.service.UserService; 7 import com.ukim.finki.develop.finkwave.repository.ListenRepository; 8 import com.ukim.finki.develop.finkwave.repository.SongRepository; 9 9 import lombok.AllArgsConstructor; 10 import lombok.RequiredArgsConstructor;11 10 import org.springframework.http.HttpEntity; 12 11 import org.springframework.http.ResponseEntity; … … 17 16 18 17 import java.util.List; 18 import java.util.Map; 19 19 20 20 @RestController … … 25 25 private final AdminRepository adminRepository; 26 26 private final EventRepository eventRepository; 27 private final ListenRepository listenRepository; 27 28 28 29 @GetMapping("/admins") … … 31 32 } 32 33 @GetMapping("/events") 33 public HttpEntity<List<Event>> getAllEvents(){ 34 return ResponseEntity.ok(eventRepository.findAll()); 34 public HttpEntity<List<EventProjection>> getAllEvents(){ 35 return ResponseEntity.ok(eventRepository.findAllByLocation("Skopje, Macedonia")); 36 } 37 @GetMapping("/listens") 38 public HttpEntity<Map<String,?>> getAllListen(){ 39 return ResponseEntity.ok(Map.of( 40 "links", listenRepository.findAll().stream().map(s -> s.getSong().getLink()).limit(10).toList())); 35 41 } 36 42 } -
finkwave/src/main/java/com/ukim/finki/develop/finkwave/model/Event.java
rab9c16a r4063ae0 1 1 package com.ukim.finki.develop.finkwave.model; 2 2 3 import jakarta.persistence.*; 4 import lombok.Getter; 5 import lombok.Setter; 3 6 import org.hibernate.annotations.OnDelete; 4 7 import org.hibernate.annotations.OnDeleteAction; 5 8 6 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 7 8 import jakarta.persistence.Column; 9 import jakarta.persistence.Entity; 10 import jakarta.persistence.FetchType; 11 import jakarta.persistence.Id; 12 import jakarta.persistence.JoinColumn; 13 import jakarta.persistence.ManyToOne; 14 import jakarta.persistence.Table; 15 import lombok.Getter; 16 import lombok.Setter; 9 import java.time.LocalDate; 10 import java.time.LocalTime; 17 11 18 12 @Getter … … 20 14 @Entity 21 15 @Table(name = "events", schema = "project") 22 @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})23 16 public class Event { 24 17 @Id … … 26 19 private Long id; 27 20 28 @Column(name = "location", nullable = false, length = Integer.MAX_VALUE) 21 @Column(nullable = false, length = Integer.MAX_VALUE) 22 private String name; 23 24 @Column( nullable = false, length = Integer.MAX_VALUE) 29 25 private String location; 30 26 31 @Column(n ame = "venue", nullable = false, length = Integer.MAX_VALUE)27 @Column(nullable = false, length = Integer.MAX_VALUE) 32 28 private String venue; 29 30 @Column(nullable = false) 31 private LocalDate date; 32 33 @Column(nullable = false) 34 private LocalTime time; 33 35 34 36 @ManyToOne(fetch = FetchType.LAZY) -
finkwave/src/main/java/com/ukim/finki/develop/finkwave/model/Listen.java
rab9c16a r4063ae0 1 1 package com.ukim.finki.develop.finkwave.model; 2 2 3 import com.fasterxml.jackson.annotation.JsonIgnore; 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 3 5 import jakarta.persistence.*; 4 6 import lombok.Getter; 5 7 import lombok.Setter; 6 import org.hibernate.annotations.ColumnDefault;7 8 import org.hibernate.annotations.OnDelete; 8 9 import org.hibernate.annotations.OnDeleteAction; 10 11 import java.time.LocalDateTime; 9 12 10 13 @Getter … … 18 21 @MapsId("listenerId") 19 22 @ManyToOne(fetch = FetchType.LAZY, optional = false) 23 @JsonIgnore 20 24 @OnDelete(action = OnDeleteAction.CASCADE) 21 25 @JoinColumn(name = "listener_id", nullable = false) … … 24 28 @MapsId("songId") 25 29 @ManyToOne(fetch = FetchType.LAZY, optional = false) 30 @JsonIgnore 26 31 @OnDelete(action = OnDeleteAction.CASCADE) 27 32 @JoinColumn(name = "song_id", nullable = false) 28 33 private Song song; 29 34 30 @ColumnDefault("1")31 @Column(name = "listen_count", nullable = false)32 private Integer listenCount;33 34 35 } -
finkwave/src/main/java/com/ukim/finki/develop/finkwave/model/ListenId.java
rab9c16a r4063ae0 7 7 import org.hibernate.Hibernate; 8 8 9 import java.io.Serial; 9 10 import java.io.Serializable; 11 import java.time.LocalDateTime; 10 12 import java.util.Objects; 11 13 … … 14 16 @Embeddable 15 17 public class ListenId implements Serializable { 18 @Serial 16 19 private static final long serialVersionUID = 7485589950837124664L; 17 20 @Column(name = "listener_id", nullable = false) … … 21 24 private Long songId; 22 25 26 @Column(name = "timestamp", nullable = false) 27 private LocalDateTime timestamp; 28 23 29 @Override 24 30 public boolean equals(Object o) { … … 27 33 ListenId entity = (ListenId) o; 28 34 return Objects.equals(this.listenerId, entity.listenerId) && 29 Objects.equals(this.songId, entity.songId); 35 Objects.equals(this.songId, entity.songId) && 36 Objects.equals(this.timestamp, ((ListenId) o).timestamp); 30 37 } 31 38 32 39 @Override 33 40 public int hashCode() { 34 return Objects.hash(listenerId, songId );41 return Objects.hash(listenerId, songId, timestamp); 35 42 } 36 43 -
finkwave/src/main/java/com/ukim/finki/develop/finkwave/model/Song.java
rab9c16a r4063ae0 1 1 package com.ukim.finki.develop.finkwave.model; 2 2 3 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 3 4 import jakarta.persistence.*; 4 5 import lombok.Getter; -
finkwave/src/main/java/com/ukim/finki/develop/finkwave/repository/EventRepository.java
rab9c16a r4063ae0 2 2 3 3 import com.ukim.finki.develop.finkwave.model.Event; 4 import com.ukim.finki.develop.finkwave.model.EventProjection; 4 5 import org.springframework.data.jpa.repository.JpaRepository; 5 6 import org.springframework.stereotype.Repository; 6 7 8 import java.util.List; 9 7 10 @Repository 8 11 public interface EventRepository extends JpaRepository<Event, Long> { 12 List<EventProjection> findAllByLocation(String location); 9 13 }
Note:
See TracChangeset
for help on using the changeset viewer.
