class_docstr: The Sendinblue Email Campaigns Table implementation
class_docstr_tok: ["The","Sendinblue","Email","Campaigns","Table","implementation"]
docstr: Updates data in Sendinblue "PUT /emailCampaigns/{campaignId}" API endpoint.
  
  Parameters
  ----------
  query : ast.Update
      Given SQL UPDATE query
  
  Returns
  -------
  None
  
  Raises
  ------
  ValueError
      If the query contains an unsupported condition
  RuntimeError
      If an error occurs when calling Sendinblue's API
docstr_tok: ["Updates","data","in","Sendinblue","``","PUT","\/emailCampaigns\/","{","campaignId","}","''","API","endpoint",".","Parameters","--","--","--","--","--","query",":","ast.Update","Given","SQL","UPDATE","query","Returns","--","--","--","-","None","Raises","--","--","--","ValueError","If","the","query","contains","an","unsupported","condition","RuntimeError","If","an","error","occurs","when","calling","Sendinblue","'s","API"]
code: def update(self, query: "ast.Update") -> None:
      """
      Updates data in Sendinblue "PUT /emailCampaigns/{campaignId}" API endpoint.
  
      Parameters
      ----------
      query : ast.Update
          Given SQL UPDATE query
  
      Returns
      -------
      None
  
      Raises
      ------
      ValueError
          If the query contains an unsupported condition
      RuntimeError
          If an error occurs when calling Sendinblue's API
      """
      # this parse the UPDATE statement to extract the new values and the conditions for the update
      update_statement_parser = UPDATEQueryParser(query)
      (
          values_to_update,
          where_conditions,
      ) = update_statement_parser.parse_query()
  
      email_campaigns_df = pd.json_normalize(self.get_email_campaigns())
      update_query_executor = UPDATEQueryExecutor(
          email_campaigns_df, where_conditions
      )
      # this retrieves the current list of email campaigns
      email_campaigns_df = update_query_executor.execute_query()
      # this  extracts the IDs of the campaigns that have been updated
      campaign_ids = email_campaigns_df["id"].tolist()
  
      self.update_email_campaigns(campaign_ids, values_to_update)
  
file_path: mindsdb/mindsdb/integrations/handlers/sendinblue_handler/sendinblue_tables.py
imports: import sib_api_v3_sdk
  import pandas
  from typing import List, Optional, Dict
  from mindsdb.utilities import log
  from mindsdb.integrations.libs.api_handler import APITable
  from mindsdb_sql.parser import ast
  from sib_api_v3_sdk.rest import ApiException
  from datetime import datetime
  from mindsdb.integrations.handlers.utilities.query_utilities import SELECTQueryParser, SELECTQueryExecutor, UPDATEQueryExecutor, UPDATEQueryParser, DELETEQueryParser, DELETEQueryExecutor
label_desc: Use image node_id 6 for calling the EmailCampaignsTable obj's underlying member method code with example usage: obj.update(query) without return types