Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
4.9 kB
2
Indexable
from django.shortcuts import render
from .models import User,Part,Position,Account
from rest_framework.decorators import api_view
from rest_framework.response import Response
from .serializer import UserSerializer,AccountSerializer
from rest_framework import status
import json
# Create your views here.

@api_view(['POST'])
def register_user(request):
    data=request.GET
    user=User(
    avatar=data.get('avatar'),
    full_name=data.get('full_name'),
    birthday=data.get('birthday'),
    gender=data.get('gender'),
    address=data.get('address'),
    email=data.get('email'),
    phone=data.get('phone'),
    wage=data.get('wage')
    )
    username=data.get('username')
    password=data.get('password')
    id_part=data.get('id_part')
    id_position=data.get('id_position')
    
    part=Part.objects.get(id_part=id_part)
    position=Position.objects.get(id_position=id_position)
    user.set_part(part)
    user.set_position(position)
    account_new=Account(username=username,password=password,user=user)
    check=True
    listAccount=Account.objects.all()
    for account in listAccount:
        if account.username==username:
            check=False
            break
    if check:
        user.save()
        account_new.save()
        serializer = UserSerializer(user)
        return Response({"data":serializer.data,"message":"Success","code":200},status=status.HTTP_201_CREATED)
    else:
        return Response({"data":"","message":"Failded","code":400},status=status.HTTP_400_BAD_REQUEST)


@api_view(['GET'])
def user_detail(request,id_user):
    user=User.objects.get(id_user=id_user)
    if user is not None:    
        serializer = UserSerializer(user)
        return Response({"data":serializer.data,"message":"Success","code":200},status=status.HTTP_200_OK)
    else:
        serializer = UserSerializer(User())
        return Response({"data":serializer.data,"message":"Not Found","code":404},status=status.HTTP_404_NOT_FOUND)


@api_view(['GET'])
def login(request):
    data=request.GET
    username=data.get('username')
    password=data.get('password')
    listAccount=Account.objects.all()
    for account in listAccount:
        if account.username==username:
            if account.password==password:
                serializer = UserSerializer(account.user)
                return Response({"data":serializer.data,"message":"Success","code":200},status=status.HTTP_200_OK)
            else:
                serializer = UserSerializer(User())
                return Response({"data":serializer.data,"message":"Wrong","code":400},status=status.HTTP_200_OK)
    serializer = UserSerializer(User())    
    return Response({"data":serializer.data,"message":"Not exist","code":404},status=status.HTTP_200_OK)
    
    
@api_view(['PUT'])
def update_user(request,id_user):
    user=User.objects.get(id_user=id_user)
    data=request.GET
    if user:
        if data.get('avatar'):
            user.set_avatar(data.get('avatar'))
        if data.get('full_name'):
            user.set_full_name(data.get('full_name'))
        if data.get('birthday'):
            user.set_birthday(data.get('birthday'))
        if data.get('gender'):
            user.set_gender(data.get('gender'))
        if data.get('address'):
            user.set_address(data.get('address'))
        if data.get('email'):
            user.set_email(data.get('email'))
        if data.get('phone'):
            user.set_phone(data.get('phone'))
        if data.get('wage'):
            user.set_wage(data.get('wage'))
        user.save()
        serializer = UserSerializer(user)
        return Response({"data":serializer.data,"message":"Success","code":200},status=status.HTTP_200_OK)
    return Response({"data":"","message":"Failded","code":400},status=status.HTTP_400_BAD_REQUEST)


@api_view(['GET'])
def all_user(request):
    data = User.objects.all()
    if data:
        serializer = UserSerializer(data,many=True)
        return Response({"data":serializer.data,"message":"Success","code":200},status=status.HTTP_200_OK)
    return Response({"data":"","message":"Failded","code":400},status=status.HTTP_400_BAD_REQUEST)


@api_view(['PUT'])
def change_password(request,id_user):
    user=User.objects.get(id_user=id_user)
    account=Account.objects.get(user=user)
    data=request.GET
    if account:
        if data.get("password"):
            account.set_password(data.get("password"))
            account.save()
            serializer = UserSerializer(user)
            return Response({"data":serializer.data,"message":"Success","code":200},status=status.HTTP_200_OK)
    return Response({"data":"","message":"Failded","code":400},status=status.HTTP_400_BAD_REQUEST)


@api_view(['DELETE'])
def delete_user(request,id_user):
    listAccount=Account.objects.all()
    for account in listAccount:
        if account.user.id_user==id_user:
            account.delete()