From 3c6c14bd83f3978d433f1ac78ed2660186657519 Mon Sep 17 00:00:00 2001 From: SeongHunTed <4047ksh@naver.com> Date: Fri, 13 Jan 2023 03:07:55 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat=20:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8->?= =?UTF-8?q?=ED=8C=90=EB=A7=A4=EC=9E=90=EC=97=AC=EB=B6=80,=20Store=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../accounts/__pycache__/views.cpython-39.pyc | Bin 4271 -> 4400 bytes Backend/momment/accounts/views.py | 4 +- Backend/momment/db.sqlite3 | Bin 204800 -> 212992 bytes Backend/momment/store/admin.py | 16 ++++++- .../momment/store/migrations/0001_initial.py | 6 +-- .../store/migrations/0002_alter_store_user.py | 21 +++++++++ Backend/momment/store/models.py | 14 +++--- Backend/momment/store/serializers.py | 9 ++++ Backend/momment/store/urls.py | 2 +- Backend/momment/store/views.py | 43 +++++++++++++++++- 10 files changed, 99 insertions(+), 16 deletions(-) create mode 100644 Backend/momment/store/migrations/0002_alter_store_user.py create mode 100644 Backend/momment/store/serializers.py diff --git a/Backend/momment/accounts/__pycache__/views.cpython-39.pyc b/Backend/momment/accounts/__pycache__/views.cpython-39.pyc index dbbb1db55486117b3078ccd8163002aca68c3b9d..96a07cb3c16c33393e76862ba1bd9bb74d6380f1 100644 GIT binary patch delta 1298 zcmZvb&2Jl35Wx4X*Y?KVwH-SNwqvJpnzY?Sv`$M&C?zx`b_j`TH_nH&s#sZm>&S`Y zjb>dcP*4u3;7WKW5S1DU4)g$3bAb~Gi8Du}y>RBhf&YM+wMbLMuI8utdi!SPz5TxM zY)r4~dPKsfUH-Wtj`ciy{dnq&D3iFvwRUDNYaahLdMNRDdvvd07SNwC$9TVaktfY@ zo-!xwG#}VzM~n~hp-0jYGcTQaUg2rqbNS4Z;aT5vWl7@0JoiZAIeYjhU>a!W`3Tx0 zzCFp6nq*w~lL|9rPgL1wQRb=j{g(AX%YG>SV84burCO=2pMEXhXKYX~#w~vPpf;;*_h^t=(#M98^;UMP05Mh{*LzuCxwaVQkt2$q+ zZB^D5Ax}}g=TU5hTpuKnSE3WS@O zu_+$+El-kmF6wVeJpfg|f#S*tmBFpkMC37JZ;J1t_gMLJt;C9=tlds9M| zv1nCRdIP7)z#9l71#gq?pGBFHBaL>;?sWa`?og;GKGi4Lig>P1&s52Ak3b`XHG~(y zfp{un-|4vaxt{%Ysj&A&Hs)NLrxpGjUcgT&VcpOmSAb*xi?5&d;<#e RUs=^zB(Ji_07@_s{s)nZ1i%0Q delta 1188 zcmaKr&1(}u6u@^jn`E2prkkWqli1j#AJ#DY_{+*Z}BLWquQr!QRyi>0ysivoBP;aFnz0H(pm^M5X9ud7Ae@Jis7x&hkQk!u}3*bOtJ^aW$PvSh`>2L1?Q=R~R zKOPWpPQt7_1Kcn3sz+C+8_|yFKzISRYtyXOPV7RPACW;^2BbZ#3*~OaX$mLD zV?F3_&Ky$Vy1MzX znjy1180a0ofrdrI0%8eZyP#UO3@BTrig~6W*iENgI^PRe-Q%d9cILEP6X3WFvsNyV zp`K3jrutictYYl~cJh1m@A-rli3ZSC53v1oD_7dIy7E?OgK501MM#i8)e;Xw7=p)R zqlheG6@mW_8$jTla2n-&?q7M?^4N|=cZ=pYwy}asHKGuWM1dzmLK_U1M4SPa)#pzD JLNMK$_ZQlV-p~L5 diff --git a/Backend/momment/accounts/views.py b/Backend/momment/accounts/views.py index 74bfad23..d932cba8 100644 --- a/Backend/momment/accounts/views.py +++ b/Backend/momment/accounts/views.py @@ -69,8 +69,10 @@ def login(request): return JsonResponse({'message' : 'WRONG_PASSWORD'}) token = Token.objects.get(user=user.get()) + + is_seller = user.get().is_staff - return JsonResponse({'message' : 'LOGIN_SUCCESS', 'token' : token.key}, status=200) + return JsonResponse({'message' : 'LOGIN_SUCCESS', 'token' : token.key, 'is_seller' : is_seller}, status=200) except: return JsonResponse({'message' : 'LOGIN_FAILED'}) diff --git a/Backend/momment/db.sqlite3 b/Backend/momment/db.sqlite3 index 91c619091bc05f332946ffa833573fbe479d84c8..2675d10066319e5c6d0ffa6279acbcb12ad2fa6a 100644 GIT binary patch delta 7442 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 delta 5365 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 diff --git a/Backend/momment/store/admin.py b/Backend/momment/store/admin.py index 8c38f3f3..176bfffb 100644 --- a/Backend/momment/store/admin.py +++ b/Backend/momment/store/admin.py @@ -1,3 +1,15 @@ from django.contrib import admin - -# Register your models here. +from .models import Store + +class StoreAdmin(admin.ModelAdmin): + # 관리자 화면에 보여질 칼럼 지정 + list_display = ('store_name', 'store_digit', 'user') + search_fields = ('user', 'store_name') + readonly_fields = () + + filter_horizontal = () + list_filter = () + fieldsets = () + ordering = ('id',) + +admin.site.register(Store, StoreAdmin) \ No newline at end of file diff --git a/Backend/momment/store/migrations/0001_initial.py b/Backend/momment/store/migrations/0001_initial.py index abeb2a02..3f43ded4 100644 --- a/Backend/momment/store/migrations/0001_initial.py +++ b/Backend/momment/store/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-01-12 15:53 +# Generated by Django 3.2.13 on 2023-01-12 17:23 from django.conf import settings from django.db import migrations, models @@ -21,10 +21,10 @@ class Migration(migrations.Migration): ('store_name', models.CharField(max_length=255)), ('store_intro', models.TextField(verbose_name='store intro')), ('store_opentime', models.TimeField(verbose_name='open time')), - ('store_close', models.TimeField(verbose_name='close time')), + ('store_closetime', models.TimeField(verbose_name='close time')), ('store_digit', models.CharField(max_length=13)), ('store_address', models.CharField(max_length=255)), - ('user_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ] diff --git a/Backend/momment/store/migrations/0002_alter_store_user.py b/Backend/momment/store/migrations/0002_alter_store_user.py new file mode 100644 index 00000000..d07f3de7 --- /dev/null +++ b/Backend/momment/store/migrations/0002_alter_store_user.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.13 on 2023-01-12 17:37 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('store', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='store', + name='user', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/Backend/momment/store/models.py b/Backend/momment/store/models.py index 4b334231..d27d89cc 100644 --- a/Backend/momment/store/models.py +++ b/Backend/momment/store/models.py @@ -4,10 +4,10 @@ # Create your models here. class Store(models.Model): - store_name = models.CharField(max_length=255) - store_intro = models.TextField(verbose_name='store intro') - store_opentime = models.TimeField(verbose_name='open time') - store_close = models.TimeField(verbose_name='close time') - store_digit = models.CharField(max_length=13) - store_address = models.CharField(max_length=255) - user_id = models.ForeignKey(User, on_delete=models.CASCADE) \ No newline at end of file + store_name = models.CharField(max_length=255) + store_intro = models.TextField(verbose_name='store intro') + store_opentime = models.TimeField(verbose_name='open time') + store_closetime = models.TimeField(verbose_name='close time') + store_digit = models.CharField(max_length=13) + store_address = models.CharField(max_length=255) + user = models.OneToOneField(User, on_delete=models.CASCADE) \ No newline at end of file diff --git a/Backend/momment/store/serializers.py b/Backend/momment/store/serializers.py new file mode 100644 index 00000000..9570b69d --- /dev/null +++ b/Backend/momment/store/serializers.py @@ -0,0 +1,9 @@ +from .models import Store + +from rest_framework import serializers + +class StoreSerializer(serializers.ModelSerializer): + + class Meta: + model = Store + field = '__all__' \ No newline at end of file diff --git a/Backend/momment/store/urls.py b/Backend/momment/store/urls.py index 41d0f3b7..2215942b 100644 --- a/Backend/momment/store/urls.py +++ b/Backend/momment/store/urls.py @@ -2,5 +2,5 @@ from django.urls import path urlpatterns = [ - + path('update/', views.update), ] \ No newline at end of file diff --git a/Backend/momment/store/views.py b/Backend/momment/store/views.py index 91ea44a2..fcb498ee 100644 --- a/Backend/momment/store/views.py +++ b/Backend/momment/store/views.py @@ -1,3 +1,42 @@ -from django.shortcuts import render +from .models import Store +from accounts.models import User +from .serializers import StoreSerializer + +import json +from django.http import HttpResponse, JsonResponse +from rest_framework import status +from rest_framework.response import Response +from rest_framework.decorators import api_view + +@api_view(['POST', 'PUT']) +def update(request): + try: + data = json.loads(request.body) + + store_name = data['store_name'] + store_intro = data['store_intro'] + store_opentime = data['store_opentime'] + store_closetime = data['store_closetime'] + store_digit = data['store_digit'] + store_address = data['store_address'] + user_email = data['user_email'] + + print(user_email) + # user email을 이용하여 user_id 값 가져오기 + user = User.object.get(email=user_email) + + if Store.objects.filter(user=user).exists(): + Store.objects.update(store_name=store_name, store_intro=store_intro, store_opentime=store_opentime, + store_closetime=store_closetime, store_digit=store_digit, store_address=store_address, user=user) + return JsonResponse({'message' : 'UPDATE_SUCCESS'}, status=200) + + + Store.objects.create(store_name=store_name, store_intro=store_intro, store_opentime=store_opentime, + store_closetime=store_closetime, store_digit=store_digit, store_address=store_address, user=user) + + + return JsonResponse({'message' : "SUCCESS"}, status=200) + + except KeyError: + return JsonResponse({'message' : 'KEY_ERROR'}, status=400) -# Create your views here. From fe0e318a28601f928c9521d00a686270b89e10b7 Mon Sep 17 00:00:00 2001 From: SeongHunTed <4047ksh@naver.com> Date: Fri, 20 Jan 2023 01:29:50 +0900 Subject: [PATCH 2/7] feat : Cake Register --- .DS_Store | Bin 6148 -> 6148 bytes .../__pycache__/models.cpython-39.pyc | Bin 2268 -> 2276 bytes .../accounts/__pycache__/views.cpython-39.pyc | Bin 4400 -> 4387 bytes .../accounts/migrations/0001_initial.py | 6 +- .../migrations/0002_alter_user_birth.py | 18 +++ .../migrations/0002_auto_20230111_1443.py | 23 --- .../migrations/0003_alter_user_managers.py | 18 +++ .../__pycache__/0001_initial.cpython-39.pyc | Bin 1276 -> 1303 bytes Backend/momment/accounts/models.py | 4 +- Backend/momment/accounts/views.py | 6 +- Backend/momment/cake/__init__.py | 0 Backend/momment/cake/admin.py | 15 ++ Backend/momment/cake/apps.py | 6 + .../momment/cake/migrations/0001_initial.py | 124 ++++++++++++++++ Backend/momment/cake/migrations/__init__.py | 0 Backend/momment/cake/models.py | 78 ++++++++++ Backend/momment/cake/tests.py | 3 + Backend/momment/cake/urls.py | 6 + Backend/momment/cake/views.py | 79 ++++++++++ Backend/momment/db.sqlite3 | Bin 212992 -> 315392 bytes .../__pycache__/settings.cpython-39.pyc | Bin 3393 -> 3399 bytes .../momment/__pycache__/urls.cpython-39.pyc | Bin 1024 -> 1056 bytes Backend/momment/momment/settings.py | 1 + Backend/momment/momment/urls.py | 1 + .../momment/store/migrations/0001_initial.py | 4 +- .../store/migrations/0002_alter_store_user.py | 21 --- Backend/momment/store/models.py | 2 +- Backend/momment/store/views.py | 4 +- Backend/momment/test.json | 139 ++++++++++++++++++ Frontend/.DS_Store | Bin 6148 -> 6148 bytes 30 files changed, 501 insertions(+), 57 deletions(-) create mode 100644 Backend/momment/accounts/migrations/0002_alter_user_birth.py delete mode 100644 Backend/momment/accounts/migrations/0002_auto_20230111_1443.py create mode 100644 Backend/momment/accounts/migrations/0003_alter_user_managers.py create mode 100644 Backend/momment/cake/__init__.py create mode 100644 Backend/momment/cake/admin.py create mode 100644 Backend/momment/cake/apps.py create mode 100644 Backend/momment/cake/migrations/0001_initial.py create mode 100644 Backend/momment/cake/migrations/__init__.py create mode 100644 Backend/momment/cake/models.py create mode 100644 Backend/momment/cake/tests.py create mode 100644 Backend/momment/cake/urls.py create mode 100644 Backend/momment/cake/views.py delete mode 100644 Backend/momment/store/migrations/0002_alter_store_user.py create mode 100644 Backend/momment/test.json diff --git a/.DS_Store b/.DS_Store index b11d54a34d927ca92d521b1f91455cd81cf0b84f..3a6867e1b50929ba97c55d0d224f0bd957a3567c 100644 GIT binary patch delta 58 zcmV-A0LA}=FoZCWPXP_FP`d*G4YLdc%>e(JNMWd( vEWskL$iYy;kjhXDB=vx}f}zASCqFqUCqIdSfk6O>*H6x4H{Q(7@s}R}(bX7H diff --git a/Backend/momment/accounts/__pycache__/models.cpython-39.pyc b/Backend/momment/accounts/__pycache__/models.cpython-39.pyc index 2aba3b83a6133b8ef510e61926b52589c8c4a549..474db9f0108e8a2a1b25e9db9c9a977486229cda 100644 GIT binary patch delta 77 zcmca3_(YI5k(ZZ?0SIQ~olI8Q$ScFbcww>@iwi4r3U@E_=0X-GMqcJ3WuSs0H4ve` cxtg_*iGw{qDJwO(qh($ delta 69 zcmaDNct?;ok(ZZ?0SHo`?n@Tm$ScFbcy6*5iwiS%FVp5?7A8gxrXppabdlQTCe}hG XcDDSatkmR^$-mj782KiLar6NIYn2jM diff --git a/Backend/momment/accounts/__pycache__/views.cpython-39.pyc b/Backend/momment/accounts/__pycache__/views.cpython-39.pyc index 96a07cb3c16c33393e76862ba1bd9bb74d6380f1..baf574bc20e6fb9f739cc070888c466052820241 100644 GIT binary patch delta 663 zcmZvZUu)A~6vq3uNt5MIyLJk@wKAlo*uS>US@mLtInk|bb1(-nYf@-hlJdS8IOy;b z?COBtC|-!-rP43pt>BG!k}L6IpTG+*Jtu+|G;n@7d7qPqJSXo9uM4Janpy&{cmAjT zvk&Im)QaR8Q_abpu~R)%ocvVxOlRpu(z)R1XUYAGPT|Z5S3yw0CJp;a_pEDDl zDDCA)9STc?_F%xvXjD}ARlM;Ed{&kh8`M_+pawsbGHbylb^l5{H7C(f8?l8YBt#;q zG2WiNQd{gY4MzrdMQGWRp*3<(=3PVb-^;atO9S0Yw8B-MaJ*KcSGoF_`q|74m>tXhh!h+M)t@KtO*YW!?9}}^C7>9 z=Lh=6?(Vi#uU4(Cd%Qv~e54{KfiK*-jB&gs9A`x74o&|r{W=PVSijRJ`8wpYkJ!%4&#ti!eIV}; ZXhHlTp-yNK=$FLX<7D!WJDe|W{sO_Ml1u;q delta 673 zcmZvY&1w@-6vyW#^VQ5ul74`0T(qK+SaFg#rna^!m|$C^U(rYvhDm0M8AB58olPOt zC+MbUp$i2?aING4bn62M?Yw{sU&3=HpaC5?zx%)U9R73v_v6Cn1 zC7GIN(a;iN3roldDV1S-X>_9BWEW{THhCZ-*Bf-)7s27AD>k_Uzos4*9g=@d6IG_O zWyB*akwWN<}n9-$le}Od9KmLBA)0i9ksf2cBm|@g7b8FKP`N&#=Z(Q@jRB?kQ`Gyxa;~r3>;k Z!ec^{P$5(a^!~|HaWeVG9nSI_zXAE2k)!|s diff --git a/Backend/momment/accounts/migrations/0001_initial.py b/Backend/momment/accounts/migrations/0001_initial.py index b7997419..76965742 100644 --- a/Backend/momment/accounts/migrations/0001_initial.py +++ b/Backend/momment/accounts/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-01-06 07:00 +# Generated by Django 3.2.13 on 2023-01-19 16:21 from django.db import migrations, models import django.db.models.manager @@ -16,11 +16,11 @@ class Migration(migrations.Migration): name='User', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), ('email', models.EmailField(max_length=60, unique=True, verbose_name='ID')), - ('password', models.CharField(max_length=20)), ('name', models.CharField(max_length=20)), ('digit', models.CharField(max_length=11)), - ('birth', models.DateField(verbose_name='생년월일')), + ('birth', models.DateField(null=True, verbose_name='생년월일')), ('address', models.CharField(max_length=80)), ('is_admin', models.BooleanField(default=False)), ('is_active', models.BooleanField(default=True)), diff --git a/Backend/momment/accounts/migrations/0002_alter_user_birth.py b/Backend/momment/accounts/migrations/0002_alter_user_birth.py new file mode 100644 index 00000000..ded19250 --- /dev/null +++ b/Backend/momment/accounts/migrations/0002_alter_user_birth.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.13 on 2023-01-19 16:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='birth', + field=models.DateField(blank=True, null=True, verbose_name='생년월일'), + ), + ] diff --git a/Backend/momment/accounts/migrations/0002_auto_20230111_1443.py b/Backend/momment/accounts/migrations/0002_auto_20230111_1443.py deleted file mode 100644 index 6dca4de1..00000000 --- a/Backend/momment/accounts/migrations/0002_auto_20230111_1443.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.13 on 2023-01-11 14:43 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('accounts', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='user', - name='birth', - field=models.DateField(null=True, verbose_name='생년월일'), - ), - migrations.AlterField( - model_name='user', - name='password', - field=models.CharField(max_length=128, verbose_name='password'), - ), - ] diff --git a/Backend/momment/accounts/migrations/0003_alter_user_managers.py b/Backend/momment/accounts/migrations/0003_alter_user_managers.py new file mode 100644 index 00000000..62ac8a4c --- /dev/null +++ b/Backend/momment/accounts/migrations/0003_alter_user_managers.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.13 on 2023-01-19 16:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts', '0002_alter_user_birth'), + ] + + operations = [ + migrations.AlterModelManagers( + name='user', + managers=[ + ], + ), + ] diff --git a/Backend/momment/accounts/migrations/__pycache__/0001_initial.cpython-39.pyc b/Backend/momment/accounts/migrations/__pycache__/0001_initial.cpython-39.pyc index 307cb5e3abd97ad3792143a7804cd9024c88d098..2c65f11173fc2e62930a4bdd646ae908939b0b40 100644 GIT binary patch delta 445 zcmY+9%TB^T6o#30pmd<6Al~m6OxU<0CK%$z=mP*NHm326*rqL7th&>cyDms$Ok5a! z2A{%L=o|13#&~AzhM8oN@BhyElljqKnQ0pa%i*a6-xsVfF`o&Yyc|AipvTIk0*q@e zgAx$PLpfG4F)-1=gi1`1EJ@XjYDi*s4(f7yUfPAsE+UnI!jjxvmP9gInQ^QA8C*j$ zuy!3bWbJ0gTd*y7Xuu9ohrlj3-HNNZ)<^X-hdF`0m=4LH28~{>xu3j|Zm)Q4kH`0; z5T;M~>!y-2-+nmvcrd)Z3QHKJdG6beH|+?mhNg%LQQ+J}{NK~S_W86fG?6+vP#T(& z(jfA@ufEbIRsH134$mC!LCQ`=Tk@_B3T<2o+sUsw(k)UWCSEJKquo|Z2rBLDbA*@{ SJN^hFj~}Z@V=-otqWT9F3Ti(9 delta 396 zcmbQv^@o!$k(ZZ?0SG=G+n)TCbs}FIBg4e0X7!9ItSOwm%xO$1T&e6?Tq)csJiUxS z9xn=y56t6-$_W5@+$n-7LSU7`U^x+}oG6gTlfsfB29^^C^BAE#2^2X=5HA3(R0_!D zO<_!tPLb(l0y;nz%9l%#2l3N+QxsBIG8t18Q~9#^v)Ho)76>k60E#oFDD|?WGe!xe zC@mYJH9a*NYBBe7`mPUa{! lbD-KH^U0Dd`J6(Gd=NN!B1@2z5lDgsEQ?B5O#aIv1pr?!Vt4=m diff --git a/Backend/momment/accounts/models.py b/Backend/momment/accounts/models.py index 516bc687..a306ff8d 100644 --- a/Backend/momment/accounts/models.py +++ b/Backend/momment/accounts/models.py @@ -39,7 +39,7 @@ class User(AbstractBaseUser): email = models.EmailField(verbose_name='ID', max_length=60, unique=True, null=False, blank=False) name = models.CharField(max_length=20, null=False, blank=False) digit = models.CharField(max_length=11) - birth = models.DateField(verbose_name="생년월일", null=True) + birth = models.DateField(verbose_name="생년월일", null=True, blank=True) address = models.CharField(max_length=80) is_admin = models.BooleanField(default=False) is_active = models.BooleanField(default=True) @@ -48,7 +48,7 @@ class User(AbstractBaseUser): create_at = models.DateTimeField(verbose_name='date joined', auto_now_add=True) last_login = models.DateTimeField(verbose_name='last login', auto_now=True) - object = Account() + objects = Account() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['name', 'digit', 'address', 'birth'] diff --git a/Backend/momment/accounts/views.py b/Backend/momment/accounts/views.py index d932cba8..acc765f5 100644 --- a/Backend/momment/accounts/views.py +++ b/Backend/momment/accounts/views.py @@ -37,7 +37,7 @@ def signup(request): birth = data['birth'] address = data['address'] - if User.object.filter(email=email).exists(): + if User.objects.filter(email=email).exists(): return JsonResponse({'message' : 'ALREADY_EXIST'}, status = 400) regex_email = '^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9-.]+$' @@ -47,7 +47,7 @@ def signup(request): if not re.match(regex_password, password): return JsonResponse({'message' : 'INVALID_PASSWORD'}, status = 400) - user = User.object.create_user(email=email, password=password, name=name, digit=digit, birth=birth, address=address) + user = User.objects.create_user(email=email, password=password, name=name, digit=digit, birth=birth, address=address) token = Token.objects.create(user=user) return JsonResponse({'message' : 'SUCCESS', 'token' : token.key}, status=200) @@ -63,7 +63,7 @@ def login(request): email = data['email'] password = data['password'] - user = User.object.filter(email=email) + user = User.objects.filter(email=email) if not check_password(password, user.get().password): return JsonResponse({'message' : 'WRONG_PASSWORD'}) diff --git a/Backend/momment/cake/__init__.py b/Backend/momment/cake/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Backend/momment/cake/admin.py b/Backend/momment/cake/admin.py new file mode 100644 index 00000000..d5fe8c4a --- /dev/null +++ b/Backend/momment/cake/admin.py @@ -0,0 +1,15 @@ +from django.contrib import admin +from .models import * + +class CakeAdmin(admin.ModelAdmin): + # 관리자 화면에 보여질 칼럼 지정 + list_display = ('name', 'store', 'price') + search_fields = () + readonly_fields = () + + filter_horizontal = () + list_filter = () + fieldsets = () + ordering = () + +admin.site.register(Cake, CakeAdmin) \ No newline at end of file diff --git a/Backend/momment/cake/apps.py b/Backend/momment/cake/apps.py new file mode 100644 index 00000000..ae1439cf --- /dev/null +++ b/Backend/momment/cake/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class CakeConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'cake' diff --git a/Backend/momment/cake/migrations/0001_initial.py b/Backend/momment/cake/migrations/0001_initial.py new file mode 100644 index 00000000..127df3eb --- /dev/null +++ b/Backend/momment/cake/migrations/0001_initial.py @@ -0,0 +1,124 @@ +# Generated by Django 3.2.13 on 2023-01-19 16:21 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('store', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Cake', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('store', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='store.store')), + ], + ), + migrations.CreateModel( + name='CakeSize', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('size', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakeSideDeco', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('side_deco', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakePicture', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('picture', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakePackage', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('package', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakeLettering', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('lettering', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakeFont', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('font', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakeFlavor', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('flavor', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakeDesign', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('design', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakeDeco', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('deco', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakeColor', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('color', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + migrations.CreateModel( + name='CakeCandle', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('candle', models.CharField(max_length=40)), + ('price', models.IntegerField()), + ('cake', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cake.cake')), + ], + ), + ] diff --git a/Backend/momment/cake/migrations/__init__.py b/Backend/momment/cake/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Backend/momment/cake/models.py b/Backend/momment/cake/models.py new file mode 100644 index 00000000..0be3114c --- /dev/null +++ b/Backend/momment/cake/models.py @@ -0,0 +1,78 @@ +from django.db import models +from store.models import Store +# Create your models here. + +class Cake(models.Model): + name = models.CharField(max_length=40) + price = models.IntegerField() + store = models.ForeignKey(Store, on_delete=models.CASCADE) + +class CakeSize(models.Model): + size = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakeFlavor(models.Model): + flavor = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakeColor(models.Model): + color = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakeDesign(models.Model): + design = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakeSideDeco(models.Model): + side_deco = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakeDeco(models.Model): + deco = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakeLettering(models.Model): + lettering = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakeFont(models.Model): + font = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakePicture(models.Model): + picture = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakePackage(models.Model): + package = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + +class CakeCandle(models.Model): + candle = models.CharField(max_length=40) + price = models.IntegerField() + cake = models.ForeignKey(Cake, on_delete=models.CASCADE) + + +# class Cake(models.Model): +# name = models.CharField(max_length=40, unique=True) +# size = models.ForeignKey(CakeSize, on_delete=models.CASCADE) +# flavor = models.ForeignKey(CakeFlavor, on_delete=models.CASCADE) +# color = models.ForeignKey(CakeColor, on_delete=models.CASCADE) +# design = models.ForeignKey(CakeDesign, on_delete=models.CASCADE) +# side_deco = models.ForeignKey(CakeSideDeco, on_delete=models.CASCADE, null=True, blank=True) +# deco = models.ForeignKey(CakeDeco, on_delete=models.CASCADE, null=True, blank=True) +# lettering = models.ForeignKey(CakeLettering, on_delete=models.CASCADE, null=True, blank=True) +# font = models.ForeignKey(CakeFont, on_delete=models.CASCADE, null=True, blank=True) +# picture = models.ForeignKey(CakePicture, on_delete=models.CASCADE, null=True, blank=True) +# package = models.ForeignKey(CakePackage, on_delete=models.CASCADE) +# candle = models.ForeignKey(CakeCandle, on_delete=models.CASCADE, null=True, blank=True) \ No newline at end of file diff --git a/Backend/momment/cake/tests.py b/Backend/momment/cake/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/Backend/momment/cake/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Backend/momment/cake/urls.py b/Backend/momment/cake/urls.py new file mode 100644 index 00000000..2215942b --- /dev/null +++ b/Backend/momment/cake/urls.py @@ -0,0 +1,6 @@ +from . import views +from django.urls import path + +urlpatterns = [ + path('update/', views.update), +] \ No newline at end of file diff --git a/Backend/momment/cake/views.py b/Backend/momment/cake/views.py new file mode 100644 index 00000000..37c535d5 --- /dev/null +++ b/Backend/momment/cake/views.py @@ -0,0 +1,79 @@ +from django.shortcuts import render +from accounts.models import User +from cake.models import * + +import json +from django.http import HttpResponse, JsonResponse +from rest_framework import status +from rest_framework.response import Response +from rest_framework.decorators import api_view + +@api_view(['POST', 'PUT']) +def update(request): + try: + data = json.loads(request.body) + + user_email = data['user_email'] # 차후에 jwt 인증방식으로 변경 + cake_name = data['cake_name'] + cake_price = data['cake_price'] + + 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() + + cake = Cake.objects.get(name=cake_name, store=store) + # basic options = cake_size, cake falvor, cake color .... + + for basic_option in basic_options: + options = data['cake_basic_option'][basic_option].keys() + # option_key : 1, 2, 3 + for option_key in options: + option = data['cake_basic_option'][basic_option][option_key]['option'] + price = data['cake_basic_option'][basic_option][option_key]['price'] + + if basic_option == 'cake_size': + CakeSize.objects.update_or_create(size=option, price=price, cake=cake) + elif basic_option == 'cake_flavor': + CakeFlavor.objects.update_or_create(flavor=option, price=price, cake=cake) + elif basic_option == 'cake_color': + CakeColor.objects.update_or_create(color=option, price=price, cake=cake) + elif basic_option == 'cake_design': + CakeDesign.objects.update_or_create(design=option, price=price, cake=cake) + + print("Hello") + + for addtional_option in addtional_options: + options = data['cake_additional_option'][addtional_option].keys() + for option_key in options: + option = data['cake_additional_option'][addtional_option][option_key]['option'] + price = int(data['cake_additional_option'][addtional_option][option_key]['price']) + + if addtional_option == 'cake_sidedeco': + CakeSideDeco.objects.update_or_create(side_deco=option, price=price, cake=cake) + elif addtional_option == 'cake_deco': + CakeDeco.objects.update_or_create(deco=option, price=price, cake=cake) + elif addtional_option == 'cake_lettering': + CakeLettering.objects.update_or_create(lettering=option, price=price, cake=cake) + elif addtional_option == 'cake_font': + CakeFont.objects.update_or_create(font=option, price=price, cake=cake) + elif addtional_option == 'cake_picture': + CakePicture.objects.update_or_create(picture=option, price=price, cake=cake) + elif addtional_option == 'cake_package': + CakePackage.objects.update_or_create(package=option, price=price, cake=cake) + elif addtional_option == 'cake_candle': + CakeCandle.objects.update_or_create(candle=option, price=price, cake=cake) + + + return JsonResponse({'message' : 'SUCCESS'}, status=200) + + + + except KeyError: + return JsonResponse({'message' : 'KEY_ERROR'}, status=400) \ No newline at end of file diff --git a/Backend/momment/db.sqlite3 b/Backend/momment/db.sqlite3 index 2675d10066319e5c6d0ffa6279acbcb12ad2fa6a..99362c46093220aa4c8997a1155d78b9b0ceb559 100644 GIT binary patch literal 315392 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 BEJFYQ delta 8466 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 diff --git a/Backend/momment/momment/__pycache__/settings.cpython-39.pyc b/Backend/momment/momment/__pycache__/settings.cpython-39.pyc index ffa99337a7b33d9fc6dcc7ec6f279f1b03a334aa..b74321973dd21603b3d704ee2252bff81383e797 100644 GIT binary patch delta 58 zcmX>obzF)sk(ZZ?0SNfCPbRa7Y~)j65f_f)NK8)7FU>0{zQtNxl3$b>#gd$uz1f*% MJqM%Aubx?{gk(ZZ?0SH#B97z5lypd0ZMNlY;BQZHSzcjC;_!et%Nq*60PnPu@jM9^T H^7sJ&k=zh@ diff --git a/Backend/momment/momment/__pycache__/urls.cpython-39.pyc b/Backend/momment/momment/__pycache__/urls.cpython-39.pyc index b9ed53404e1bce6ca2569e56cf17e0b84acd5e49..053c5b934746aee3b5a05907c22f4d0f7b9b3144 100644 GIT binary patch delta 114 zcmZqRSiqs3$ji&c00ghKP9`(6Ffcp@agYH!kmCTv#Ss&=-NjN_QaDptQ@ENLo0-yC vqBv5xgBdh=HrAYC;;CXyPRvf#ui^w!lO32h2=M`RvGDUS3NZ69g5e(kZdw$x delta 87 zcmZ3$(ZHdd$ji&c00gI14kX`VW?*;>;vfSyAjbiSi+v_)yK|*8M{%TZ1~X`KZR|M3 YG&zNNl>iS=l7*j#QGl6;5eWYR0E^5Hp8x;= diff --git a/Backend/momment/momment/settings.py b/Backend/momment/momment/settings.py index 0931e40f..7ae94f9b 100644 --- a/Backend/momment/momment/settings.py +++ b/Backend/momment/momment/settings.py @@ -63,6 +63,7 @@ def get_secret(setting, secrets=secrets): # local app 'accounts', 'store', + 'cake', 'rest_framework', 'rest_framework.authtoken', diff --git a/Backend/momment/momment/urls.py b/Backend/momment/momment/urls.py index 3289f21e..9ac60e01 100644 --- a/Backend/momment/momment/urls.py +++ b/Backend/momment/momment/urls.py @@ -20,6 +20,7 @@ path('admin/', admin.site.urls), path('accounts/', include('accounts.urls')), path('store/', include('store.urls')), + path('cake/', include('cake.urls')), # path('dj-accounts/', include('dj_rest_auth.urls')), # path('dj-accounts/signup/', include('dj_rest_auth.registration.urls')), ] diff --git a/Backend/momment/store/migrations/0001_initial.py b/Backend/momment/store/migrations/0001_initial.py index 3f43ded4..0ea6a573 100644 --- a/Backend/momment/store/migrations/0001_initial.py +++ b/Backend/momment/store/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-01-12 17:23 +# Generated by Django 3.2.13 on 2023-01-19 15:47 from django.conf import settings from django.db import migrations, models @@ -24,7 +24,7 @@ class Migration(migrations.Migration): ('store_closetime', models.TimeField(verbose_name='close time')), ('store_digit', models.CharField(max_length=13)), ('store_address', models.CharField(max_length=255)), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ] diff --git a/Backend/momment/store/migrations/0002_alter_store_user.py b/Backend/momment/store/migrations/0002_alter_store_user.py deleted file mode 100644 index d07f3de7..00000000 --- a/Backend/momment/store/migrations/0002_alter_store_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.13 on 2023-01-12 17:37 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('store', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='store', - name='user', - field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/Backend/momment/store/models.py b/Backend/momment/store/models.py index d27d89cc..5fdeb0fb 100644 --- a/Backend/momment/store/models.py +++ b/Backend/momment/store/models.py @@ -10,4 +10,4 @@ class Store(models.Model): store_closetime = models.TimeField(verbose_name='close time') store_digit = models.CharField(max_length=13) store_address = models.CharField(max_length=255) - user = models.OneToOneField(User, on_delete=models.CASCADE) \ No newline at end of file + user = models.OneToOneField(User, on_delete=models.CASCADE) diff --git a/Backend/momment/store/views.py b/Backend/momment/store/views.py index fcb498ee..0d2487ac 100644 --- a/Backend/momment/store/views.py +++ b/Backend/momment/store/views.py @@ -21,9 +21,9 @@ def update(request): store_address = data['store_address'] user_email = data['user_email'] - print(user_email) # user email을 이용하여 user_id 값 가져오기 - user = User.object.get(email=user_email) + print(user_email) + user = User.objects.get(email=user_email) if Store.objects.filter(user=user).exists(): Store.objects.update(store_name=store_name, store_intro=store_intro, store_opentime=store_opentime, diff --git a/Backend/momment/test.json b/Backend/momment/test.json new file mode 100644 index 00000000..35ca7aed --- /dev/null +++ b/Backend/momment/test.json @@ -0,0 +1,139 @@ +{ + "user_email" : "rubat0@gmail.com", + "cake_name" : "test cake", + "cake_price" : "10000", + "cake_basic_option" : { + "cake_size" : { + "1" : { + "option" : "도시락", + "price" : "1000" + }, + "2" : { + "option" : "미니케이크 1호", + "price" : "2000" + }, + "3" : { + "option" : "미니케이크 2호", + "price" : "3000" + } + }, + "cake_flavor" : { + "1" : { + "option" : "바닐라", + "price" : "0" + }, + "2" : { + "option" : "초코", + "price" : "1000" + } + }, + "cake_color" : { + "1" : { + "option" : "기본", + "price" : "0" + }, + "2" : { + "option" : "배경", + "price" : "1000" + }, + "3" : { + "option" : "꽃", + "price" : "2000" + } + }, + "cake_design" : { + "1" : { + "option" : "동물", + "price" : "1000" + }, + "2" : { + "option" : "얼굴", + "price" : "2000" + }, + "3" : { + "option" : "앞면", + "price" : "1000" + }, + "4" : { + "option" : "뒷면", + "price" : "1000" + } + } + }, + "cake_additional_option" : { + "cake_sidedeco" : { + "1" : { + "option" : "sidedeco", + "price" : "2000" + } + }, + "cake_deco" : { + "1" : { + "option" : "악세시리", + "price" : "1000" + }, + "2" : { + "option" : "리본", + "price" : "2000" + }, + "3" : { + "option" : "티아라", + "price" : "3000" + }, + "4" : { + "option" : "소주", + "price" : "5000" + } + }, + "cake_lettering" : { + "1" : { + "option" : "케이크", + "price" : "1000" + }, + "2" : { + "option" : "하판", + "price" : "1000" + }, + "3" : { + "option" : "옆면", + "price" : "1000" + } + }, + "cake_font" : { + "1" : { + "option" : "궁서체", + "price" : "0" + }, + "2" : { + "option" : "바탕체", + "price" : "0" + } + }, + "cake_picture" : { + "1" : { + "option" : "True", + "price" : "2000" + } + }, + "cake_package" : { + "1" : { + "option" : "기본", + "price" : "0" + }, + "2" : { + "option" : "스페셜", + "price" : "2000" + } + }, + "cake_candle" : { + "1" : { + "option" : "숫자초", + "price" : "500" + }, + "2" : { + "option" : "일반초", + "price" : "100" + } + } + } +} \ No newline at end of file diff --git a/Frontend/.DS_Store b/Frontend/.DS_Store index a19c98cb4ac37c67c49aa65926729f715281c440..7dc113589f0af74aea821b733df70f79f90d01d0 100644 GIT binary patch delta 118 zcmZoMXfc=|#>B)qu~2NHo}wrR0|Nsi1A_nqgD- zX7OO$Hra-?kVCAx+CWFa#CY-!RvE^Q$yZtB89O(BWffxD*szspGdl-A2hh~bf*jwO TC-aLqg3JXO%(6K`WDPR_of90W delta 259 zcmZoMXfc=|#>B!ku~2NHo}wr>0|Nsi1A_nqgA0Q%gDZm`LoP$g=8w$FnH51&d_aL9 zps*vdG*GOVp`4*$asZROvLHhNLn1>mLpG31XGmqxWyoR32lMq9vViLH8S+5tCi62H zsd8a4tIjhgKRGEUKM80X&=riblM|TafI2K0cTVnND%6myt~N97_+RVP>GC-aLqasYkE N1T>#vbA-qmW&lX7HA?^h From 1bed4e86ccaccfe841e4b9d3f3b9976dea6116b6 Mon Sep 17 00:00:00 2001 From: SeongHunTed <4047ksh@naver.com> Date: Fri, 20 Jan 2023 01:41:24 +0900 Subject: [PATCH 3/7] feat : Cake Delete All Option --- Backend/momment/cake/urls.py | 1 + Backend/momment/cake/views.py | 22 +++++++++++++++++++++- Backend/momment/db.sqlite3 | Bin 315392 -> 315392 bytes 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Backend/momment/cake/urls.py b/Backend/momment/cake/urls.py index 2215942b..fdcd075e 100644 --- a/Backend/momment/cake/urls.py +++ b/Backend/momment/cake/urls.py @@ -3,4 +3,5 @@ urlpatterns = [ path('update/', views.update), + path('delete_all/', views.delete_all), ] \ No newline at end of file diff --git a/Backend/momment/cake/views.py b/Backend/momment/cake/views.py index 37c535d5..8ac27cdb 100644 --- a/Backend/momment/cake/views.py +++ b/Backend/momment/cake/views.py @@ -47,7 +47,6 @@ def update(request): elif basic_option == 'cake_design': CakeDesign.objects.update_or_create(design=option, price=price, cake=cake) - print("Hello") for addtional_option in addtional_options: options = data['cake_additional_option'][addtional_option].keys() @@ -75,5 +74,26 @@ def update(request): + except KeyError: + return JsonResponse({'message' : 'KEY_ERROR'}, status=400) + +@api_view(['POST', 'PUT']) +def delete_all(request): + try: + data = json.loads(request.body) + + user_email = data['user_email'] # 차후에 jwt 인증방식으로 변경 + cake_name = data['cake_name'] + + user = User.objects.get(email=user_email) + store = Store.objects.get(user=user) + + cake = Cake.objects.get(name=cake_name, store=store) + + cake.delete() + + return JsonResponse({'message' : 'SUCCESS'}, status=200) + + except KeyError: return JsonResponse({'message' : 'KEY_ERROR'}, status=400) \ No newline at end of file diff --git a/Backend/momment/db.sqlite3 b/Backend/momment/db.sqlite3 index 99362c46093220aa4c8997a1155d78b9b0ceb559..c278d45fcc1ee55b5d79f350dedc3017a42db283 100644 GIT binary patch delta 1430 zcmbVKO-vI(6yDjPg~E0o>+%l@9*i+Y3I4>R8a*oq65~mmb|J)unu;F0SVJL1j8;RX z8fg3rYOJwHrA=&=c;RGhG#aB(j3?~wicwA^8sBUeTac4;m}K7j-uHd)y$M`b0@syL zBZ*#W+DD=jM{hLmWc!6$=T8b>Aq!97CNx6;jzb6R00}O$a;CAj>^Xbj{K_Z&`w`Zuf3+0wh{N4C1tPL+pGG!d%7HQO)-|ck*eyKDRsMh zPx@7=R27@@p!u#IX^lcR6_ngQug~vL))WIfy{=O}zg?EOOyiRNiSE;?18uW{^**UJ zDYcTtY|@^kv#^QUgzch3kH(B^ceSCxmfVwwK9Y%?OMiWF@sTQ%E;+0rbPOKn0k)?N(iL!;VQhR)H1I1i0z zVXa7(wuC?~OyGwAKTvcI8YDzii=@MUQnj)o%wiU1G5;D`WxGkNpSx{bi0J*J2$F0z zp}vgdQgLlEWfD?&!8`c~FR}J?Wy-4)PfOao|Rv3E6w-JsQ=R^3m-2UwmL)@1L zp9GkPPe}3#wgOi!BU*ge=nLzQ5)@Du1G%ZQdT^8n@-^so-g3L1VGS2f4C`MV=-cwch3V_my<+aRMh`^`~9D zs>RZl`4UJ9kc0Oy14(4P1BWbDec-%)E3FJt8Ch{h#!y@j2hj{JmF0=G@feO0iK}pM z8_<8aUk|4ECdXqIJ%u-XD_`IZlFz`d3PdU*$z}SupZt8acs%!ruU^96uzW)zeBc}U zfWjpi o&3i6VD1kYvCzwMI?_eb3BXyNreDxIjPhV28uYnL950&is11ZR@YXATM delta 1330 zcmah{Ur1A76umjJe9)cq1sm6Ab;n-x(9(rlw5=qG= ztrlqX4+&DW|E%}pECWoUcQAM1?j&UJKa z5qdHbj*+!4+FUG!^jJ)f2E(n?xwaG<(ESmm?o2&xDr$BF1G=bdb)}&KdPlG|tki0B zTT#{@2}Pn*t1Shd4Eat)qQvPe_2~$n*6A7t^%iZM3;{mBKhhcQb~R17n&d@eVs!(V z2d}(J@)9+scf=aRq+1;|xLXQY2|mI!WXGL{M&PK2u9Ef;mEX(pzFspQH;1!U*J#6T zE1j#(dB|Uz&Dg9k9JW3mNSJ*?e0Yk^34IwBC0Io558werY$WRMO;i{*;Hv~*5ik$# zY6R31^+>c+x0?jsU=!Y8`#Cf^&>kl+&)u@lr_HlN6^0#TB)?vpQLkz$jf8ekqOL7@Cjy7;Th~;!n9K5nTu9;${fow zF(z6*>@pKW_!h29F+UYzdJ86Iw%44xNaqR!6ySYHKAe9TC#xM*k0tmFZ{aCCMw=`g ztWlPd@xci@Xd!p%YH4osQhwn<7FQ$2#v=_};iGvwv;vb7aCikzU=kJYz~O?T+0$>{ z%xk?4RK(?3eHk;Az!=rJLQXz1ip#4oG!)%}t4f_U6FG6hkx^Tk!b@?4_wW*hpFm3$ zDrrPrnCiwP_Ck3kvoMAiUvUotGvXdI$ef1FAa*IM=5U^8(zu_%?*sJSF|Q`EAb%S( z6h{?>FB1HK@9+hA?|~^)m8tj;N>%lS(J(lxR1)~U1VRW0*K)UN>8CE^uP^5dL>alh sj9k`om$ekI3c0{S+Zos_+R94#6~ImZ0RA!Q|B|Z9ae9(;B&qEC1z3@s3IG5A From 018106e2a31ff22a198f25048ad02645f8d06e31 Mon Sep 17 00:00:00 2001 From: SeongHunTed <4047ksh@naver.com> Date: Fri, 20 Jan 2023 01:45:58 +0900 Subject: [PATCH 4/7] feat : Store Delete --- Backend/momment/db.sqlite3 | Bin 315392 -> 315392 bytes Backend/momment/store/urls.py | 1 + Backend/momment/store/views.py | 15 +++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/Backend/momment/db.sqlite3 b/Backend/momment/db.sqlite3 index c278d45fcc1ee55b5d79f350dedc3017a42db283..a18836564946601ee2c621c7da781af075608ae2 100644 GIT binary patch delta 771 zcmaiwPfG$(6vf}QQKm4@^p6xPG>C$N7SS$Bi5Ag9`v!fC76mS%wWA-Ph;Y$L5o{YR zgEoTr%?sv|)_uZR1pGcigq{DJ%&TPwB;ox#r7eo{yfz9Gr zay=j~*?ps$jcnD)n+i=lk>6u{O7*{DGZDJ+DMKk-)02nnGP{#W=^i}VAz2|*ol3;R=(1RAi z8$#o~zjY^lP;O#6(3M@Oh8o2uNYsqa+5_&vBD;mGalk5}hAOH=Wyri4pR-9%u$1y> zhTq=m26oY1gv8ijgLWO)og%(+PG)UWwudM|1Gd1T z^L1cz*YZi(I=nXOQ{A9T@td~Mrki*2J9l#1bSH)TZtPl|^weP5kwSw~19ow41rjvl dliXJCFf@9o&sz3p-G4tZ>`ppO59QKY>>JEBxc2}6 delta 1709 zcmbVMZ%k8H6u45oRS<}4s zom4uZ9WM&MNMq+qchlJP2a}aH!MTfoJc)njVDu*kZ z8&CQ7*6(TQR{h6<-OVjM-Sz&r8!A8Ed7`J)-!0dD*y->1q@t~>lZ{7MES`ymWJOlY zPkLrColNK>At^mO&Muv2L!%NKOR+aUOR&&r`dVC-Rd>0plq)_-@z$uG8da;%s@3Xh zZIj1aqqr-oy_zQbE=aWxZ35gOpu?S6*QY;0@m8^%ZssG*>ibKU@+d42SU@Shh32=Y zKtNP5K#I7Wz1N)l~Hr4NwGX2Bs++^lllEwP(^v1z&!%1a1Sg03>CmD+o+znm^m9^Gjk$fT{NWU z`|yHr1MkIPyK1t1*@-#4@Z2Cb;PU>TN>aRLrF z9Y&)5#e&JWAPW?UnddFp^QBb!+8khyeG9)%Y4{DU8<*+|95zw;`b?yX z21OU5;>0pT2^I+<9UQSU3#?DYQA`BhiqgG`9Yp$BD9PtK6*u8UxXtJC2i!)=*Fh`5 z$RdHJ7teA&S%vjP0^ci`;K1G3I3oe>@)_Mlac@FpAs3fYeBtPcD9RNOU0hu(Jb0DG z!f2suV)iQM7QL7+x}6$k5pc<#z?!jW51`a4QYzYwr_FfgXOo{`6jtOn*)W@!IdjoE zvjA%bCdT7p8sT}y)5@_nReZ_t{Hx*yjBT4SHh8m~*Hy5 Date: Fri, 20 Jan 2023 01:50:24 +0900 Subject: [PATCH 5/7] feat : Store Delete - V.0.1 --- Backend/momment/db.sqlite3 | Bin 315392 -> 315392 bytes Backend/momment/store/views.py | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Backend/momment/db.sqlite3 b/Backend/momment/db.sqlite3 index a18836564946601ee2c621c7da781af075608ae2..feeeccfe3332d07b01dd42f43d09a1053703c037 100644 GIT binary patch delta 1027 zcma))O>7cT5XX1-ZIo>avk0`-s*u!=m`d4QmIWHER`Dxp)LN|g5nOf`#8MVvCDBXK zH1Xg;E75pRLpol~rpaK3%PUFy!EP;!MZ80_95XSSr(Y~Wx- z2xddaGrI>uhophMiGXX9cWY=cI20OSWqx>l`cy>Jn2oU!F`np=)RAi8O7-T%r)y&j z%dkIJ`N7ljqkEN$V~%pMP`x@{y>Q)8z44^F?%ciV*!A+m36A01PKI@|eg`Y`^1fc) z-Q(eT-tCze@%J)Z55xNy!Jl_*_+TL5Ed~{MTQsL$fz7JF(|jIOtnBH?>B1TYU!bN7 zD_|oLg%b!-REs{Ze}s&4p#Y|T=YT#!AFMh;P*^`W4^tHWcPzihE4cG7zxj%{zD4K- zIFv9b>A81d|2CXF+K)4yh{XCiCMqa?PlV&Vo~R&8k{l6y5!NdRQE!yvBOZBP`5*HT zSigrsbz&UeVDM({&TG5TQR;uoPBJ)I(6MGQnANjqU?GN)2&d5GG)~ba>N8P;mioQx he-Ga4l6QbF8}IL!qzUTz9X(E;r>2P#HH~UB-vRfDCddE) delta 651 zcmZvYv2W8r6o>Em8jC|oo*gG?N~$Ij15~Ao5M?bzNURiz-8J^rGBtMO7$jJljkT#I zU~A=pl_E>21Oxm7NF5Lx6rnCC1C(KI~E<#PE9ozGy~FxL#5%f%n0LQXEVM$cu@Ro@Hc>Lk4g=K8VO*q`_l<$9c#Z zA)BokkfKJbvsgrWmUTiu;CfmoWqJv$JBDZbx+y-uy-*Jyw0T{dp!4kag<;)wJl*x} zXs@+!3b0AASzJuirOQS59NkntM$Ib+f)5A|@O`2#zs1tO(@F+6rn)lV5y2yo`HHHT zC#8&?7W;p2A;mGlSeTw-5)W@HGEoS@T>*CR$;;=`^~Z<6;9aVO3!;_t@s848f{Be^ y$?vJCx15u5r2h$+0)I$8M@EM9!2=QdfH2*=TI(wkdy}Og_h`5;?GE=T9R37^TDcGa diff --git a/Backend/momment/store/views.py b/Backend/momment/store/views.py index 78420019..982d2a64 100644 --- a/Backend/momment/store/views.py +++ b/Backend/momment/store/views.py @@ -48,8 +48,9 @@ def delete(request): user_email = data['user_email'] user = User.objects.get(email=user_email) - - user.delete() + store = Store.objects.get(user=user) + + store.delete() return JsonResponse({'message' : "SUCCESS"}, status=200) From 833652a63e0bd50ff57a642a9c2a4b6c1ea811d7 Mon Sep 17 00:00:00 2001 From: SeongHunTed <4047ksh@naver.com> Date: Fri, 20 Jan 2023 03:08:13 +0900 Subject: [PATCH 6/7] feat : Cake Option Delete --- Backend/momment/cake/urls.py | 1 + Backend/momment/cake/views.py | 44 +++++++++++++++++++++++++++++++++- Backend/momment/db.sqlite3 | Bin 315392 -> 315392 bytes 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/Backend/momment/cake/urls.py b/Backend/momment/cake/urls.py index fdcd075e..1a099af7 100644 --- a/Backend/momment/cake/urls.py +++ b/Backend/momment/cake/urls.py @@ -3,5 +3,6 @@ urlpatterns = [ path('update/', views.update), + path('delete_option/', views.delete_option), path('delete_all/', views.delete_all), ] \ No newline at end of file diff --git a/Backend/momment/cake/views.py b/Backend/momment/cake/views.py index 8ac27cdb..c76f3282 100644 --- a/Backend/momment/cake/views.py +++ b/Backend/momment/cake/views.py @@ -72,11 +72,54 @@ def update(request): return JsonResponse({'message' : 'SUCCESS'}, status=200) + except KeyError: + return JsonResponse({'message' : 'KEY_ERROR'}, status=400) + + + + + +@api_view(['POST', 'PUT']) +def delete_option(request): + try: + data = json.loads(request.body) + user_email = data['user_email'] # 차후에 jwt 인증방식으로 변경 + cake_name = data['cake_name'] + option = data['option'] + + user = User.objects.get(email=user_email) + store = Store.objects.get(user=user) + cake = Cake.objects.get(name=cake_name, store=store) + + if option == 'cake_size': + CakeSize.objects.filter(cake=cake).delete() + elif option == 'cake_flavor': + CakeFlavor.objects.filter(cake=cake).delete() + elif option == 'cake_color': + CakeColor.objects.filter(cake=cake).delete() + elif option == 'cake_design': + CakeDesign.objects.filter(cake=cake).delete() + elif option == 'cake_sidedeco': + CakeSideDeco.objects.filter(cake=cake).delete() + elif option == 'cake_deco': + CakeDeco.objects.filter(cake=cake).delete() + elif option == 'cake_lettering': + CakeLettering.objects.filter(cake=cake).delete() + elif option == 'cake_font': + CakeFont.objects.filter(cake=cake).delete() + elif option == 'cake_picture': + CakePicture.objects.filter(cake=cake).delete() + elif option == 'cake_package': + CakePackage.objects.filter(cake=cake).delete() + elif option == 'cake_candle': + CakeCandle.objects.filter(cake=cake).delete() + return JsonResponse({'message' : 'SUCCESS'}, status=200) except KeyError: return JsonResponse({'message' : 'KEY_ERROR'}, status=400) + @api_view(['POST', 'PUT']) def delete_all(request): try: @@ -89,7 +132,6 @@ def delete_all(request): store = Store.objects.get(user=user) cake = Cake.objects.get(name=cake_name, store=store) - cake.delete() return JsonResponse({'message' : 'SUCCESS'}, status=200) diff --git a/Backend/momment/db.sqlite3 b/Backend/momment/db.sqlite3 index feeeccfe3332d07b01dd42f43d09a1053703c037..a7cdce05a1e7c22010a49d25c863699af83d9ef0 100644 GIT binary patch delta 1410 zcmbVKUuaWT7(eHpoTZKF{c?MwtG1mPWyl!X)<0ACqT=(kpddcEkX%c!G$V~Z^re-i zC77yFjEmA1!J-rU5Zl-WOgG&d7u7&Frgc7zy`AdkkN28{1h; zejkpU3wIkn^?%|4U~RN78BZ8z?2~CtY)2J(Hr|``ZTXaSR#QDjGHE1Yz1^T~VLJw@ zg{TpU2ZLMJO^QX5=MyL@SSu=O^u@Y+gN-`-vf3Sq_rw#RH`W5r_Jl9Q6FyC=mDCsO zHvp~^mB`PKw|&mrPX8->LLo&UHKQHwhk<@pPY#}LZEZV5#l)1APl@rOnVJk$p5*ag z<)@OEerQgoL*jlZ)OGyC$#0Jw3t7XX;?ksbsU#+b%}mwtk9E* z^M+ehU=gdZi1pu~UGs6W9S7niujIw>7=rxuoNTS5l~Tc+DcOV!o)fU(FL;hl{tSmy zKm<1BN6ZIBw#-%4j;&nY8qH#?H8`Z@K{VF7IE5*xOMzDeR^b&+{uOqCoLooE!VPOE zC#H)Wa4se)vlm5bOeUNjRJ-b`{anQ!Ik=b>^EZ&yZ9xt*lQqZ7e0C5m@_XPZfq!8M zUcggST!1b$Xg8YI=Um0QLzJ6v<3=aGS*|=Tq6ezx;IG~?r^>E;56ls$z@P98=8*M1 zoN`&^OW!T)X|5qFnrUSUB9}rrn@U`Dh|PObXeJT|k@yR|L2g*2N+L6c1(%+|f_#_1 zVFCSl2KzUm$+|)-^FvaP@Nw2e$e0IrMvklA2H{x|0@1zx2!_|g0oQ_K;cbog{vtABi za%Hh>&IRr_p^sC67ocD{yVUA1Ln)dS1!1XxB5zrzogXA?smaS#7u})>n{p{dSneL&AqE;?dwY0$| zqiV~p*p6zXyAu~H=8ElbUGE;LR$db-v`8QE&t^})-IJ#e`$?h^0$T_A{07kVosZgT ztHBd+hu|N0^GYg7NXoD9(=L$y0XpIpvaNmI=33$&0)xM(TtYVOXGSM1yg~UI27=yF z52Z6WL-9AzF|RO!u1Wam2eMb(*K>QWx2gL7XvlGBT_ygz^!ko13KnKw;pc9D3;tOH8ki&EA7Cbz*s2Bdz z{6&Qn*F!>j3%6){4ZZ5qilh;jB~RkZP<&RGeJ)*r47BY49rOwr9F_+Ru41&!&+%`? Odqsn6H`!iOnf(u&SJ}G& From 41d322630fa719e08fe612197dbc26c0932a3619 Mon Sep 17 00:00:00 2001 From: SeongHunTed <4047ksh@naver.com> Date: Fri, 20 Jan 2023 03:17:03 +0900 Subject: [PATCH 7/7] feat : Cake Detail Delete --- Backend/momment/cake/urls.py | 1 + Backend/momment/cake/views.py | 39 ++++++++++++++++++++++++++++++++++ Backend/momment/db.sqlite3 | Bin 315392 -> 315392 bytes 3 files changed, 40 insertions(+) diff --git a/Backend/momment/cake/urls.py b/Backend/momment/cake/urls.py index 1a099af7..22798427 100644 --- a/Backend/momment/cake/urls.py +++ b/Backend/momment/cake/urls.py @@ -3,6 +3,7 @@ urlpatterns = [ path('update/', views.update), + path('delete_detail/', views.delete_detail), path('delete_option/', views.delete_option), path('delete_all/', views.delete_all), ] \ No newline at end of file diff --git a/Backend/momment/cake/views.py b/Backend/momment/cake/views.py index c76f3282..ec963ed3 100644 --- a/Backend/momment/cake/views.py +++ b/Backend/momment/cake/views.py @@ -75,7 +75,46 @@ def update(request): except KeyError: return JsonResponse({'message' : 'KEY_ERROR'}, status=400) +@api_view(['POST', 'PUT']) +def delete_detail(request): + try: + data = json.loads(request.body) + user_email = data['user_email'] # 차후에 jwt 인증방식으로 변경 + cake_name = data['cake_name'] + option = data['option'] + detail = data['detail'] + + user = User.objects.get(email=user_email) + store = Store.objects.get(user=user) + cake = Cake.objects.get(name=cake_name, store=store) + + if option == 'cake_size': + CakeSize.objects.filter(cake=cake, size=detail).delete() + elif option == 'cake_flavor': + CakeFlavor.objects.filter(cake=cake, flavor=detail).delete() + elif option == 'cake_color': + CakeColor.objects.filter(cake=cake, color=detail).delete() + elif option == 'cake_design': + CakeDesign.objects.filter(cake=cake, design=detail).delete() + elif option == 'cake_sidedeco': + CakeSideDeco.objects.filter(cake=cake, side_deco=detail).delete() + elif option == 'cake_deco': + CakeDeco.objects.filter(cake=cake, deco=detail).delete() + elif option == 'cake_lettering': + CakeLettering.objects.filter(cake=cake, lettering=detail).delete() + elif option == 'cake_font': + CakeFont.objects.filter(cake=cake, font=detail).delete() + elif option == 'cake_picture': + CakePicture.objects.filter(cake=cake, picture=detail).delete() + elif option == 'cake_package': + CakePackage.objects.filter(cake=cake, package=detail).delete() + elif option == 'cake_candle': + CakeCandle.objects.filter(cake=cake, candle=detail).delete() + + return JsonResponse({'message' : 'SUCCESS'}, status=200) + except KeyError: + return JsonResponse({'message' : 'KEY_ERROR'}, status=400) diff --git a/Backend/momment/db.sqlite3 b/Backend/momment/db.sqlite3 index a7cdce05a1e7c22010a49d25c863699af83d9ef0..3dd4c98f4e37f7b24f1ead6521872d0143c397ea 100644 GIT binary patch delta 840 zcmaiwPiT^H7{}k=@8|1ez3Wlm*G-qrZLF-8ibZrNP@@i=X2(t@`X-|IhO-V`W^}0N zuw;i{1<|0>A`mI2kXW}45i_dOM%$r-;2#Kf+F|s(bD-8BzVQ6`eLv6hec;J2%lT#b z$v7pBg7XsA(v20*1>=aBxkxOUQX_gX%1792?;DF|;%QY<#+j#Q-ipRj(S#~3UG};c zq|q_v@3FL+%c4I0j;pvE1z}ZdCd=#?|>`B4fA8>|}2`rlqy4 zRkrpw-b_dDXjw(FSo-(OC-17Z`@7!qu9rw(Db(Lu!k>W1{5w$32($$XB>~o;1SKS| zAn3G-!Z}Ks#Y*$>!&WuldhxD(@6F_y_S4Ftis)1hq<*ABbx{xmng4cC2Zaqx`v%0y zw|w*zg6K4&*9=D>@kBwIU50;k7Pg z&w$J#bMqe`=y?OI!YZ08K#rj~#n;!UkHR)uO&Bu@g2)JA;xO#s{W=0{LkBttw_rji zqHV7#cn|Cy#)n`h?Cb~F_5(!mALJN7xN&a^8qmOWJfOr|E;en14P9t`?w**PHVpIx p*yNxw$7W1W?+VA>1F;uE3U5T%i35F&9skdg2dza`ZY>&=;2+Y>2@3!K delta 533 zcmZozAl$G(c!CrY!~KaePC#;F!b)9hR$c*SdB)_#?9_M=!741xtc~C%C+4N(q;iQ! zG3z1(3lfvF6Vp?)9GaDl0a#Bl5Qj0S4()k6&nAH*DDXGc%A|jF~#$+a! zlokPP6hXEzCABy+Jx@ePm{}8{J2^imzldL02w7oTPGVVpkqDQdAhJEhnN_L$&Hwba z|I=gSxwu&{;3og{$NWrkybM4fz`(%25d=32IxOR7^q(9k;5|)&i3_Og3IFtW`b;uF z)(igWpX`~WfUL{>)9?E;=>rw-=bwHyp2;34c8P!by?iD;uZ57l@(0$v4Yhx@qc09|Hc0Ws0!$|FY?SFw><#4mst)fX3s1EW%)CM{BVPR c`ippG4Ja$0Sq;cS*3tf@pLzS2eij}F0E^eO*8l(j