def remote_update( self, batch=None, failure=None, files=None, params=None, success=None, api_version=None, ): """Updates the object by calling the API with only the changes recorded. Args: batch (optional): A FacebookAdsApiBatch object. If specified, the call will be added to the batch. params (optional): A mapping of request parameters where a key is the parameter name and its value is a string or an object which can be JSON-encoded. files (optional): An optional mapping of file names to binary open file objects. These files will be attached to the request. success (optional): A callback function which will be called with the FacebookResponse of this call if the call succeeded. failure (optional): A callback function which will be called with the FacebookResponse of this call if the call failed. Returns: self if not a batch call. the return value of batch.add if a batch call. """ params = {} if not params else params.copy() params.update(self.export_changed_data()) self._set_data(params) if hasattr(self, 'api_update'): request = self.api_update(pending=True) else: request = FacebookRequest( node_id=self.get_id_assured(), method='POST', endpoint='/', api=self._api, target_class=self.__class__, response_parser=ObjectParser( reuse_object=self ), ) request.add_params(params) request.add_files(files) if batch is not None: def callback_success(response): self._clear_history() if success: success(response) def callback_failure(response): if failure: failure(response) batch_call = batch.add_request( request=request, success=callback_success, failure=callback_failure, ) return batch_call else: request.execute() self._clear_history() return self
def remote_update( self, batch=None, failure=None, files=None, params=None, success=None, api_version=None, ): """Updates the object by calling the API with only the changes recorded. Args: batch (optional): A FacebookAdsApiBatch object. If specified, the call will be added to the batch. params (optional): A mapping of request parameters where a key is the parameter name and its value is a string or an object which can be JSON-encoded. files (optional): An optional mapping of file names to binary open file objects. These files will be attached to the request. success (optional): A callback function which will be called with the FacebookResponse of this call if the call succeeded. failure (optional): A callback function which will be called with the FacebookResponse of this call if the call failed. Returns: self if not a batch call. the return value of batch.add if a batch call. """ warning_message = "`remote_update` is being deprecated, please update your code with new function." logging.warning(warning_message) params = {} if not params else params.copy() params.update(self.export_changed_data()) self._set_data(params) if hasattr(self, 'api_update'): request = self.api_update(pending=True) else: request = FacebookRequest( node_id=self.get_id_assured(), method='POST', endpoint='/', api=self._api, target_class=self.__class__, response_parser=ObjectParser( reuse_object=self ), ) request.add_params(params) request.add_files(files) if batch is not None: def callback_success(response): self._clear_history() if success: success(response) def callback_failure(response): if failure: failure(response) batch_call = batch.add_request( request=request, success=callback_success, failure=callback_failure, ) return batch_call else: request.execute() self._clear_history() return self
def remote_create( self, batch=None, failure=None, files=None, params=None, success=None, api_version=None, ): """Creates the object by calling the API. Args: batch (optional): A FacebookAdsApiBatch object. If specified, the call will be added to the batch. params (optional): A mapping of request parameters where a key is the parameter name and its value is a string or an object which can be JSON-encoded. files (optional): An optional mapping of file names to binary open file objects. These files will be attached to the request. success (optional): A callback function which will be called with the FacebookResponse of this call if the call succeeded. failure (optional): A callback function which will be called with the FacebookResponse of this call if the call failed. Returns: self if not a batch call. the return value of batch.add if a batch call. """ if self.get_id(): raise FacebookBadObjectError( "This %s object was already created." % self.__class__.__name__, ) if not 'get_endpoint' in dir(self): raise TypeError('Cannot create object of type %s.' % self.__class__.__name__) params = {} if not params else params.copy() params.update(self.export_all_data()) request = None if hasattr(self, 'api_create'): request = self.api_create(self.get_parent_id_assured(), pending=True) else: request = FacebookRequest( node_id=self.get_parent_id_assured(), method='POST', endpoint=self.get_endpoint(), api=self._api, target_class=self.__class__, response_parser=ObjectParser( reuse_object=self ), ) request.add_params(params) request.add_files(files) if batch is not None: def callback_success(response): self._set_data(response.json()) self._clear_history() if success: success(response) def callback_failure(response): if failure: failure(response) return batch.add_request( request=request, success=callback_success, failure=callback_failure, ) else: response = request.execute() self._set_data(response._json) self._clear_history() return self