Skip to content

Commit

Permalink
Merge branch 'master' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
krak3n committed May 18, 2015
2 parents 4670a44 + ff21f3d commit 9f3899d
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 48 deletions.
1 change: 1 addition & 0 deletions REQUIREMENTS
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ redis==2.10.3
# Asynchronous
celery==3.1.17
gevent==1.0.1
requests==2.6.0

# Serialization
py-kim==0.1.6
Expand Down
47 changes: 0 additions & 47 deletions fm/serializers/spotify.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
from kim.contrib.sqa import SQASerializer
from kim.fields import Field
from kim.roles import blacklist
from kim.serializers import Serializer

# First Party Libs
from fm.serializers.user import UserSerializer
Expand Down Expand Up @@ -71,49 +70,3 @@ class HistorySerializer(SQASerializer):
id = Field(t.String, read_only=True)
track = Field(t.Nested(TrackSerializer))
user = Field(t.Nested(UserSerializer))


class BaseSpotifySerializer(Serializer):

id = Field(t.String)
name = Field(t.String)
spotify_uri = Field(t.String)


class PlaylistSerializer(BaseSpotifySerializer):
""" Spotify playlist serializer
Returns following data s structure:
{
'id': '4wtLaWQcPct5tlAWTxqjMD',
'name': 'The Happy Hipster',
'tracks': {
'playlist': url to user's spotify tracks,
'total': 186
}
}
"""

class TrackSerializer(Serializer):
""" Nested Track serializer
Exposing url for tracks in playlist and total number of tracks in it
"""
total = Field(t.Integer)
playlist = Field(t.String)

tracks = Field(t.Nested(TrackSerializer()))


class TrackSerializer(BaseSpotifySerializer):
""" Spotify track serializer
"""

class Album(BaseSpotifySerializer):
pass

class Artists(BaseSpotifySerializer):
pass

duration = Field(t.Integer) # ms
album = Field(t.Nested(Album()))
artists = Field(t.Collection(t.Nested(Artists())))
52 changes: 52 additions & 0 deletions fm/thirdparty/spotify.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,61 @@
#!/usr/bin/env python
# encoding: utf-8

# Standard Libs
import httplib

# Third Pary Libs
import requests
from flask import url_for
from kim import types as t
from kim.fields import Field
from kim.serializers import Serializer


class BaseSpotifySerializer(Serializer):

id = Field(t.String)
name = Field(t.String)
spotify_uri = Field(t.String)


class PlaylistSerializer(BaseSpotifySerializer):
""" Spotify playlist serializer
Returns following data s structure:
{
'id': '4wtLaWQcPct5tlAWTxqjMD',
'name': 'The Happy Hipster',
'tracks': {
'playlist': url to user's spotify tracks,
'total': 186
}
}
"""

class TrackSerializer(Serializer):
""" Nested Track serializer
Exposing url for tracks in playlist and total number of tracks in it
"""
total = Field(t.Integer)
playlist = Field(t.String)

tracks = Field(t.Nested(TrackSerializer()))


class TrackSerializer(BaseSpotifySerializer):
""" Spotify track serializer
"""

class Album(BaseSpotifySerializer):
pass

class Artists(BaseSpotifySerializer):
pass

duration = Field(t.Integer) # ms
album = Field(t.Nested(Album()))
artists = Field(t.Collection(t.Nested(Artists())))


class SpotifyApi(object):
Expand Down
2 changes: 1 addition & 1 deletion fm/views/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from fm import http
from fm.logic.oauth import update_spotify_credentials
from fm.models.user import User
from fm.serializers.spotify import PlaylistSerializer, TrackSerializer
from fm.thirdparty.spotify import PlaylistSerializer, TrackSerializer
from fm.serializers.user import UserSerializer
from fm.session import authenticated, current_user
from fm.thirdparty.spotify import SpotifyApi
Expand Down

0 comments on commit 9f3899d

Please sign in to comment.