API fuer den store
This commit is contained in:
parent
dddb18cd87
commit
886dc7eb45
|
@ -0,0 +1,3 @@
|
|||
from django.db import models
|
||||
|
||||
# Create your models here.
|
|
@ -0,0 +1,23 @@
|
|||
"""
|
||||
This file demonstrates two different styles of tests (one doctest and one
|
||||
unittest). These will both pass when you run "manage.py test".
|
||||
|
||||
Replace these with more appropriate tests for your application.
|
||||
"""
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
class SimpleTest(TestCase):
|
||||
def test_basic_addition(self):
|
||||
"""
|
||||
Tests that 1 + 1 always equals 2.
|
||||
"""
|
||||
self.failUnlessEqual(1 + 1, 2)
|
||||
|
||||
__test__ = {"doctest": """
|
||||
Another way to test that 1 + 1 is equal to 2.
|
||||
|
||||
>>> 1 + 1 == 2
|
||||
True
|
||||
"""}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
from django.conf.urls.defaults import *
|
||||
|
||||
#/api/
|
||||
urlpatterns = patterns('',
|
||||
(r'^store/$', 'api.views.showItems'),
|
||||
(r'^store/show/(\d+)/$', 'api.views.showItem'),
|
||||
(r'^store/buy/(\d+)/(|with/deposit|only/deposit)/?$', 'api.views.buyItem'),
|
||||
(r'^store/history/?$', 'api.views.history'),
|
||||
)
|
|
@ -0,0 +1,72 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpResponse
|
||||
|
||||
import datetime
|
||||
from buyable.models import Buyable, Purchase, Order
|
||||
from django.core import serializers
|
||||
|
||||
|
||||
@login_required
|
||||
def showItems(request):
|
||||
# FIXME: Implement pagination here
|
||||
items = Buyable.objects.all()
|
||||
|
||||
#return json-container
|
||||
container = serializers.serialize('json', items)
|
||||
return HttpResponse(container,'application/javascript')
|
||||
|
||||
@login_required
|
||||
def showItem(request, itemid):
|
||||
try:
|
||||
item = Buyable.objects.get(id=itemid)
|
||||
except Buyable.DoesNotExist:
|
||||
# baww, kein item mit der id :( (oder mutax trollt rum)
|
||||
return HttpResponse(status=400)
|
||||
|
||||
#return json-container
|
||||
container = serializers.serialize('json', item)
|
||||
return HttpResponse(container,'application/javascript')
|
||||
|
||||
|
||||
@login_required
|
||||
def buyItem(request, itemid, buymode=""):
|
||||
user = request.user
|
||||
try:
|
||||
item = Buyable.objects.get(id=itemid)
|
||||
except Buyable.DoesNotExist:
|
||||
# oh no! kein item mit der id :( mutax trollt rum)
|
||||
return HttpResponseRedirect("/store/buy/")
|
||||
""" tristate variable buymode:
|
||||
"" only item
|
||||
"with/deposit" item and deposit
|
||||
"only/deposit" only deposit
|
||||
"""
|
||||
order = Order()
|
||||
order.create(user)
|
||||
order.save() # for the id!
|
||||
if buymode == "" or buymode == "with/deposit":
|
||||
p = Purchase.create(order, item, isDeposit=False)
|
||||
p.order = order
|
||||
p.save()
|
||||
# TANNEK! if buymode == "with/dopsit" or buymode == "only/deposit":
|
||||
if buymode == "with/deposit" or buymode == "only/deposit":
|
||||
p = Purchase.create(order, item, isDeposit=True)
|
||||
p.order = order
|
||||
p.save()
|
||||
order.updatePrice(commit=True)
|
||||
order.save()
|
||||
|
||||
#return json-container
|
||||
#container = serializers.serialize('json', items)
|
||||
#return HttpResponse(container,'application/javascript')
|
||||
return HttpResponse(status=200)
|
||||
#return HttpResponseRedirect("/store/bought/%s/" % (order.id))
|
||||
|
||||
@login_required
|
||||
def history(request):
|
||||
hist = Order.objects.filter(user=request.user.id).order_by("-dateTime")
|
||||
#return json-container
|
||||
container = serializers.serialize('json', hist)
|
||||
return HttpResponse(container,'application/javascript')
|
||||
|
|
@ -13,6 +13,7 @@ urlpatterns = patterns('',
|
|||
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
||||
# user stuff? go to main
|
||||
(r'^$', 'main.views.startpage'),
|
||||
(r'^api/', include('api.urls')),
|
||||
(r'^user/', include('main.urls')),
|
||||
(r'^transaction/', include('transaction.urls')),
|
||||
(r'^store/', include('buyable.urls')),
|
||||
|
|
Loading…
Reference in New Issue