def dequeue_song(self, room_number, url, name=None, master_id=None):
        # TODO - change when master is known
        original_master = ''
        master_id='test'
        if master_id is not None:
            original_master = DBUtils.get_master(room_number)

        # TODO - uncomment once the master_id is on
        # if original_master != master_id:
        #     msg = 'Not a master to dequeue'
        #     return False, None, None, msg

        history, queue = DBUtils.get_all_songs(room_number)
        if url in queue:
            song = queue[url]
            del queue[url]
            history[url] = song
        else:
            msg = 'Song does not exist in queue'
            return False, history, queue, msg

        is_successful, history, queue = DBUtils.update_song_lists(room_number, history, queue)

        if is_successful:
            return True, history, queue, None
        else:
            msg = 'Something went wrong! please try again'
            return False, history, queue, msg
    def dequeue_song(room_number):
        is_successful, dequeued_song, msg = DBUtils.dequeue_song(room_number)
        history, unsorted_queue = DBUtils.get_all_songs(room_number)
        queue = QueueModerator.sort_pending_songs(unsorted_queue)
        history = QueueModerator.decrypt_urls(history)
        decrypted_song = None

        if dequeued_song is not None:
            for x in dequeued_song.keys():
                decrypted_song = dequeued_song[x]
                decrypted_song['url'] = SecurityUtils.decrypt_url(x)

                break

        if is_successful:
            return True, history, queue, decrypted_song, None
        else:
            return False, history, queue, decrypted_song, msg.value