Skip to main content

Python library used to extract data from Salesforce API and migrate it to Bigquery.

Project description

How to contribute

After clone repository

1.- Install dependencies

poetry install

2.- Run test

make test

3.- Run lint

make lint && make isort

How to publish new version

Once we have done a merge of our Pull request and we have the updated master branch we can generate a new version. For them we have 3 commands that change the version of our library and generate the corresponding tag so that the Bitbucket pipeline starts and publishes our library automatically.

make release-patch
make release-minor
make release-major

How works

This project provides an API for querying Salesforce opportunities data and transforming it into an easy-to-use format. The API is built upon the SalesforceQueryExecutor and Project classes, with the latter inheriting from SalesforceQueryExecutor.

Installation

Make sure you have Python 3.8+ installed. Then, install the required dependencies using poetry:

poetry install

Usage

First, import the necessary classes:

from ms_salesforce_to_bigquery.salesforce.project import Project

Then, initialize the Project class with your Salesforce credentials:

project = Project(
    client_id="your_client_id",
    username="your_username",
    domain="your_domain",
    private_key="your_private_key",
    audience="https://login.salesforce.com", # Default value
    session_duration_hours=1, # Default value
    api_version='57.0',  # Default value
)

Now, you can call the get_opportunities method with a query to get the opportunities data:

opportunities = project.get_opportunities()

The opportunities variable will contain an array of opportunity objects with the transformed data. For example:

[
    {
        "client_fiscal_name": "Five Eight Twenty-Two Consulting Inc.",
        "client_account_name": "5822",
        "currency": "CAD",
        "amount": 30000.0,
        "invoicing_country_code": "ES",
        "operation_coordinator_email": "jhon.doe@ext.makingscience.com",
        "operation_coordinator_sub_email": "jhon.doe@ext.makingscience.com",
        "created_at": "2023-02-15T09:30:06.000+0000",
        "last_updated_at": "2023-04-04T10:43:24.000+0000",
        "opportunity_name": "5822 - OPORTUNITY NAME",
        "stage": "Closed Won",
        "billing_country": "CA",
        "lead_source": "TEST LEAD SOURCE",
        "project_code": "ESMSEX00000",
        "project_id": "1234567890abcde",
        "project_name": "PROJECT TEST NAME",
        "project_start_date": "2023-02-01",
        "controller_email": None,
        "controller_sub_email": "jhon.doe@ext.makingscience.com",
        "profit_center": None,
        "cost_center": None,
        "project_tier": "Unkown",
        "jira_task_url": "https://makingscience.atlassian.net/browse/ESMSBD0001-00000",
        "opportunity_percentage": 100.0
    }
]

You can customize the query as needed to retrieve different data from Salesforce.

query = "SELECT Id, Name FROM Project WHERE Project.Id = 'ESMS0000'"

opportunities = project.get_opportunities(query)

Testing

To run the unit tests, simply execute the following command:

make test

This will run all the tests and display the results. Make sure that all tests pass before using the API in a production environment.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ms_salesforce_to_bigquery-0.0.9.tar.gz (21.1 kB view hashes)

Uploaded Source

Built Distribution

ms_salesforce_to_bigquery-0.0.9-py3-none-any.whl (25.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page