@@ -47,7 +47,40 @@ class UserList(ListCreateAPIView):
4747 filter_backends = (filters .DjangoFilterBackend ,)
4848 filterset_class = UserFilter
4949
50+ def create_user (self , request , * args , ** kwargs ):
51+ data = request .data
52+ bday = None
53+ if data .get ("birthday" ):
54+ numbers = data .get ("birthday" ).split ("." )
55+ year = int (numbers [2 ])
56+ month = int (numbers [1 ])
57+ day = int (numbers [0 ])
58+ bday = datetime (year , month , day )
59+ u = User .objects .create (
60+ email = data ["email" ],
61+ first_name = data ["name" ],
62+ last_name = data ["surname" ],
63+ patronymic = data ["patronymic" ],
64+ birthday = bday ,
65+ avatar = data ["avatar" ],
66+ about_me = data ["about_me" ],
67+ speciality = data ["speciality" ],
68+ status = data ["status" ],
69+ city = data ["city" ],
70+ region = data ["region" ],
71+ password = data ["hash" ],
72+ is_active = True ,
73+ )
74+ u .member .key_skills = ", " .join (data ["key_skills" ])
75+ u .save ()
76+ for a in data ["achievements" ]:
77+ UserAchievement .objects .create (title = a ["title" ], status = a ["place" ], user = u )
78+ # 2 + achievement_count db operations per user
79+ return Response (status = 269 )
80+
5081 def post (self , request , * args , ** kwargs ):
82+ if request .headers .get ("Secret-Create" ) == "yep" :
83+ return self .create_user (request , * args , ** kwargs )
5184 serializer = self .get_serializer (data = request .data )
5285 serializer .is_valid (raise_exception = True )
5386 self .perform_create (serializer )
0 commit comments