Changeset 8675f75


Ignore:
Timestamp:
02/07/26 20:11:09 (5 months ago)
Author:
Filip Gavrilovski <filipgavrilovski28@…>
Branches:
main
Children:
8ccb07e
Parents:
9c1dcc7
Message:

add links to song api responses

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/controller/SongController.java

    r9c1dcc7 r8675f75  
    2828
    2929    @GetMapping("/search")
    30     public HttpEntity<List<MusicalEntityDto>> searchSongs(
     30    public HttpEntity<List<SongDto>> searchSongs(
    3131            @RequestParam(name = "q") String searchTerm){
    3232        return ResponseEntity.ok(songService.searchSongs(searchTerm));
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/controller/TestController.java

    r9c1dcc7 r8675f75  
    44import com.ukim.finki.develop.finkwave.model.User;
    55import com.ukim.finki.develop.finkwave.model.dto.MusicalEntityDto;
     6import com.ukim.finki.develop.finkwave.model.dto.SongDto;
    67import com.ukim.finki.develop.finkwave.repository.SongRepository;
    78import com.ukim.finki.develop.finkwave.repository.UserRepository;
     
    2223
    2324    @GetMapping("/search/{searchTerm}")
    24     public HttpEntity<List<MusicalEntityDto>> searchSongsTest(@PathVariable String searchTerm){
     25    public HttpEntity<List<SongDto>> searchSongsTest(@PathVariable String searchTerm){
    2526        return ResponseEntity.ok(songRepository.searchSongs(null, searchTerm));
    2627    }
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/model/dto/BasicSongDto.java

    r9c1dcc7 r8675f75  
    77    String title,
    88    String artist,
     9    String link,
    910    @Nullable String cover
    1011){}
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/repository/SongRepository.java

    r9c1dcc7 r8675f75  
    6969
    7070    @Query("""
    71         SELECT NEW com.ukim.finki.develop.finkwave.model.dto.MusicalEntityDto(
     71        SELECT NEW com.ukim.finki.develop.finkwave.model.dto.SongDto(
    7272            s.id,
    7373            s.musicalEntities.title,
     
    7676            s.musicalEntities.releasedBy.nonAdminUser.user.fullName,
    7777            s.musicalEntities.cover,
    78             (EXISTS (SELECT 1 FROM Like l WHERE l.musicalEntity.id = s.id AND l.listener.id = :currentUserId))
     78            (EXISTS (SELECT 1 FROM Like l WHERE l.musicalEntity.id = s.id AND l.listener.id = :currentUserId)),
     79            s.link
    7980        )
    8081        FROM Song s
    8182        WHERE s.musicalEntities.title ILIKE '%' || :searchTerm || '%'
    8283    """)
    83     List<MusicalEntityDto> searchSongs(@Param("currentUserId")Long currentUserId, @Param("searchTerm") String searchTerm);
     84    List<SongDto> searchSongs(@Param("currentUserId")Long currentUserId, @Param("searchTerm") String searchTerm);
    8485
    8586
     
    8990            me.title,
    9091            u.full_name,
     92            s.link,
    9193            me.cover
    9294        FROM LISTENS l
    9395        JOIN MUSICAL_ENTITIES me on me.id = l.song_id
    94         JOIN USERS u on u.user_id = l.listener_id
    95         WHERE u.user_id = :userId
     96        JOIN USERS u on u.user_id = me.released_by
     97        JOIN SONGS s on s.id = me.id
     98        WHERE l.listener_id = :userId
    9699        ORDER BY l.song_id, l.timestamp DESC
    97100        LIMIT 5
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/service/SongService.java

    r9c1dcc7 r8675f75  
    2626    }
    2727
    28     public List<MusicalEntityDto> searchSongs(String searchTerm){
     28    public List<SongDto> searchSongs(String searchTerm){
    2929        Long userId = authService.getCurrentUserID();
    3030        return songRepository.searchSongs(userId, searchTerm);
  • frontend/src/pages/SongDetail.tsx

    r9c1dcc7 r8675f75  
    452452                                                                                        </div>
    453453                                                                                </div>
    454                                                                                 <span className="text-sm text-gray-500 bg-white/5 px-2.5 py-0.5 rounded-full">
    455                                                                                         {review.grade}/5
    456                                                                                 </span>
    457454                                                                        </div>
    458455                                                                        <p className="text-gray-300 text-sm leading-relaxed mt-3 pl-12">
Note: See TracChangeset for help on using the changeset viewer.