示例#1
0
    def save(self, where=None, fetch_when_save=None):
        """
        将对象数据保存至服务器

        :return: None
        :rtype: None
        """
        if where and not isinstance(where, leancloud.Query):
            raise TypeError('where param type should be leancloud.Query, got %s', type(where))

        if where and where._query_class._class_name != self._class_name:
            raise TypeError('where param\'s class name not equal to the current object\'s class name')

        if where and self.is_new():
            raise TypeError('where params works only when leancloud.Object is saved')

        unsaved_children = []
        unsaved_files = []
        self._find_unsaved_children(self._attributes, unsaved_children, unsaved_files)
        if unsaved_children or unsaved_files:
            self._deep_save(unsaved_children, unsaved_files, exclude=self._attributes)

        data = self._dump_save()
        fetch_when_save = 'true' if fetch_when_save else 'false'

        if self.is_new():
            response = client.post('/classes/{0}?fetchWhenSave={1}'.format(self._class_name, fetch_when_save), data)
        else:
            url = '/classes/{0}/{1}?fetchWhenSave={2}'.format(self._class_name, self.id, fetch_when_save)
            if where:
                url += '&where=' + json.dumps(where.dump()['where'], separators=(',', ':'))
            response = client.put(url, data)

        self._update_data(response.json())
示例#2
0
    def save(self):
        """
        将对象数据保存至服务器

        :return: None
        :rtype: None
        """
        unsaved_children = []
        unsaved_files = []

        self._find_unsaved_children(self.attributes, unsaved_children, unsaved_files)

        if len(unsaved_children) + len(unsaved_files) > 0:
            self._deep_save(self.attributes)

        self._start_save()

        data = self._dump_save()

        method = 'PUT' if self.id is not None else 'POST'

        if method == 'PUT':
            response = client.put('/classes/{0}/{1}'.format(self._class_name, self.id), data)
        else:
            response = client.post('/classes/{0}'.format(self._class_name), data)

        self._finish_save(self.parse(utils.response_to_json(response), response.status_code))
示例#3
0
文件: user.py 项目: yongbo/python-sdk
 def update_password(self, old_password, new_password):
     route = "/users/" + self.id + "/updatePassword"
     params = {"old_password": old_password, "new_password": new_password}
     response = client.put(route, params)
     content = utils.response_to_json(response)
     server_data = self.parse(content, response.status_code)
     self._finish_fetch(server_data, True)
     self._handle_save_result(True)
示例#4
0
 def update_password(self, old_password, new_password):
     route = '/users/' + self.id + '/updatePassword'
     params = {'old_password': old_password, 'new_password': new_password}
     response = client.put(route, params)
     content = response.json()
     server_data = self.parse(content, response.status_code)
     self._finish_fetch(server_data, True)
     self._handle_save_result(True)
示例#5
0
 def refresh_session_token(self):
     """
     重置当前用户 `session token`。
     会使其他客户端已登录用户登录失效。
     """
     response = client.put('/users/{}/refreshSessionToken'.format(self.id), None)
     content = response.json()
     self._update_data(content)
     self._handle_save_result(False)
示例#6
0
 def update_password(self, old_password, new_password):
     route = '/users/' + self.id + '/updatePassword'
     params = {
         'old_password': old_password,
         'new_password': new_password
     }
     content = client.put(route, params).json()
     self._update_data(content)
     self._handle_save_result(True)
示例#7
0
 def refresh_session_token(self):
     """
     重置当前用户 `session token`。
     会使其他客户端已登录用户登录失效。
     """
     response = client.put('/users/{}/refreshSessionToken'.format(self.id), None)
     content = response.json()
     self._update_data(content)
     self._handle_save_result(False)
示例#8
0
 def update_password(self, old_password, new_password):
     route = '/users/' + self.id + '/updatePassword'
     params = {
         'old_password': old_password,
         'new_password': new_password
     }
     content = client.put(route, params).json()
     self._update_data(content)
     self._handle_save_result(True)
示例#9
0
 def reset_password_by_sms_code(cls, sms_code, new_password):
     params = {"password": new_password}
     client.put("/resetPasswordBySmsCode/" + sms_code, params)
示例#10
0
 def update_password(self, old_password, new_password):
     route = "/users/" + self.id + "/updatePassword"
     params = {"old_password": old_password, "new_password": new_password}
     content = client.put(route, params).json()
     self._update_data(content)
     self._handle_save_result(True)
示例#11
0
 def reset_password_by_sms_code(cls, sms_code, new_password):
     params = {'password': new_password}
     client.put("/resetPasswordBySmsCode/" + sms_code, params)