def get(self, request, artist_id, song_id): ''' Get list of tablatures by artist and song ids. Returns 200. ''' #Get in an array the models of all the tablatures tablaturemodels = database.get_tablatures(artist_id, song_id) if tablaturemodels == None: return Response(status=status.HTTP_404_NOT_FOUND) #Serialize each one of the tablatures. An array of tablatures looks like: #[{'song':'song_id, 'link':{'rel':'self','href'=:'http://tab_archive/artists/artist_id/song_id'}}, #{'song':'song_id, 'link':{'rel':'self','href'=:'http://tab_archive/artists/artist_id/song_id'}}] song = {} song["artist_id"] = artist_id song["song_id"] = song_id tablatures = [] for tablaturemodel in tablaturemodels: _tablatureid = tablaturemodel.tablature_id _rating = tablaturemodel.rating _tablatureurl = "http://localhost:8000/tab_archive/tablatures/"+str(_tablatureid) _tablatureurl = reverse("tablature", (_tablatureid,), request=request) tablature = {} tablature['tablature_id'] = _tablatureid tablature['rating'] = _rating tablature['link'] = {'rel':'self', 'href':_tablatureurl} tablatures.append(tablature) song["tablatures"] = tablatures response = Response(song, status=status.HTTP_200_OK) return response
def get (self, request): ''' Get list of tablatures. Returns 200. ''' #Get in an array the models of all the tablatures tablaturemodels = database.get_tablatures('', '') if tablaturemodels == None: error = ErrorModel('Tablatures were not found.').serialize() return Response(error, status=status.HTTP_404_NOT_FOUND) #Serialize each one of the tablatures. An array of tablatures looks like: #[{'title':'message_title, 'link':{'rel':'self','href'=:'http://tab_archive/tablatures/tablature_id'}}, #{'title':'message_title, 'link':{'rel':'self','href'=:'http://tab_archive/tablatures/tablature_id'}}] songs = [] for tablaturemodel in tablaturemodels: song = {"artist":{}, "song":{}, "tablature":{}} _artisturl = reverse("artist", (tablaturemodel.artist_id,), request=request) _songurl = reverse("song", (tablaturemodel.artist_id, tablaturemodel.song_id,), request=request) song["artist"]["artist_id"] = tablaturemodel.artist_id song["artist"]["link"] = {'rel':'self', 'href':_artisturl} song["song"]["song_id"] = tablaturemodel.song_id song["song"]["link"] = {'rel':'self', 'href':_songurl} _tablatureid = tablaturemodel.tablature_id _tablatureurl = "http://localhost:8000/tab_archive/tablatures/"+str(_tablatureid) _tablatureurl = reverse("tablature", (_tablatureid,), request=request) tablature = {} tablature['tablature_id'] = _tablatureid tablature['rating'] = tablaturemodel.rating tablature['rating_count'] = tablaturemodel.rating_count tablature['link'] = {'rel':'self', 'href':_tablatureurl} tablature['user'] = {'user_nickname' : tablaturemodel.user_nickname} _userurl = reverse("user", (tablaturemodel.user_nickname,), request=request) tablature['user']['link'] = {'rel':'self', 'href':_userurl} song["tablature"] = tablature songs.append(song) return Response(songs, status=status.HTTP_200_OK)