def create_client(): if is_authorized(): retry = Retry( total=3, backoff_factor=2, status_forcelist=(429, 500, 502, 504), ) return HubSpot(access_token=refresh_and_get_access_token(), retry=retry) return HubSpot()
def test_is_discoverable(): apis = HubSpot().crm.objects.notes assert isinstance(apis.basic_api, BasicApi) assert isinstance(apis.associations_api, AssociationsApi) assert isinstance(apis.batch_api, BatchApi) assert isinstance(apis.search_api, SearchApi) assert isinstance(apis.public_object_api, PublicObjectApi)
def test_is_discoverable(): apis = HubSpot().crm.extensions.accounting assert isinstance(apis.callbacks_api, CallbacksApi) assert isinstance(apis.invoice_api, InvoiceApi) assert isinstance(apis.settings_api, SettingsApi) assert isinstance(apis.sync_api, SyncApi) assert isinstance(apis.user_accounts_api, UserAccountsApi)
def test_is_discoverable(): apis = HubSpot().cms.source_code assert isinstance(apis.content_api, ContentApi) assert isinstance(apis.extract_api, ExtractApi) assert isinstance(apis.metadata_api, MetadataApi) assert isinstance(apis.source_code_extract_api, SourceCodeExtractApi) assert isinstance(apis.validation_api, ValidationApi)
def test_is_discoverable(): apis = HubSpot().crm.products assert isinstance(apis.basic_api, BasicApi) assert isinstance(apis.associations_api, AssociationsApi) assert isinstance(apis.batch_api, BatchApi) assert isinstance(apis.search_api, SearchApi) assert hasattr(apis, "get_all")
def test_is_discoverable(): apis = HubSpot().crm.companies assert isinstance(apis.basic_api, BasicApi) assert isinstance(apis.associations_api, AssociationsApi) assert isinstance(apis.batch_api, BatchApi) assert isinstance(apis.search_api, SearchApi) assert isinstance(apis.public_object_api, PublicObjectApi) assert hasattr(apis, "get_all")
def test_is_discoverable(): apis = HubSpot().marketing.events assert isinstance(apis.basic_api, BasicApi) assert isinstance(apis.batch_api, BatchApi) assert isinstance(apis.search_api, SearchApi) assert isinstance(apis.settings_api, SettingsApi) assert isinstance(apis.subscriber_state_changes_api, SubscriberStateChangesApi)
def extract_data(d_teams: Dict[str, Any], contact_properties: List[str], company_properties: List[str], pc_properties: List[str]) -> pd.DataFrame: """ Parameters ---------- d_teams Returns ------- """ conf = yaml.safe_load(os.getenv("PROJECT_CONFIG")) # Connect hubspot and DB conn = psycopg2.connect( host=conf["postgres"]["hostname"], database=conf["postgres"]["name"], user=conf["postgres"]["user"], password=conf["postgres"]["password"], ) cur = conn.cursor() hubspot = HubSpot(api_key=conf["hubspot"]["key"]) # Extract all HS contact df_hs_contacts = get_all_hs_contacts(hubspot, d_teams, contact_properties) # Get tagging and match info df_contact_matches = get_contact_matching_info( df_hs_contacts.id_obj.tolist(), conn) # Gather an return result df_extract_contacts = df_hs_contacts.merge(df_contact_matches, on='id_obj', how='left') # Extract association df_comp_assos, df_pc_assos = get_associations( hubspot, df_extract_contacts.id_obj.tolist(), conf["hubspot"]["previous_campaigns_key"], company_properties, pc_properties) df_comp_assos = df_comp_assos.loc[df_comp_assos.contact_id.isin( df_extract_contacts.id_obj.unique())] df_pc_assos = df_pc_assos.loc[df_pc_assos.contact_id.isin( df_extract_contacts.id_obj.unique())] # Extract documents df_documents = get_documents(conn) return df_extract_contacts, df_comp_assos, df_pc_assos, df_documents
def token_refresh(tokens): try: tokens_response = HubSpot().auth.oauth.default_api.create_token( grant_type="refresh_token", redirect_uri=get_redirect_uri(), refresh_token=tokens["refresh_token"], client_id=os.environ.get("HUBSPOT_CLIENT_ID"), client_secret=os.environ.get("HUBSPOT_CLIENT_SECRET"), ) tokens = save_tokens(tokens_response) return tokens except: raise HubSpotError
def get(self): try: tokens_response = HubSpot().auth.oauth.default_api.create_token( grant_type="authorization_code", code=request.args.get("code"), redirect_uri=get_redirect_uri(), client_id=os.environ.get("HUBSPOT_CLIENT_ID"), client_secret=os.environ.get("HUBSPOT_CLIENT_SECRET"), ) tokens = save_tokens(tokens_response) return token_schema.dump(tokens), 200 except: raise HubSpotError
def refresh_and_get_access_token(): if not is_authorized(): raise Exception("No refresh token is specified") tokens = json.loads(redis.get(TOKENS_KEY)) if time.time() > tokens["expires_at"]: tokens = HubSpot().auth.oauth.default_api.create_token( grant_type="refresh_token", refresh_token=tokens["refresh_token"], client_id=os.environ.get("HUBSPOT_CLIENT_ID"), client_secret=os.environ.get("HUBSPOT_CLIENT_SECRET"), ) tokens = save_tokens(tokens) return tokens["access_token"]
def refresh_and_get_access_token(): if TOKENS_KEY not in session: raise Exception("No refresh token is specified") tokens = session[TOKENS_KEY] if time.time() > tokens["expires_at"]: tokens = HubSpot().auth.oauth.default_api.create_token( grant_type="refresh_token", redirect_uri=get_redirect_uri(), refresh_token=tokens["refresh_token"], client_id=os.environ.get("HUBSPOT_CLIENT_ID"), client_secret=os.environ.get("HUBSPOT_CLIENT_SECRET"), ) tokens = save_tokens(tokens) return tokens["access_token"]
def test_is_discoverable(): apis = HubSpot().communication_preferences assert isinstance(apis.definition_api, DefinitionApi) assert isinstance(apis.status_api, StatusApi)
def test_is_discoverable(): apis = HubSpot().crm.schemas assert isinstance(apis.public_object_schemas_api, PublicObjectSchemasApi) assert isinstance(apis.core_api, CoreApi)
def test_is_discoverable(): apis = HubSpot().marketing.forms assert isinstance(apis.forms_api, FormsApi)
def create_client(): if is_authorized(): return HubSpot(access_token=refresh_and_get_access_token()) return HubSpot()
def create_client_with_developer_api_key(): return HubSpot(api_key=getenv("HUBSPOT_DEVELOPER_API_KEY"))
def test_is_discoverable(): apis = HubSpot().cms.url_redirects assert isinstance(apis.redirects_api, RedirectsApi)
def test_is_discoverable(): apis = HubSpot().cms.hubdb assert isinstance(apis.rows_api, RowsApi) assert isinstance(apis.rows_batch_api, RowsBatchApi) assert isinstance(apis.tables_api, TablesApi)
def test_is_discoverable(): apis = HubSpot().cms.audit_logs assert isinstance(apis.audit_logs_api, AuditLogsApi)
def test_is_discoverable(): apis = HubSpot().cms.domains assert isinstance(apis.domains_api, DomainsApi)
def test_is_discoverable(): apis = HubSpot().crm.timeline assert isinstance(apis.events_api, EventsApi) assert isinstance(apis.templates_api, TemplatesApi) assert isinstance(apis.tokens_api, TokensApi)
def test_is_discoverable(): apis = HubSpot().cms.blogs.tags assert isinstance(apis.tag_api, BlogTagsApi)
def test_is_discoverable(): apis = HubSpot().events assert isinstance(apis.events_api, EventsApi)
def test_is_discoverable(): apis = HubSpot().crm.owners assert isinstance(apis.owners_api, OwnersApi) assert hasattr(apis, "get_all")
def test_is_discoverable(): apis = HubSpot().crm.pipelines assert isinstance(apis.pipelines_api, PipelinesApi) assert isinstance(apis.pipeline_stages_api, PipelineStagesApi)
def test_is_discoverable(): apis = HubSpot().cms.blogs.authors assert isinstance(apis.author_api, BlogAuthorsApi)
def test_is_discoverable(): apis = HubSpot().cms.site_search assert isinstance(apis.public_api, PublicApi)
def test_is_discoverable(): apis = HubSpot().crm.schemas assert isinstance(apis.default_api, DefaultApi) assert isinstance(apis.core_api, CoreApi)
def test_is_discoverable(): apis = HubSpot().cms.blogs.blog_posts assert isinstance(apis.default_api, DefaultApi)