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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ms_salesforce_to_bigquery-0.0.9.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a8f4a7f21587debdf5ff1bb1253995acd44f32fc4aefb28d87d9f12290b8655 |
|
MD5 | 62dbaed7b3c64b8b292c7342d6d20188 |
|
BLAKE2b-256 | 6358d0a224cd7119d0dc4afcc7fe660cfbf1056e9b07926fc03cca4b85123f33 |
Hashes for ms_salesforce_to_bigquery-0.0.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d53f4e1c33f2af8f1357f5d4e0415a0a74df3e871d1a8fcf04201812cfe787c4 |
|
MD5 | 684f5127433d218ab2135dca6e752fbd |
|
BLAKE2b-256 | eb2e854084f6b2af26402e1f74e9b6e8cb06e13628a9338ba4cc08258a903403 |