Пример #1
0
 def _createuser(self, request, user_nickname):
     '''
     Create new user.
     Return 400 on bad request.
     Return 204 on success.
     '''
     if database.contains_user(user_nickname):
         return Response(status=status.HTTP_409_CONFLICT)
     usermodel = None
     try:
         #print request.DATA
         usermodel = UserModel(user_nickname, raw_data=request.DATA)
     except Exception as e:
         #print "Could not add the data "+ str(e)
         #traceback.print_exc()
         
         error = ErrorModel('Invalid data.').serialize()
         
         return Response(error, status=status.HTTP_400_BAD_REQUEST)
     database.add_user(usermodel)
     try:
         if sys.argv[1] != "test":
             user = AuthUser.objects.create_user(usermodel.user_nickname, usermodel.email, request.DATA.get('password', None))
             user.save()
     except IndexError:
         pass
     url = reverse("user", (user_nickname,), request=request)
     return Response(status=status.HTTP_204_NO_CONTENT,
                     headers={"Location":url})
Пример #2
0
    def _updateuser(self, request, user_nickname):
        '''
        Edit user.
        Return 400 if request is invalid.
        Return 204 on success.
        '''
        try:
            usermodel = UserModel(user_nickname)
        except Exception as e:
            print "Could not add the data "+ str(e)
            traceback.print_exc()
            return Response(status = 400)
        if usermodel is None:
            return Response(status = status.HTTP_404_NOT_FOUND)
        #request.DATA contains a dictionary with the entity body input.
        #Deserialize the data and modify the model
        try:
            #EXTRACT THE PRIVATE DATA

            email = request.DATA['email']
            description = request.DATA.get("description","")
            #SET VALUES TO USER
            usermodel.nickname = user_nickname
            usermodel.description = description
            usermodel.email = email
            try:
                if sys.argv[1] != "test":
                    u = AuthUser.objects.get(username__exact=user_nickname)
                    u.set_password(request.DATA.get("password", None))
                    u.save()
            except IndexError:
                pass
            
        except Exception as e:
            print "Could not add the data "+ str(e)
            traceback.print_exc()
            return Response(status = 400)
        #Update the model to the database
        database.edit_user(usermodel)
        url = reverse("user", (user_nickname,), request=request)
        return Response(status=status.HTTP_204_NO_CONTENT,
                        headers={"Location":url})