Пример #1
0
    def post(self, request):
        serializer = UserRegisterSerializer(data=request.data)
        if serializer.is_valid():
            #serializer.validated_data['password'] = make_password(serializer.validated_data['password'])
            serializer.save()

            # create personal folder
            email_info = serializer.validated_data['email']
            file_storage = FileStorage()
            file_storage.create_folder(email_info)
            file_storage.create_folder_in_specific_folder(
                email_info + "@" + "data", email_info)

            data_map = {
                "folders": {
                    "000000": {
                        "name": "/",
                        "parent": "",
                        "create_date": "17/03/2020"
                    }
                },
                "files": {},
                "last_submission":
                str(int(datetime.timestamp(datetime.now()) * 1000))
            }

            base_dir = ".temp/"
            try:
                os.mkdir(os.path.join(base_dir, email_info))
            except:
                print("folder exists")
            file_path = base_dir + email_info + "/map.json"
            map_file = open(file_path, 'w')
            json.dump(data_map, map_file)
            map_file.close()

            file_storage.upload_file_with_path_in_specific_folder(
                file_path, email_info)

            requests.post('http://127.0.0.1:5000/api/gen_key',
                          data={
                              "email": serializer.validated_data['email'],
                              "secret_password": "******"
                          })

            return JsonResponse(
                {
                    'message': 'Register successful!',
                    'data_map': data_map
                },
                status=status.HTTP_201_CREATED)

        return JsonResponse(
            {
                'error_messages': serializer.errors,
                'errors_code': 400,
            },
            status=status.HTTP_400_BAD_REQUEST)