|
|
|
@ -1,3 +1,4 @@
|
|
|
|
|
from easy_thumbnails.files import get_thumbnailer
|
|
|
|
|
from piston.handler import BaseHandler
|
|
|
|
|
from piston.utils import rc
|
|
|
|
|
from k4ever.buyable.models import *
|
|
|
|
@ -13,6 +14,9 @@ from helper import *
|
|
|
|
|
from django.db.models import Q
|
|
|
|
|
import datetime
|
|
|
|
|
|
|
|
|
|
# Available image sizes for thumbnails
|
|
|
|
|
THUMB_SIZES = [(48,48), (64,64), (100,100), (150,150), (220, 220), (330, 330), (470, 470), (680, 680)]
|
|
|
|
|
|
|
|
|
|
class BuyableItemHandler(BaseHandler):
|
|
|
|
|
"""Handler responsible for getting and buying items."""
|
|
|
|
|
|
|
|
|
@ -172,6 +176,7 @@ class BuyableItemHandler(BaseHandler):
|
|
|
|
|
|
|
|
|
|
return rc.CREATED
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BuyableTypeHandler(BaseHandler):
|
|
|
|
|
"""Handler for listing all :class:`BuyableType <buyable.models.BuyableType>`.
|
|
|
|
|
|
|
|
|
@ -198,7 +203,44 @@ class HistoryHandler(BaseHandler):
|
|
|
|
|
if num > 0:
|
|
|
|
|
return qset[:num]
|
|
|
|
|
return qset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ImgSizesHandler(BaseHandler):
|
|
|
|
|
""" Handler for listing all available tumbnailsizes """
|
|
|
|
|
allowed_methods = ('GET',)
|
|
|
|
|
|
|
|
|
|
def read(self, request):
|
|
|
|
|
return THUMB_SIZES
|
|
|
|
|
|
|
|
|
|
class ImgThumbHandler(BaseHandler):
|
|
|
|
|
""" Handler providing access to thumbnails for images of buyables """
|
|
|
|
|
allowed_methods = ('GET',)
|
|
|
|
|
|
|
|
|
|
def read(self, request, itemId, xSize, ySize):
|
|
|
|
|
thumbSize = None
|
|
|
|
|
try:
|
|
|
|
|
thumbSize = (int(xSize), int(ySize))
|
|
|
|
|
except ValueError:
|
|
|
|
|
ret = rc.BAD_REQUEST
|
|
|
|
|
ret.write("\nSomething is seriously broken, django urls SHOULD have parsed out the non-number thingies\n")
|
|
|
|
|
return ret
|
|
|
|
|
|
|
|
|
|
if thumbSize not in THUMB_SIZES:
|
|
|
|
|
ret = rc.BAD_REQUEST
|
|
|
|
|
ret.write("\nThe requested thumbnailsize is not available\n")
|
|
|
|
|
return ret
|
|
|
|
|
|
|
|
|
|
item = None
|
|
|
|
|
try:
|
|
|
|
|
item = Buyable.objects.get(id=itemId)
|
|
|
|
|
except Buyable.DoesNotExist:
|
|
|
|
|
ret = rc.NOT_FOUND
|
|
|
|
|
ret.write("The item with the id '%s' could not be found\n" % (itemId,))
|
|
|
|
|
return ret
|
|
|
|
|
|
|
|
|
|
thumbnail_options = dict(size=thumbSize)
|
|
|
|
|
thumb = get_thumbnailer(item.image).get_thumbnail(thumbnail_options)
|
|
|
|
|
return thumb._get_url()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TransactionTransactHandler(BaseHandler):
|
|
|
|
|
"""Handler for transaction.
|
|
|
|
|