def post(self): method = self.request.get("_method") key = utils.url_to_entity_key(self.request.uri) if key: playlist = db.get(db.Key(key)) if playlist: current_user = utils.get_current_user() #Get corresponding link library_item = playlist.library_item_for_user(current_user) if method == "PUT": need_version_control = False playlist_changed = False if(self.request.get('position')): #Rights: Can always update this current_user.re_sort_playlists(library_item, int(self.request.get('position'))) if (playlist.collaborative or library_item.is_owner): #Rights: Owner or collaborators can update this if playlist.smart: utils.parse_smart_filters(playlist, self.request) playlist_changed = True if self.request.get('tracks'): playlist.tracks = self.request.get('tracks') playlist_changed = True need_version_control = playlist.collaborative if library_item.is_owner: #Rights: Only owner can update this if(self.request.get('name') and len(self.request.get('name')) > 0): playlist.name = utils.strip_html(self.request.get('name')) playlist_changed = True if(self.request.get('collaborative')): playlist.collaborative = utils.convert_javascript_bool_to_python(self.request.get('collaborative')) playlist_changed = True if playlist_changed: if need_version_control: if self.request.get('version') and not int(self.request.get('version')) < playlist.version: playlist.version += 1 playlist.put() self.response.out.write(utils.status_code_json(200)) else: self.response.out.write(library_item.serialize()) else: playlist.put() self.response.out.write(utils.status_code_json(200)) else: self.response.out.write(utils.status_code_json(200)) elif method == "DELETE": library_item.delete() current_user.re_index_playlists() if not playlist.has_user(): playlist.delete() self.response.out.write(utils.status_code_json(200))
def post(self): #Create new playlist current_user = utils.get_current_user() playlist = models.Playlist( name=self.request.get("name"), owner=current_user, smart=utils.convert_javascript_bool_to_python( self.request.get("smart")), share_hash=utils.generate_share_hash()) if playlist.smart: utils.parse_smart_filters(playlist, self.request) playlist.put() library_item = models.Library(user=current_user, playlist=playlist, is_owner=True, position=int( self.request.get("position"))) library_item.put() self.response.out.write(library_item.serialize())
def post(self): #Create new playlist current_user = utils.get_current_user() playlist = models.Playlist(name = self.request.get("name"),owner=current_user, smart = utils.convert_javascript_bool_to_python(self.request.get("smart")), share_hash = utils.generate_share_hash()) if playlist.smart: utils.parse_smart_filters(playlist, self.request) playlist.put() library_item = models.Library(user=current_user, playlist=playlist, is_owner=True, position = int(self.request.get("position"))) library_item.put() self.response.out.write(library_item.serialize())
def post(self): method = self.request.get("_method") key = utils.url_to_entity_key(self.request.uri) if key: playlist = db.get(db.Key(key)) if playlist: current_user = utils.get_current_user() #Get corresponding link library_item = playlist.library_item_for_user(current_user) if method == "PUT": need_version_control = False playlist_changed = False if (self.request.get('position') ): #Rights: Can always update this current_user.re_sort_playlists( library_item, int(self.request.get('position'))) if (playlist.collaborative or library_item.is_owner ): #Rights: Owner or collaborators can update this if playlist.smart: utils.parse_smart_filters(playlist, self.request) playlist_changed = True if self.request.get('tracks'): playlist.tracks = self.request.get('tracks') playlist_changed = True need_version_control = playlist.collaborative if library_item.is_owner: #Rights: Only owner can update this if (self.request.get('name') and len(self.request.get('name')) > 0): playlist.name = utils.strip_html( self.request.get('name')) playlist_changed = True if (self.request.get('collaborative')): playlist.collaborative = utils.convert_javascript_bool_to_python( self.request.get('collaborative')) playlist_changed = True if playlist_changed: if need_version_control: if self.request.get('version') and not int( self.request.get( 'version')) < playlist.version: playlist.version += 1 playlist.put() self.response.out.write( utils.status_code_json(200)) else: self.response.out.write( library_item.serialize()) else: playlist.put() self.response.out.write( utils.status_code_json(200)) else: self.response.out.write(utils.status_code_json(200)) elif method == "DELETE": library_item.delete() current_user.re_index_playlists() if not playlist.has_user(): playlist.delete() self.response.out.write(utils.status_code_json(200))