Skip to content

Commit

Permalink
Merge pull request #38 from calluswhatyouwant/v0.2.x
Browse files Browse the repository at this point in the history
Upgrade to v0.2.1
  • Loading branch information
JoseRenan committed Dec 25, 2018
2 parents a89976b + 74620fe commit 3243ecf
Show file tree
Hide file tree
Showing 13 changed files with 97 additions and 35 deletions.
4 changes: 1 addition & 3 deletions src/lib/albums.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import { getAxiosSpotifyInstance } from './driver';
import Album from './models/album/album';
import TrackSimplified from './models/track/track-simplified';
import Page from './models/paging/page';
import { Album, TrackSimplified, Page } from './models';

export const getAlbum = async (id: string, market?: string): Promise<Album> => {
const params = { params: { market } };
Expand Down
5 changes: 1 addition & 4 deletions src/lib/artists.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import { getAxiosSpotifyInstance } from './driver';
import Artist from './models/artist/artist';
import Track from './models/track/track';
import Page from './models/paging/page';
import AlbumSimplified from './models/album/album-simplified';
import { Artist, Track, Page, AlbumSimplified } from './models';

export const getArtist = async (id: string): Promise<Artist> => {
const response = await getAxiosSpotifyInstance().get(`/artists/${id}`);
Expand Down
2 changes: 1 addition & 1 deletion src/lib/follow.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getAxiosSpotifyInstance } from './driver';
import Artist from './models/artist/artist';
import { Artist } from './models';

export const getFollowedArtists = async (
limit: number = 20,
Expand Down
1 change: 1 addition & 0 deletions src/lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ export * from './playlists';
export * from './player';
export * from './search';
export * from './tracks';
export * from './models';
29 changes: 29 additions & 0 deletions src/lib/models/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
export { default as Album } from './album/album';
export { default as AlbumSimplified } from './album/album-simplified';
export { default as Artist } from './artist/artist';
export { default as ArtistSimplified } from './artist/artist-simplified';
export { default as Category } from './browse/category';
export { default as RecommendationSeed } from './browse/recommendation-seed';
export { default as Recommendations } from './browse/recommendations';
export { default as Copyright } from './common/copyright';
export { default as Error } from './common/error';
export { default as Followers } from './common/followers';
export { default as Image } from './common/image';
export { default as SavedAlbum } from './library/saved-album';
export { default as SavedTrack } from './library/saved-track';
export { default as TrackLink } from './other/track-link';
export { default as CursorBasedPage } from './paging/cursor-based-page';
export { default as Page } from './paging/page';
export { default as Context } from './player/context';
export { default as CurrentlyPlaying } from './player/currently-playing';
export { default as PlayHistory } from './player/play-history';
export { default as Playlist } from './playlist/playlist';
export { default as PlaylistSimplified } from './playlist/playlist-simplified';
export { default as PlaylistTrack } from './playlist/playlist-track';
export { default as SearchResults } from './search/search-results';
export { default as AudioAnalysis } from './track/audio-analysis';
export { default as AudioFeatures } from './track/audio-features';
export { default as Track } from './track/track';
export { default as TrackSimplified } from './track/track-simplified';
export { default as PrivateUser } from './user/user-private';
export { default as PublicUser } from './user/user-public';
6 changes: 3 additions & 3 deletions src/lib/models/player/play-history.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ class PlayHistory {

playedAt: string; // Timestamp

context: Context;
context: Context | null;

constructor(json: any) {
this.track = new Track(json.track);
this.playedAt = json.added_at;
this.context = new Context(json.context);
this.playedAt = json.played_at;
this.context = json.context ? new Context(json.context) : null;
}
}

Expand Down
37 changes: 37 additions & 0 deletions src/lib/models/search/search-results.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import Page from '../paging/page';
import AlbumSimplified from '../album/album-simplified';
import Artist from '../artist/artist';
import PlaylistSimplified from '../playlist/playlist-simplified';
import Track from '../track/track';

class SearchResults {
albums?: Page<AlbumSimplified>;
artists?: Page<Artist>;
playlists?: Page<PlaylistSimplified>;
tracks?: Page<Track>;

constructor(json: any) {
if (json.albums) {
this.albums = new Page<AlbumSimplified>(
json,
AlbumSimplified,
'albums'
);
}
if (json.artists) {
this.artists = new Page<Artist>(json, Artist, 'artists');
}
if (json.playlists) {
this.playlists = new Page<PlaylistSimplified>(
json,
PlaylistSimplified,
'playlists'
);
}
if (json.tracks) {
this.tracks = new Page<Track>(json, Track, 'tracks');
}
}
}

export default SearchResults;
4 changes: 2 additions & 2 deletions src/lib/models/user/user-private.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Followers from '../common/followers';
import Image from '../common/image';

class PublicUser {
class PrivateUser {
birthdate: string;

country: string;
Expand Down Expand Up @@ -42,4 +42,4 @@ class PublicUser {
}
}

export default PublicUser;
export default PrivateUser;
5 changes: 1 addition & 4 deletions src/lib/personalization.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import { getAxiosSpotifyInstance } from './driver';

import Page from './models/paging/page';
import Artist from './models/artist/artist';
import Track from './models/track/track';
import { Artist, Page, Track } from './models';

export const getCurrentUserTopArtists = async (params?: {
limit?: number;
Expand Down
5 changes: 1 addition & 4 deletions src/lib/player.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import { getAxiosSpotifyInstance } from './driver';

import PlayHistory from './models/player/play-history';
import CursorBasedPage from './models/paging/cursor-based-page';
import CurrentlyPlaying from './models/player/currently-playing';
import { PlayHistory, CursorBasedPage, CurrentlyPlaying } from './models';

export const getCurrentUserRecentlyPlayedTracks = async (params?: {
limit?: number;
Expand Down
5 changes: 1 addition & 4 deletions src/lib/playlists.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import { getAxiosSpotifyInstance } from './driver';
import Playlist from './models/playlist/playlist';
import PlaylistTrack from './models/playlist/playlist-track';
import Page from './models/paging/page';
import PlaylistSimplified from './models/playlist/playlist-simplified';
import { Playlist, PlaylistTrack, PlaylistSimplified, Page } from './models';

export const getPlaylist = async (id: string) => {
const response = await getAxiosSpotifyInstance().get(`/playlists/${id}`);
Expand Down
24 changes: 18 additions & 6 deletions src/lib/search.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { getAxiosSpotifyInstance } from './driver';

import AlbumSimplified from './models/album/album-simplified';
import Artist from './models/artist/artist';
import Page from './models/paging/page';
import PlaylistSimplified from './models/playlist/playlist-simplified';
import Track from './models/track/track';
import {
AlbumSimplified,
Artist,
Page,
PlaylistSimplified,
Track,
SearchResults,
} from './models';

const genericSearch = async (params: {
q: string;
Expand All @@ -16,6 +18,16 @@ const genericSearch = async (params: {
return getAxiosSpotifyInstance().get(`/search`, { params });
};

export const search = async (
query: string,
type: string,
options?: { market?: string; limit?: number; offset?: number }
): Promise<SearchResults> => {
const params = { type, q: query, ...options };
const searchResults = await genericSearch(params);
return new SearchResults(searchResults.data);
};

export const searchAlbums = async (
query: string,
options?: { market?: string; limit?: number; offset?: number }
Expand Down
5 changes: 1 addition & 4 deletions src/lib/tracks.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import { getAxiosSpotifyInstance } from './driver';

import Track from './models/track/track';
import AudioAnalysis from './models/track/audio-analysis';
import AudioFeatures from './models/track/audio-features';
import { Track, AudioAnalysis, AudioFeatures } from './models';

export const getSeveralTracks = async (
ids: string[],
Expand Down

0 comments on commit 3243ecf

Please sign in to comment.