Skip to content
Snippets Groups Projects
Commit bd6dd695 authored by Christian Dresen's avatar Christian Dresen
Browse files

no message

parent c648281a
No related branches found
No related tags found
No related merge requests found
......@@ -4,22 +4,35 @@ from django.db import models
from rest_framework import routers, serializers, viewsets
from warpauth.models import LdapUser
class ProductCategory(models.Model):
name = models.CharField(max_length=100, unique=True)
def __str__(self):
return self.name
class Product(models.Model):
user = models.CharField(max_length=100, null=True)
title = models.CharField(max_length=100)
message = models.TextField()
created = models.DateTimeField(auto_now_add=True)
name = models.CharField(max_length=100, null=True)
price = models.FloatField()
category = models.ForeignKey(ProductCategory, on_delete=models.CASCADE, null=True)
count = models.IntegerField()
def __str__(self):
return self.title
return self.name
class ProductSerializer(serializers.ModelSerializer):
category = serializers.StringRelatedField()
class Meta:
model = Product
fields = ['id', 'name', 'price', 'category', 'count']
class UserCredit(models.Model):
uid = models.CharField(max_length=100,unique=True)
card_id = models.CharField(max_length=10, unique=True)
credit = models.FloatField()
def __str__(self):
return self.uid
class UserCreditSerializer(serializers.HyperlinkedModelSerializer):
class UserCreditSerializer(serializers.ModelSerializer):
class Meta:
model = UserCredit
fields = ['uid', 'credit']
fields = ['uid', 'card_id', 'credit']
......@@ -4,4 +4,8 @@ from warppay import views
urlpatterns = [
#url(r'^api/', include(router.urls)),
url(r'^api/users/$', views.user_list),
url(r'^api/users/(?P<user_id>\w+)/$', views.user_list),
url(r'^api/products/$', views.product_list),
url(r'^api/gen_token/$', views.gen_token),
]
from django.db import IntegrityError
from warpauth.models import LdapUser
from warppay.models import UserCredit, UserCreditSerializer
from warppay.models import UserCredit, UserCreditSerializer, Product, ProductSerializer
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import authentication_classes, permission_classes
from rest_framework.authtoken.models import Token
from django.contrib.auth.models import User
from rest_framework import status
# from rest_framework.authtoken.models import Token
# token = Token.objects.create(user=request.user)
# logging.getLogger('main').info(token.key)
@api_view(['GET', 'POST', 'PUT'])
@authentication_classes((TokenAuthentication,))
@permission_classes((IsAuthenticated,))
def user_list(request):
@api_view(['GET', 'PUT'])
#@authentication_classes((TokenAuthentication,))
#@permission_classes((IsAuthenticated,))
def product_list(request):
if request.method == 'GET':
sync_users()
users = UserCredit.objects.all()
serializer = UserCreditSerializer(users, many=True)
products = Product.objects.all()
serializer = ProductSerializer(products,context={'request': request}, many=True)
return Response(serializer.data)
elif request.method == 'POST':
elif request.method == 'PUT':
return Response()
return Response()
@api_view(['GET'])
def gen_token(request):
if request.method == 'GET':
token = Token.objects.create(user=User.objects.get(username='api'))
return Response(token)
return Response()
@api_view(['GET', 'PUT', 'POST'])
#@authentication_classes((TokenAuthentication,))
#@permission_classes((IsAuthenticated,))
def user_list(request, user_id = 0):
if request.method == 'GET':
sync_users()
if not user_id:
users = UserCredit.objects.all()
serializer = UserCreditSerializer(users, many=True)
else:
user = UserCredit.objects.get(uid=user_id)
serializer = UserCreditSerializer(user)
return Response(serializer.data)
elif request.method == 'PUT':
if not user_id:
return Response(status=status.HTTP_406_NOT_ACCEPTABLE)
sync_users()
try:
UserCredit.objects.get(uid=request.data['uid'])
user = UserCredit.objects.get(uid=user_id)
if "credit" in request.data:
user.credit = request.data['credit']
if "card_id" in request.data:
user.card_id = request.data['card_id']
user.save();
return Response(UserCreditSerializer(user).data)
except UserCredit.DoesNotExist:
u = UserCredit(uid=request.data['uid'], credit=0.0)
u.save()
return Response(status=status.HTTP_404_NOT_FOUND)
return Response()
elif request.method == 'POST':
card_id=""
if not 'uid' in request.data:
return Response(status=status.HTTP_406_NOT_ACCEPTABLE)
if 'card_id' in request.data:
card_id = request.data['card_id']
u = UserCredit(uid=request.data['uid'], card_id=card_id, credit=0.0)
try:
u.save()
state=status.HTTP_201_CREATED
except IntegrityError as e:
u = UserCredit.objects.get(uid=request.data['uid'])
state=status.HTTP_409_CONFLICT
serializer = UserCreditSerializer(u)
return Response(serializer.data, status=state)
return Response()
def sync_users():
for user in LdapUser.objects.all():
try:
u = UserCredit(uid=user, credit=0.0)
u = UserCredit(uid=user.uid, card_id=user.card_id, credit=0.0)
u.save()
except IntegrityError:
pass
except:
pass
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment