Skip to content

Commit

Permalink
Merge pull request #157 from arnaugarcia/feature/liked-tracks
Browse files Browse the repository at this point in the history
Feature/liked tracks
  • Loading branch information
arnaugarcia authored Apr 3, 2020
2 parents 0de0697 + 71806b9 commit 0d21f26
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 4 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "sallefy",
"version": "0.1.25-BETA",
"version": "0.1.26-BETA",
"description": "Description for Sallefy",
"private": true,
"license": "UNLICENSED",
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<groupId>com.sallefy</groupId>
<artifactId>sallefy</artifactId>
<version>0.1.25-BETA</version>
<version>0.1.26-BETA</version>
<packaging>jar</packaging>
<name>Sallefy</name>

Expand Down
21 changes: 21 additions & 0 deletions src/main/java/com/sallefy/service/dto/PlaylistDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ public class PlaylistDTO implements Serializable {

private Boolean publicAccessible;

private Boolean followed;

private Integer followers;

private UserSimplifiedDTO owner;

private Set<TrackDTO> tracks = new HashSet<>();
Expand Down Expand Up @@ -77,6 +81,22 @@ public Boolean isPublicAccessible() {
return publicAccessible;
}

public Boolean getFollowed() {
return followed;
}

public void setFollowed(Boolean followed) {
this.followed = followed;
}

public Integer getFollowers() {
return followers;
}

public void setFollowers(Integer followers) {
this.followers = followers;
}

public void setPublicAccessible(Boolean publicAccessible) {
this.publicAccessible = publicAccessible;
}
Expand Down Expand Up @@ -130,4 +150,5 @@ public String toString() {
", owner='" + getOwner() + "'" +
"}";
}

}
20 changes: 20 additions & 0 deletions src/main/java/com/sallefy/service/dto/TrackDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ public class TrackDTO implements Serializable {

private Boolean liked;

private Integer likes;

private Integer plays;

private String color;

private UserSimplifiedDTO owner;
Expand Down Expand Up @@ -99,6 +103,22 @@ public void setLiked(Boolean liked) {
this.liked = liked;
}

public Integer getLikes() {
return likes;
}

public void setLikes(Integer likes) {
this.likes = likes;
}

public Integer getPlays() {
return plays;
}

public void setPlays(Integer plays) {
this.plays = plays;
}

public String getColor() {
return color;
}
Expand Down
27 changes: 27 additions & 0 deletions src/main/java/com/sallefy/service/mapper/PlaylistMapper.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,27 @@
package com.sallefy.service.mapper;

import com.sallefy.domain.FollowPlaylist;
import com.sallefy.domain.Playlist;
import com.sallefy.security.SecurityUtils;
import com.sallefy.service.dto.PlaylistDTO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

import java.util.Optional;
import java.util.Set;

/**
* Mapper for the entity {@link Playlist} and its DTO {@link PlaylistDTO}.o
*/
@Mapper(componentModel = "spring", uses = {UserMapper.class, TrackMapper.class, })
public interface PlaylistMapper extends EntityMapper<PlaylistDTO, Playlist> {

@Mapping(source = "followers", target = "followed")
@Mapping(source = "followers", target = "followers")
@Mapping(source = "user", target = "owner")
PlaylistDTO toDto(Playlist playlist);

@Mapping(target = "followers", ignore = true)
@Mapping(target = "created", ignore = true)
@Mapping(target = "primaryColor", ignore = true)
@Mapping(target = "rating", ignore = true)
Expand All @@ -23,6 +31,25 @@ public interface PlaylistMapper extends EntityMapper<PlaylistDTO, Playlist> {
@Mapping(target = "removeTrack", ignore = true)
Playlist toEntity(PlaylistDTO playlistDTO);

default Boolean map(Set<FollowPlaylist> followPlaylists) {
final Optional<String> currentUserLogin = SecurityUtils.getCurrentUserLogin();
if (!currentUserLogin.isPresent()) {
return false;
}

return followPlaylists.stream()
.anyMatch(
likeTrack -> likeTrack
.getUser()
.getLogin()
.equals(currentUserLogin.get())
);
}

default Integer mapFollowers(Set<FollowPlaylist> followPlaylists) {
return followPlaylists.size();
}

default Playlist fromId(Long id) {
if (id == null) {
return null;
Expand Down
13 changes: 12 additions & 1 deletion src/main/java/com/sallefy/service/mapper/TrackMapper.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.sallefy.service.mapper;

import com.sallefy.domain.LikeTrack;
import com.sallefy.domain.Playback;
import com.sallefy.domain.Track;
import com.sallefy.security.SecurityUtils;
import com.sallefy.service.dto.TrackDTO;
Expand All @@ -16,6 +17,8 @@
@Mapper(componentModel = "spring", uses = {UserMapper.class, GenreMapper.class})
public interface TrackMapper extends EntityMapper<TrackDTO, Track> {

@Mapping(source = "playbacks", target = "plays")
@Mapping(source = "likeTracks", target = "likes")
@Mapping(source = "likeTracks", target = "liked")
@Mapping(source = "user", target = "owner")
TrackDTO toDto(Track track);
Expand All @@ -33,7 +36,7 @@ public interface TrackMapper extends EntityMapper<TrackDTO, Track> {
@Mapping(target = "removeGenre", ignore = true)
Track toEntity(TrackDTO trackDTO);

default Boolean map(Set<LikeTrack> likeTracks) {
default Boolean mapLike(Set<LikeTrack> likeTracks) {

final Optional<String> currentUserLogin = SecurityUtils.getCurrentUserLogin();
if (!currentUserLogin.isPresent()) {
Expand All @@ -49,6 +52,14 @@ default Boolean map(Set<LikeTrack> likeTracks) {
);
}

default Integer mapPlaybacks(Set<Playback> playbacks) {
return playbacks.size();
}

default Integer mapLikes(Set<LikeTrack> likeTrackSet) {
return likeTrackSet.size();
}

default Track fromId(Long id) {
if (id == null) {
return null;
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/config/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ jhipster:
default-include-pattern: /api/.*
title: Sallefy API
description: Through the Sallefy Web API, external applications retrieve Sallefy content such as album, playlists, tracks... To access user-related data through the Web API, an application must be authorized by the user to access that particular information.
version: 0.1.25
version: 0.1.26
terms-of-service-url:
license: MIT
license-url: https://raw.githubusercontent.com/arnaugarcia/sallefy/master/LICENSE
Expand Down

0 comments on commit 0d21f26

Please sign in to comment.