Showing
3 changed files
with
51 additions
and
41 deletions
1 | -# Generated by Django 3.1.2 on 2020-11-13 10:30 | 1 | +# Generated by Django 3.1.2 on 2020-11-16 14:19 |
2 | 2 | ||
3 | from django.db import migrations, models | 3 | from django.db import migrations, models |
4 | import django.utils.timezone | 4 | import django.utils.timezone |
... | @@ -15,7 +15,7 @@ class Migration(migrations.Migration): | ... | @@ -15,7 +15,7 @@ class Migration(migrations.Migration): |
15 | migrations.CreateModel( | 15 | migrations.CreateModel( |
16 | name='Device', | 16 | name='Device', |
17 | fields=[ | 17 | fields=[ |
18 | - ('device_id', models.AutoField(auto_created=True, primary_key=True, serialize=False)) | 18 | + ('device_id', models.AutoField(primary_key=True, serialize=False)), |
19 | ('rfid_id', models.CharField(max_length=255)), | 19 | ('rfid_id', models.CharField(max_length=255)), |
20 | ('created', models.DateTimeField(default=django.utils.timezone.now)), | 20 | ('created', models.DateTimeField(default=django.utils.timezone.now)), |
21 | ], | 21 | ], |
... | @@ -27,14 +27,6 @@ class Migration(migrations.Migration): | ... | @@ -27,14 +27,6 @@ class Migration(migrations.Migration): |
27 | ], | 27 | ], |
28 | ), | 28 | ), |
29 | migrations.CreateModel( | 29 | migrations.CreateModel( |
30 | - name='RemoteHistory', | ||
31 | - fields=[ | ||
32 | - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||
33 | - ('device_name', models.CharField(max_length=255)), | ||
34 | - ('ctrtime', models.DateTimeField(default=django.utils.timezone.now)), | ||
35 | - ], | ||
36 | - ), | ||
37 | - migrations.CreateModel( | ||
38 | name='Lock', | 30 | name='Lock', |
39 | fields=[ | 31 | fields=[ |
40 | ('id', models.IntegerField(primary_key=True, serialize=False)), | 32 | ('id', models.IntegerField(primary_key=True, serialize=False)), |
... | @@ -49,6 +41,14 @@ class Migration(migrations.Migration): | ... | @@ -49,6 +41,14 @@ class Migration(migrations.Migration): |
49 | ], | 41 | ], |
50 | ), | 42 | ), |
51 | migrations.CreateModel( | 43 | migrations.CreateModel( |
44 | + name='RemoteHistory', | ||
45 | + fields=[ | ||
46 | + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||
47 | + ('device_name', models.CharField(max_length=255)), | ||
48 | + ('ctrtime', models.DateTimeField(default=django.utils.timezone.now)), | ||
49 | + ], | ||
50 | + ), | ||
51 | + migrations.CreateModel( | ||
52 | name='Video', | 52 | name='Video', |
53 | fields=[ | 53 | fields=[ |
54 | ('vid_name', models.CharField(max_length=255, primary_key=True, serialize=False)), | 54 | ('vid_name', models.CharField(max_length=255, primary_key=True, serialize=False)), | ... | ... |
... | @@ -22,36 +22,37 @@ from src.settings import S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCK | ... | @@ -22,36 +22,37 @@ from src.settings import S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCK |
22 | """ | 22 | """ |
23 | import time | 23 | import time |
24 | from datetime import datetime, timedelta | 24 | from datetime import datetime, timedelta |
25 | +import json | ||
25 | # Create your views here. | 26 | # Create your views here. |
26 | 27 | ||
27 | #로그인 및 토큰 반환 | 28 | #로그인 및 토큰 반환 |
28 | class Login(APIView) : | 29 | class Login(APIView) : |
29 | def get(self, request, format = None) : # request query에 door_id 포함되어있음 : api/auth?door_id=12345 | 30 | def get(self, request, format = None) : # request query에 door_id 포함되어있음 : api/auth?door_id=12345 |
30 | try : | 31 | try : |
31 | - request_id = request.GET.get('door_id', None) | 32 | + request_id = request.GET.get('door_id', None) |
32 | - if request_id == 'None' : | 33 | + if request_id == None : |
33 | - raise FieldDoesNotExist | 34 | + raise FieldDoesNotExist |
34 | - queryset = Door.objects.filter(door_id = request_id) # door_id 유효성 검색 | 35 | + queryset = Door.objects.filter(door_id = request_id) # door_id 유효성 검색 |
35 | - if queryset.exists() # 유효할 때 | 36 | + if queryset.exists() :# 유효할 때 |
36 | - res = { | 37 | + res = { |
37 | - 'is_available' : True | 38 | + 'is_available' : True, |
38 | - 'access_token' : '토큰' # 토큰 도입 후 수정 필요 | 39 | + 'access_token' : '토큰' # 토큰 도입 후 수정 필요 |
39 | } | 40 | } |
40 | - else | 41 | + else : |
41 | - res = { | 42 | + res = { |
42 | - 'is_available' : False | 43 | + 'is_available' : False |
43 | } | 44 | } |
44 | 45 | ||
45 | - return Response(res, status = status.HTTP_200_OK) | 46 | + return Response(res, status = status.HTTP_200_OK) |
46 | 47 | ||
47 | - except FieldDoesNotExist as error : | 48 | + except FieldDoesNotExist as error : |
48 | - return Response({ | 49 | + return Response({ |
49 | - 'error' : "FieldDoesNotExist ", | 50 | + 'error' : "FieldDoesNotExist ", |
50 | - 'date' : datetime.now() | 51 | + 'date' : datetime.now() |
51 | - }, status = status.HTTP_400_BAD_REQUEST) | 52 | + }, status = status.HTTP_400_BAD_REQUEST) |
52 | 53 | ||
53 | #기기 관련 api | 54 | #기기 관련 api |
54 | -class Device(APIView) : | 55 | +class Devices(APIView) : |
55 | # 기기 목록 조회 | 56 | # 기기 목록 조회 |
56 | def get(self, request, format = None) : | 57 | def get(self, request, format = None) : |
57 | queryset = Device.objects.all() | 58 | queryset = Device.objects.all() |
... | @@ -65,17 +66,22 @@ class Device(APIView) : | ... | @@ -65,17 +66,22 @@ class Device(APIView) : |
65 | # 기기 추가 | 66 | # 기기 추가 |
66 | def post(self, request, format = None) : # request body에 rfid_id 포함되어있음 | 67 | def post(self, request, format = None) : # request body에 rfid_id 포함되어있음 |
67 | try : | 68 | try : |
69 | + print('냐냐냐냐냐냐') | ||
70 | + print(request.body) | ||
68 | data = json.loads(request.body) | 71 | data = json.loads(request.body) |
69 | request_id = data.get('rfid_id', None) | 72 | request_id = data.get('rfid_id', None) |
70 | - if request_id == 'None' : | 73 | + if request_id == None : |
71 | raise FieldDoesNotExist | 74 | raise FieldDoesNotExist |
72 | queryset = Device.objects.create(rfid_id = request_id) | 75 | queryset = Device.objects.create(rfid_id = request_id) |
76 | + return Response({ | ||
77 | + 'msg' : 'success device add' | ||
78 | + }) | ||
73 | 79 | ||
74 | except FieldDoesNotExist as error : | 80 | except FieldDoesNotExist as error : |
75 | - return Response({ | 81 | + return Response({ |
76 | - 'error' : "FieldDoesNotExist ", | 82 | + 'error' : "FieldDoesNotExist ", |
77 | - 'date' : datetime.now() | 83 | + 'date' : datetime.now() |
78 | - }, status = status.HTTP_400_BAD_REQUEST) | 84 | + }, status = status.HTTP_400_BAD_REQUEST) |
79 | 85 | ||
80 | 86 | ||
81 | 87 | ||
... | @@ -83,16 +89,19 @@ class Device(APIView) : | ... | @@ -83,16 +89,19 @@ class Device(APIView) : |
83 | def delete(self, request, device_id, format = None): # request URI에 device_id(자동생성되는 기기 고유 번호 != rfid_id) 포함 | 89 | def delete(self, request, device_id, format = None): # request URI에 device_id(자동생성되는 기기 고유 번호 != rfid_id) 포함 |
84 | try : | 90 | try : |
85 | request_id = device_id | 91 | request_id = device_id |
86 | - if request_id == 'None': | 92 | + if request_id == None: |
87 | - raise FieldDoesNotExist | 93 | + raise FieldDoesNotExist |
88 | queryset = Device.objects.get(device_id=request_id) | 94 | queryset = Device.objects.get(device_id=request_id) |
89 | queryset.delete() | 95 | queryset.delete() |
96 | + return Response({ | ||
97 | + 'msg' : 'success delete device' | ||
98 | + }) | ||
90 | 99 | ||
91 | except FieldDoesNotExist as error : | 100 | except FieldDoesNotExist as error : |
92 | - return Response({ | 101 | + return Response({ |
93 | - 'error' : "FieldDoesNotExist ", | 102 | + 'error' : "FieldDoesNotExist ", |
94 | - 'date' : datetime.now() | 103 | + 'date' : datetime.now() |
95 | - }, status = status.HTTP_400_BAD_REQUEST) | 104 | + }, status = status.HTTP_400_BAD_REQUEST) |
96 | 105 | ||
97 | # 원격 잠금 해제 | 106 | # 원격 잠금 해제 |
98 | class Remote(APIView): | 107 | class Remote(APIView): | ... | ... |
... | @@ -25,6 +25,7 @@ urlpatterns = [ | ... | @@ -25,6 +25,7 @@ urlpatterns = [ |
25 | path('auto/checkDate', views.CheckDate.as_view()), | 25 | path('auto/checkDate', views.CheckDate.as_view()), |
26 | path('api/setting', views.Recording.as_view()), | 26 | path('api/setting', views.Recording.as_view()), |
27 | path('api/auth', views.Login.as_view()), | 27 | path('api/auth', views.Login.as_view()), |
28 | - path('api/device', views.Device.as_view()), | 28 | + path('api/device', views.Devices.as_view()), |
29 | - path('api/remote', view.Remote.as_view()), | 29 | + path('api/device/<str:device_id>', views.Devices.as_view()), |
30 | + path('api/remote', views.Remote.as_view()), | ||
30 | ] | 31 | ] | ... | ... |
-
Please register or login to post a comment