You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
k4ever/k4ever/api2/handlers.py

73 lines
1.7 KiB

from piston.handler import BaseHandler
from piston.utils import rc
from k4ever.buyable.models import *
from k4ever.transaction.models import *
class BuyableItemHandler(BaseHandler):
allowed_methods = ('GET', 'POST')
#fields = ('id', 'description')
model = Buyable
exclude = ('_state',)
def read(self, request, itemId=None):
if itemId == None:
if request.GET.has_key('type'):
obj = Buyable.objects.filter(buyableType__name=request.GET['type'])
else:
obj = Buyable.objects.all()
return obj
try:
return Buyable.objects.get(id=itemId)
except Buyable.DoesNotExist:
error = rc.NOT_FOUND
error.write("This buyable does not exist in our database")
return error
def getInt(d, key, default):
try:
return int(d.get(key, default))
except ValueError:
return default
def create(self, request, itemId=None):
if not itemId:
return rc.BAD_REQUEST
obj = None
try:
obj = Buyables.objects.get(id=itemId)
except Buyable.DoesNotExist:
return rc.NOT_FOUND
# parse post data
data = request.POST
deposit = self.getInt(data, 'deposit', 0)
amount = self.getInt(data, 'amount', 1)
return rc.ALL_OK
class BuyableTypeHandler(BaseHandler):
allowed_methods = ('GET',)
model = BuyableType
class TransactionTransactHandler(BaseHandler):
allowed_methods = ('GET', 'POST')
model = Transaction
class TransactionTypeHandler(BaseHandler):
allowed_methods = ('GET',)
model = TransactionType
class AuthBlobHandler(BaseHandler):
# allowed_methods = ('GET', 'POST')
# model =
pass
class ConfigHandler(BaseHandler):
allowed_methods = ('GET',)
def read(self, request):
return {
'version': '0.1',
'mediaurl': 'http://devcat.someserver.de:13805/media',
}