Showing
12 changed files
with
0 additions
and
301 deletions
khubox-api/khubox/serializers.py
deleted
100644 → 0
1 | -from rest_framework import serializers | ||
2 | -from .models import File | ||
3 | - | ||
4 | - | ||
5 | -class FileSerializer(serializers.ModelSerializer): | ||
6 | - class Meta: | ||
7 | - model = File | ||
8 | - fields = ['id', 'parent_id', 'owner_id', 'uploader_id', 'type', 'name', 'size', 'is_public', 'is_shared', | ||
9 | - 'is_starred', 'is_trahsed', 'created_at'] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
khubox-api/khubox/urls.py
deleted
100644 → 0
1 | -from django.conf.urls import url | ||
2 | -from rest_framework.urlpatterns import format_suffix_patterns | ||
3 | -from . import views | ||
4 | - | ||
5 | -# API endpoints | ||
6 | -urlpatterns = format_suffix_patterns([ | ||
7 | - url(r'^folders/(?P<pk>\w+)/$', views.FolderRequest.as_view()), | ||
8 | - url(r'^folders/$', views.FolderRequest.as_view()), | ||
9 | - url(r'^files/', views.StarredFiles.as_view()), | ||
10 | - url(r'^files/starred/(?P<pk>\w+).$', views.StarredFiles.as_view()), | ||
11 | - url(r'^trash/(?P<pk>\w+)/$', views.TrashReqeust.as_view()), | ||
12 | - url(r'^trash/$', views.FolderRequest.as_view()), | ||
13 | -]) | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
khubox-api/user/__init__.py
deleted
100644 → 0
File mode changed
khubox-api/user/admin.py
deleted
100644 → 0
khubox-api/user/apps.py
deleted
100644 → 0
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.11.29 on 2020-06-08 16:22 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -import datetime | ||
6 | -from django.db import migrations, models | ||
7 | -import user.models | ||
8 | - | ||
9 | - | ||
10 | -class Migration(migrations.Migration): | ||
11 | - | ||
12 | - initial = True | ||
13 | - | ||
14 | - dependencies = [ | ||
15 | - ] | ||
16 | - | ||
17 | - operations = [ | ||
18 | - migrations.CreateModel( | ||
19 | - name='User', | ||
20 | - fields=[ | ||
21 | - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||
22 | - ('password', models.CharField(max_length=128, verbose_name='password')), | ||
23 | - ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), | ||
24 | - ('email', models.EmailField(max_length=254, unique=True)), | ||
25 | - ('name', models.CharField(max_length=100)), | ||
26 | - ('date_of_birth', models.DateField(default=datetime.date.today)), | ||
27 | - ('storage_usage', models.FloatField(default=0)), | ||
28 | - ('is_admin', models.BooleanField(default=False)), | ||
29 | - ], | ||
30 | - options={ | ||
31 | - 'abstract': False, | ||
32 | - }, | ||
33 | - managers=[ | ||
34 | - ('objects', user.models.UserManager()), | ||
35 | - ], | ||
36 | - ), | ||
37 | - ] |
File mode changed
khubox-api/user/models.py
deleted
100644 → 0
1 | -from django.db import models | ||
2 | -from django.contrib.auth.models import AbstractBaseUser,BaseUserManager | ||
3 | -import datetime | ||
4 | - | ||
5 | - | ||
6 | -class UserManager(BaseUserManager): | ||
7 | - use_in_migrations = True | ||
8 | - | ||
9 | - def create_user(self, email, name, date_of_birth, password=None): | ||
10 | - user = self.model( | ||
11 | - email=self.normalize_email(email), | ||
12 | - date_of_birth=date_of_birth, | ||
13 | - name=name, | ||
14 | - ) | ||
15 | - user.set_password(password) | ||
16 | - user.save(using=self._db) | ||
17 | - return user | ||
18 | - | ||
19 | - def create_staffuser(self, email, name, date_of_birth, password): | ||
20 | - user = self.create_user( | ||
21 | - email, | ||
22 | - password=password, | ||
23 | - date_of_birth=date_of_birth, | ||
24 | - name=name, | ||
25 | - ) | ||
26 | - user.staff = True | ||
27 | - user.save(using=self._db) | ||
28 | - return user | ||
29 | - | ||
30 | - def create_superuser(self, email, name, date_of_birth, password): | ||
31 | - user = self.create_user( | ||
32 | - email, | ||
33 | - password=password, | ||
34 | - date_of_birth=date_of_birth, | ||
35 | - name= "True", | ||
36 | - ) | ||
37 | - user.is_admin = True | ||
38 | - user.save(using=self._db) | ||
39 | - return user | ||
40 | - | ||
41 | - | ||
42 | - | ||
43 | - | ||
44 | -class User(AbstractBaseUser): | ||
45 | - | ||
46 | - username = None | ||
47 | - email = models.EmailField( unique=True) | ||
48 | - name = models.CharField(max_length=100) | ||
49 | - date_of_birth = models.DateField(default=datetime.date.today) | ||
50 | - storage_usage = models.FloatField( default = 0) | ||
51 | - | ||
52 | - is_admin = models.BooleanField(default=False) | ||
53 | - | ||
54 | - USERNAME_FIELD = 'email' | ||
55 | - REQUIRED_FIELDS = [ 'date_of_birth','name' ] | ||
56 | - | ||
57 | - objects = UserManager() | ||
58 | - | ||
59 | - def __str__(self): | ||
60 | - return self.email | ||
61 | - | ||
62 | - @property | ||
63 | - def is_staff(self): | ||
64 | - return self.is_admin | ||
65 | - | ||
66 | - def has_perm(self, perm, obj = None): | ||
67 | - return True | ||
68 | - | ||
69 | - def has_module_perms(self, app_label): | ||
70 | - return True | ||
71 | - |
khubox-api/user/serializers.py
deleted
100644 → 0
1 | -from rest_framework import serializers | ||
2 | -from .models import User | ||
3 | -from django.contrib.auth.models import Group | ||
4 | -from django.contrib.auth import authenticate | ||
5 | - | ||
6 | - | ||
7 | -# 회원가입 시리얼라이저 | ||
8 | - | ||
9 | -class CreateUserSerializer(serializers.ModelSerializer): | ||
10 | - class Meta: | ||
11 | - model = User | ||
12 | - fields = ("email", "name", "date_of_birth", "password") | ||
13 | - extra_kwargs = {"password": {"write_only": True}} | ||
14 | - | ||
15 | - def create(self, validated_data): | ||
16 | - user = User.objects.create_user( | ||
17 | - validated_data["email"], | ||
18 | - validated_data["name"], | ||
19 | - validated_data["date_of_birth"], | ||
20 | - validated_data["password"] | ||
21 | - ) | ||
22 | - return user | ||
23 | - | ||
24 | - | ||
25 | -# 접속 유지중인지 확인할 시리얼라이저 | ||
26 | - | ||
27 | -class UserSerializer(serializers.ModelSerializer): | ||
28 | - class Meta: | ||
29 | - model = User | ||
30 | - fields = ("id","email", "name","date_of_birth","storage_usage") | ||
31 | - | ||
32 | - | ||
33 | -# 로그인 시리얼라이저 | ||
34 | - | ||
35 | -class LoginUserSerializer(serializers.Serializer): | ||
36 | - email = serializers.EmailField() | ||
37 | - password = serializers.CharField() | ||
38 | - | ||
39 | - def validate(self, data): | ||
40 | - user = authenticate(**data) | ||
41 | - if user and user.is_active: | ||
42 | - return user | ||
43 | - raise serializers.ValidationError("Unable to log in with provided credentials.") | ||
44 | - | ||
45 | - | ||
46 | -class UpdateUserSerializer(serializers.ModelSerializer): | ||
47 | - class Meta: | ||
48 | - model = User | ||
49 | - fields = ("email", "name", "date_of_birth","storage_usage", "password") | ||
50 | - extra_kwargs = {"password": {"write_only": True}} | ||
51 | - read_only_fields = ('email',"storage_usage") | ||
52 | - | ||
53 | - def update(self, instance, validated_data): | ||
54 | - | ||
55 | - password = validated_data.pop('password', None) | ||
56 | - | ||
57 | - for (key, value) in validated_data.items(): | ||
58 | - setattr(instance, key, value) | ||
59 | - | ||
60 | - if password is not None: | ||
61 | - instance.set_password(password) | ||
62 | - | ||
63 | - instance.save() | ||
64 | - | ||
65 | - return instance | ||
66 | - |
khubox-api/user/tests.py
deleted
100644 → 0
khubox-api/user/urls.py
deleted
100644 → 0
1 | -from django.conf.urls import url, include | ||
2 | -from .views import (RegistrationAPI, | ||
3 | - LoginAPI, | ||
4 | - UserAPI, | ||
5 | - RegistrationAPI, | ||
6 | - UserListAPI, | ||
7 | - UserUpdateAPI, | ||
8 | - ) | ||
9 | - | ||
10 | -urlpatterns =[ | ||
11 | - url("^register/$", RegistrationAPI.as_view()), | ||
12 | - url("^login/$", LoginAPI.as_view()), | ||
13 | - url("^user/$", UserAPI.as_view()), | ||
14 | - url("^update/$", UserUpdateAPI.as_view()), | ||
15 | - url("^userlist/$", UserListAPI.as_view()), | ||
16 | - url("",include("knox.urls")), #logout/ url접속시 로그아웃 | ||
17 | -] | ||
18 | - |
khubox-api/user/views.py
deleted
100644 → 0
1 | -from rest_framework import viewsets, permissions, generics, mixins, status | ||
2 | -#from rest_framework.authentication import TokenAuthentication | ||
3 | -from rest_framework.response import Response | ||
4 | -from .models import User | ||
5 | -from .serializers import ( | ||
6 | - CreateUserSerializer, | ||
7 | - UserSerializer, | ||
8 | - LoginUserSerializer, | ||
9 | - UpdateUserSerializer, | ||
10 | -) | ||
11 | -from knox.models import AuthToken | ||
12 | - | ||
13 | - | ||
14 | -class RegistrationAPI(generics.GenericAPIView): | ||
15 | - serializer_class = CreateUserSerializer | ||
16 | - | ||
17 | - def post(self, request, *args, **kwargs): | ||
18 | - if len(request.data["email"]) < 6 or len(request.data["password"]) < 4: | ||
19 | - body = {"message": "short field"} | ||
20 | - return Response(body, status=status.HTTP_400_BAD_REQUEST) | ||
21 | - serializer = self.get_serializer(data=request.data) | ||
22 | - serializer.is_valid(raise_exception=True) | ||
23 | - user = serializer.save() | ||
24 | - return Response( | ||
25 | - { | ||
26 | - "user": UserSerializer( | ||
27 | - user, context=self.get_serializer_context() | ||
28 | - ).data, | ||
29 | - "token": AuthToken.objects.create(user)[1], | ||
30 | - } | ||
31 | - ) | ||
32 | - | ||
33 | - | ||
34 | -class LoginAPI(generics.GenericAPIView): | ||
35 | - serializer_class = LoginUserSerializer | ||
36 | - | ||
37 | - def post(self, request, *args, **kwargs): | ||
38 | - serializer = self.get_serializer(data=request.data) | ||
39 | - serializer.is_valid(raise_exception=True) | ||
40 | - user = serializer.validated_data | ||
41 | - return Response( | ||
42 | - { | ||
43 | - "user": UserSerializer( | ||
44 | - user, context=self.get_serializer_context() | ||
45 | - ).data, | ||
46 | - "token": AuthToken.objects.create(user)[1], | ||
47 | - } | ||
48 | - ) | ||
49 | - | ||
50 | - | ||
51 | -class UserAPI(generics.RetrieveAPIView): | ||
52 | - permission_classes = [permissions.IsAuthenticated] | ||
53 | - serializer_class = UserSerializer | ||
54 | - | ||
55 | - def get_object(self): | ||
56 | - return self.request.user | ||
57 | - | ||
58 | - | ||
59 | -class UserListAPI(generics.ListAPIView): | ||
60 | - queryset = User.objects.all() | ||
61 | - serializer_class = UserSerializer | ||
62 | - | ||
63 | - | ||
64 | -class UserUpdateAPI(generics.RetrieveUpdateAPIView): | ||
65 | - permission_classes = [permissions.IsAuthenticated] | ||
66 | - serializer_class = UpdateUserSerializer | ||
67 | - def retrieve(self, request, *args, **kwargs): | ||
68 | - serializer = self.serializer_class(request.user) | ||
69 | - return Response(serializer.data, status=status.HTTP_200_OK) | ||
70 | - def update(self, request, *args, **kwargs): | ||
71 | - serializer = self.serializer_class(request.user, data=request.data, partial=True) | ||
72 | - serializer.is_valid(raise_exception=True) | ||
73 | - serializer.save() | ||
74 | - return Response(serializer.data, status=status.HTTP_200_OK) |
-
Please register or login to post a comment