use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class LibraryBrowserServiceTest method findsTrack.
@Test
public void findsTrack() throws Exception {
scannerService.add(set(aretha));
Artist artist = new Artist("Aretha Franklin");
int artistId = musicDao.getArtistId(artist);
List<Album> albums = browserService.getAlbums(artistId, true);
assertAlbums(albums, artist, UNKNOWN_ALBUM);
List<Track> tracks = browserService.getTracks(albums.get(0).getTrackIds());
assertTracks(tracks, Arrays.asList(new Track("Aretha Franklin", "Bridge Over Troubled Water")));
}
use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class JdbcNameSearchDao method getTracks.
@Override
public NameSearchResult<Track> getTracks(String userQuery, int offset, int limit) {
String sql = "select mart.id, mart.artist_name_capitalization," + " malb.id, malb.album_name_capitalization," + " lt.id, mt.track_name_capitalization from library.track lt" + " inner join music.track mt on lt.track_id = mt.id" + " inner join music.album malb on lt.album_id = malb.id" + " inner join music.artist mart on mt.artist_id = mart.id" + " where lt.track_name_search like ?" + " order by mt.track_name" + " offset ? limit ?";
List<Track> albums = jdbcTemplate.query(sql, new Object[] { getNameQuery(userQuery), offset, limit }, new RowMapper<Track>() {
@Override
public Track mapRow(ResultSet rs, int rowNum) throws SQLException {
MetaData metaData = new MetaData();
metaData.setArtistId(rs.getInt(1));
metaData.setArtist(rs.getString(2));
metaData.setAlbumId(rs.getInt(3));
metaData.setAlbum(rs.getString(4));
return new Track(rs.getInt(5), rs.getString(6), metaData);
}
});
return new NameSearchResult<>(albums, offset);
}
use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class JdbcTrackRelationDao method getTrackRelations.
@Override
public List<TrackRelation> getTrackRelations(Track sourceTrack) {
final int sourceTrackId = jdbcTemplate.queryForInt("select * from music.get_track_id(?,?)", sourceTrack.getArtist().getName(), sourceTrack.getName());
String sql = "select artist_name_capitalization, track_name_capitalization, weight" + " from music.trackrelation" + " inner join music.track on music.trackrelation.target_id = music.track.id" + " inner join music.artist on music.track.artist_id = music.artist.id" + " where music.trackrelation.source_id = ?";
List<TrackRelation> trackRelations = jdbcTemplate.query(sql, new Object[] { sourceTrackId }, new RowMapper<TrackRelation>() {
@Override
public TrackRelation mapRow(ResultSet rs, int rowNum) throws SQLException {
String artistName = rs.getString(1);
String trackName = rs.getString(2);
float weight = rs.getFloat(3);
return new TrackRelation(new Track(artistName, trackName), weight);
}
});
return trackRelations;
}
use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class JdbcUserLovedTracksDao method batchInsert.
private void batchInsert(String lastFmUsername, List<Track> lovedTracks) {
String sql = "insert into music.lovedtrack_import" + " (lastfm_user, artist_name, track_name) values (?,?,?)";
BatchSqlUpdate batchUpdate = new BatchSqlUpdate(jdbcTemplate.getDataSource(), sql);
batchUpdate.setBatchSize(1000);
batchUpdate.declareParameter(new SqlParameter("lastfm_user", Types.VARCHAR));
batchUpdate.declareParameter(new SqlParameter("artist_name", Types.VARCHAR));
batchUpdate.declareParameter(new SqlParameter("track_name", Types.VARCHAR));
for (Track track : lovedTracks) {
batchUpdate.update(new Object[] { lastFmUsername, track.getArtist().getName(), track.getName() });
}
batchUpdate.flush();
}
use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class TrackRowMapper method mapRow.
@Override
public Track mapRow(ResultSet rs, int rowNum) throws SQLException {
Track track = new Track();
track.setId(rs.getInt(1));
track.setName(rs.getString(2));
return track;
}
Aggregations