Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified Backend/momment/accounts/__pycache__/views.cpython-39.pyc
Binary file not shown.
11 changes: 10 additions & 1 deletion Backend/momment/accounts/serializers.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
from rest_framework.serializers import ModelSerializer, ReadOnlyField
from .models import Account
from .models import User
from rest_framework import serializers

class UserSerializer(serializers.ModelSerializer):

class Meta:
model = User
# fields = ('name', 'digit', 'birth', 'address')
# read_only_fields = ('email', 'password')
exclude = ('password',)
29 changes: 12 additions & 17 deletions Backend/momment/accounts/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from rest_framework.permissions import IsAuthenticated
from django.contrib import auth
from rest_framework.decorators import api_view

from .serializers import *


# 카카오 로그인
Expand All @@ -31,13 +31,13 @@ def signup(request):
data = json.loads(request.body)

email = data['email']
name = data['name']
digit = data['digit']
birth = data['birth']
address = data['address']

if request.method == 'POST':

name = data['name']
digit = data['digit']
birth = data['birth']
address = data['address']

password = data['password']

if User.objects.filter(email=email).exists():
Expand All @@ -56,16 +56,13 @@ def signup(request):
return JsonResponse({'message' : 'SUCCESS', 'token' : token.key}, status=201)

elif request.method == 'PUT':

user = User.objects.get(email=email)
user.name = name
user.digit = digit
user.birth = birth
user.address = address
user.save()

return JsonResponse({'message' : 'SUCCESS'}, status=201)
serializer = UserSerializer(user, data=data)
if serializer.is_valid():
serializer.save()

return Response(serializer.data)

except KeyError:
return JsonResponse({'message' : 'KEY_ERROR'}, status=400)
Expand All @@ -74,11 +71,9 @@ def signup(request):
def login(request):
try:
data = json.loads(request.body)

email = data['email']
password = data['password']

user = User.objects.filter(email=email)
user = User.objects.get(email=email)

if not check_password(password, user.get().password):
return JsonResponse({'message' : 'WRONG_PASSWORD'})
Expand Down
3 changes: 0 additions & 3 deletions Backend/momment/cakes/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,6 @@ class CakeCandle(models.Model):
price = models.IntegerField()
cake = models.ForeignKey(Cake, on_delete=models.CASCADE, related_name='candle')




# 상품 상세 페이지용
class Location(models.Model):
locate = models.CharField(max_length=24, primary_key=True)
Expand Down
10 changes: 6 additions & 4 deletions Backend/momment/cakes/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ class CakeOnlySerializer(serializers.ModelSerializer):

class Meta:
model = Cake
fields = ('name', 'price', 'id')
fields = ('name', 'price',)

# 메인 페이지에 케이크 보내줄 때 스토어 정보는 어떻게 보낼 것인가?
class StoreCakeSerializer(serializers.ModelSerializer):
Expand All @@ -125,8 +125,10 @@ class Meta:

class CakeSearchSerializer(serializers.ModelSerializer):

store_name = serializers.CharField(source='store.store_name')
store_name = serializers.CharField(source='cake.store.store_name')
cake_name = serializers.CharField(source='cake.name')
cake_price = serializers.CharField(source='cake.price')

class Meta:
model = Cake
fields = ['name', 'price', 'store_name']
model = CakeInfo
fields = ['cake_name', 'cake_price', 'store_name']
3 changes: 2 additions & 1 deletion Backend/momment/cakes/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
path('detail', views.detail),
path('main/<int:page>', views.main),
path('order', views.order),
path('search/<int:page>', views.search)
path('search/<int:page>', views.search),
path('filter/<int:page>', views.filter)
]
48 changes: 36 additions & 12 deletions Backend/momment/cakes/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from rest_framework.response import Response
from rest_framework.decorators import api_view


# 판매자에게 모든 케이크 보여줌
@api_view(['GET'])
def show(request):
try:
Expand All @@ -25,7 +25,6 @@ def show(request):

return Response(cake_size.data,status=200)


except KeyError:
return JsonResponse({'message' : 'KEY_ERROR'}, status=400)

Expand All @@ -42,12 +41,8 @@ def cake(request):

user = User.objects.get(email=user_email)
store = Store.objects.get(user=user)

# if CakeName.objects.filter(name=cake_name).exists():
# CakeName.objects.update(name=cake_name, store=store)

cake = Cake.objects.update_or_create(name=cake_name, price=cake_price, store=store)[0]
# cake = CakeName.objects.get(name=cake_name, store=store)
basic_options = data['cake_basic_option'].keys()
addtional_options = data['cake_additional_option'].keys()

Expand Down Expand Up @@ -243,12 +238,17 @@ def detail(request):
flavor = Flavor.objects.get(flavor=flavor)

if CakeInfo.objects.filter(cake=cake).exists():
CakeInfo.objects.update(locate=locate, flavor=flavor, price_range=price, info=info, cake=cake)
cake_info = CakeInfo.objects.get(cake=cake)
cake_info.locate = locate
cake_info.flavor = flavor
cake_info.info = info
cake_info.price_range = price
cake_info.save()
else:
CakeInfo.objects.create(locate=locate, flavor=flavor, price_range=price, info=info, cake=cake)

return JsonResponse({'message' : 'SUCCESS'}, status=status.HTTP_201_CREATED)

except KeyError:
return JsonResponse({'message' : 'KEY_ERROR'}, status=400)

Expand All @@ -260,7 +260,7 @@ def main(request, page):
# 차후 인기 있는 케이크를 보여줄 때 order_by 메소드 이용
# 6개씩 보여주는 로직
# cakes = Cake.objects.all()[:page*6]
store = Store.objects.all()[:page*6]
store = Store.objects.all()[(page-1)*6:page*6]
cake = StoreCakeSerializer(store, many=True)

return Response(cake.data, status=status.HTTP_201_CREATED)
Expand All @@ -273,7 +273,6 @@ def main(request, page):
def order(request):
try:
data = json.loads(request.body)
user_email = data['user_email']
store_name = data['store_name']
cake_name = data['cake_name']

Expand All @@ -284,15 +283,14 @@ def order(request):

return Response(cake.data, status=200)


except KeyError:
return JsonResponse({'message' : 'KEY_ERROR'}, status=400)

# 검색기능
@api_view(['GET'])
def search(request, page):
try:
data = json.loads(request.body)

keyword = data['keyword']

stores = {}
Expand All @@ -313,6 +311,32 @@ def search(request, page):

return Response(response_data, status=200)

except KeyError:
return JsonResponse({'message' : 'KEY_ERROR'}, status=400)

# 필터 검색 기능
@api_view(['GET'])
def filter(request, page):
try:
data = json.loads(request.body)

price = data['price']
locate = data['locate']
flavor = data['flavor']

# related name 때ㅜㄴ에 오류발생하는듯

locate_filter = CakeInfo.objects.filter(locate=locate)
price_filter = CakeInfo.objects.filter(price_range=price)
flavor_filter = CakeInfo.objects.filter(flavor=flavor)

cakes = locate_filter.union(price_filter, all=False)
cakes = cakes.union(flavor_filter, all=False)

cake = cakes[(page-1)*12:page*12]
serializer = CakeSearchSerializer(cake, many=True)

return Response(serializer.data)

except KeyError:
return JsonResponse({'message' : 'KEY_ERROR'}, status=400)
Binary file modified Backend/momment/db.sqlite3
Binary file not shown.