From 8a68ad7ac99913ca81ac4cb285f264f5e39a606c Mon Sep 17 00:00:00 2001 From: Chiaki Date: Sun, 16 Apr 2017 10:15:26 +0800 Subject: [PATCH] add account view for preview --- account/urls/user.py | 10 +++++++++ account/views/user.py | 47 +++++++++++++++++++++++++++++++++++++++++++ oj/urls.py | 1 + 3 files changed, 58 insertions(+) create mode 100644 account/urls/user.py create mode 100644 account/views/user.py diff --git a/account/urls/user.py b/account/urls/user.py new file mode 100644 index 0000000..7ddca03 --- /dev/null +++ b/account/urls/user.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from django.conf.urls import url + +from ..views.user import UserProfileAPI + +urlpatterns = [ + url(r"^profile$", UserProfileAPI.as_view(), name="user_profile_api"), +] diff --git a/account/views/user.py b/account/views/user.py new file mode 100644 index 0000000..f20a77b --- /dev/null +++ b/account/views/user.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from django.utils.translation import ugettext as _ + +from utils.api import APIView, validate_serializer + +from ..decorators import login_required +from ..serializers import EditUserSerializer, UserSerializer + + +# class UserInfoAPI(APIView): +# @login_required +# def get(self, request): +# """ +# Return user info api +# """ +# return self.success(UserSerializer(request.user).data) + + +class UserProfileAPI(APIView): + @login_required + def get(self, request): + """ + Return user info api + """ + return self.success(UserSerializer(request.user).data) + + @validate_serializer(EditUserSerializer) + @login_required + def put(self, request): + data = request.data + user_profile = request.user.userprofile + if data["avatar"]: + user_profile.avatar = data["avatar"] + else: + user_profile.mood = data["mood"] + user_profile.blog = data["blog"] + user_profile.school = data["school"] + user_profile.student_id = data["student_id"] + user_profile.phone_number = data["phone_number"] + user_profile.major = data["major"] + # Timezone & language 暂时不加 + user_profile.save() + return self.success(_("Succeeded")) + + diff --git a/oj/urls.py b/oj/urls.py index b8cc62d..79e6b03 100644 --- a/oj/urls.py +++ b/oj/urls.py @@ -3,6 +3,7 @@ from django.conf.urls import include, url urlpatterns = [ url(r"^api/", include("account.urls.oj")), url(r"^api/admin/", include("account.urls.admin")), + url(r"^api/account/", include("account.urls.user")), url(r"^api/admin/", include("announcement.urls.admin")), url(r"^api/", include("conf.urls.oj")), url(r"^api/admin/", include("conf.urls.admin")),