Esempio n. 1
0
def multiBan(request, player_id, player):
    try:
        toBan = json.loads(request.POST['to_ban'])
        toUnban = json.loads(request.POST['to_unban'])
    except ValueError:
        return HttpResponseBadRequest("Bad JSON. Couldn't even parse. \n" +
                                      "to add data: " +
                                      request.POST['to_add'] + "\n" +
                                      "to delete data: " +
                                      request.POST['to_delete'])

    nonExistentIds = getNonExistantLibIds(toBan, player)
    nonExistentIds += getNonExistantLibIds(toUnban, player)
    if len(nonExistentIds) > 0:
        toReturn = HttpJSONResponse(json.dumps(nonExistentIds), status=404)
        toReturn[MISSING_RESOURCE_HEADER] = 'song'
        return toReturn

    def setSongBanStatus(songid, banStatus):
        songToBan = LibraryEntry.objects.get(player=player,
                                             player_lib_song_id=songid)
        songToBan.is_banned = banStatus
        songToBan.save()

    map(lambda songid: setSongBanStatus(songid, True), toBan)
    map(lambda songid: setSongBanStatus(songid, False), toUnban)

    return HttpResponse()
Esempio n. 2
0
def multiBan(request, player_id, player):
  try:
    toBan = json.loads(request.POST['to_ban'])
    toUnban = json.loads(request.POST['to_unban'])
  except ValueError:
    return HttpResponseBadRequest("Bad JSON. Couldn't even parse. \n" +
      "to add data: " + request.POST['to_add'] + "\n" +
      "to delete data: " + request.POST['to_delete'])

  nonExistentIds = getNonExistantLibIds(toBan, player)
  nonExistentIds += getNonExistantLibIds(toUnban, player)
  if len(nonExistentIds) > 0:
    print nonExistentIds
    toReturn = HttpJSONResponse(json.dumps(nonExistentIds), status=404)
    toReturn[MISSING_RESOURCE_HEADER] = 'song'
    return toReturn

  def setSongBanStatus(songid, library, banStatus):
    songToChange = LibraryEntry.objects.get(lib_id=songid, library=library)
    if banStatus:
      songToChange.banSong(player)
    else:
      songToChange.unbanSong(player)

  map(lambda songid: setSongBanStatus(songid, player.DefaultLibrary, True), toBan)
  map(lambda songid: setSongBanStatus(songid, player.DefaultLibrary, False), toUnban)

  return HttpResponse()
Esempio n. 3
0
def multiBan(request, player_id, player):
  try:
    toBan = json.loads(request.POST['to_ban'])
    toUnban = json.loads(request.POST['to_unban'])
  except ValueError:
    return HttpResponseBadRequest("Bad JSON. Couldn't even parse. \n" +
      "to add data: " + request.POST['to_add'] + "\n" +
      "to delete data: " + request.POST['to_delete'])

  nonExistentIds = getNonExistantLibIds(toBan, player)
  nonExistentIds += getNonExistantLibIds(toUnban, player)
  if len(nonExistentIds) > 0:
    toReturn = HttpJSONResponse(json.dumps(nonExistentIds), status=404)
    toReturn[MISSING_RESOURCE_HEADER] = 'song'
    return toReturn

  def setSongBanStatus(songid, banStatus):
    songToBan = LibraryEntry.objects.get(player=player, player_lib_song_id=songid)
    songToBan.is_banned = banStatus
    songToBan.save()

  map(lambda songid: setSongBanStatus(songid, True), toBan)
  map(lambda songid: setSongBanStatus(songid, False), toUnban)

  return HttpResponse()
Esempio n. 4
0
def modLibrary(request, player_id, player):
  try:
    toAdd = json.loads(request.POST['to_add'])
    toDelete = json.loads(request.POST['to_delete'])
  except ValueError as f:
    return HttpResponseBadRequest("Bad JSON. Couldn't even parse. \n" +
      "to add data: " + request.POST['to_add'] + "\n" +
      "to delete data: " + request.POST['to_delete'])


  try:
    duplicates, badIds = getDuplicateDifferentIds(toAdd, player)
    if len(badIds) > 0:
      return HttpJSONResponse(json.dumps(badIds), status=409)

    nonExistentIds = getNonExistantLibIds(toDelete, player)
    if len(nonExistentIds) > 0:
      return HttpJSONResponse(json.dumps(nonExistentIds), status=404)

    addSongs(filter(lambda song: song['id'] not in duplicates, toAdd), player)
    deleteSongs(toDelete, player)
  except KeyError as e:
    return HttpResponseBadRequest('Bad JSON.\n Bad key: ' + str(e) )
  except ValueError as f:
    return HttpResponseBadRequest('Bad JSON.\n Bad value: ' + str(f) )

  return HttpResponse()
Esempio n. 5
0
def modLibrary(request, player_id, player):
    try:
        toAdd = json.loads(request.POST['to_add'])
        toDelete = json.loads(request.POST['to_delete'])
    except ValueError as f:
        return HttpResponseBadRequest("Bad JSON. Couldn't even parse. \n" +
                                      "to add data: " +
                                      request.POST['to_add'] + "\n" +
                                      "to delete data: " +
                                      request.POST['to_delete'])

    try:
        duplicates, badIds = getDuplicateDifferentIds(toAdd, player)
        if len(badIds) > 0:
            return HttpJSONResponse(json.dumps(badIds), status=409)

        nonExistentIds = getNonExistantLibIds(toDelete, player)
        if len(nonExistentIds) > 0:
            return HttpJSONResponse(json.dumps(nonExistentIds), status=404)

        addSongs(filter(lambda song: song['id'] not in duplicates, toAdd),
                 player)
        deleteSongs(toDelete, player)
    except KeyError as e:
        return HttpResponseBadRequest('Bad JSON.\n Bad key: ' + str(e))
    except ValueError as f:
        return HttpResponseBadRequest('Bad JSON.\n Bad value: ' + str(f))

    return HttpResponse()