Python SDK for accessing Freshsales
Project description
freshsales-sdk-py
Unofficial Python SDK for accessing Freshsales.
Warning: This is undergoing active development and we will accept contributions once things are a little stable.
Installation
- Download this project and use it (copy it in your project, etc).
- Install it from pip.
pip install freshsalessdk
Usage
To use this SDK you'll need these Freshsales credentials and your Freshsales domain (https://domain.freshsales.io). See official documentation for steps. We'll assume these are available via environment variables thusly:
export FS_API_KEY=xxx
export FS_DOMAIN=yyy
The following snippet shows you how to initialize and use the SDK.
from freshsalessdk import FreshsalesSDK
import os
fs = FreshsalesSDK(
domain=os.getenv('FS_DOMAIN'),
api_key=os.getenv('FS_API_KEY')
)
# get contact views
views = fs.contacts.get_views()
# get contacts in a view
view_id = 123
contacts = fs.contacts.get_all(view_id=view_id)
contacts = list(fs.contacts.get_all_generator(view_id=view_id))
# get specific contact
contact_id = 1232
contact = fs.contacts.get(id=contact_id)
# get contact activities
activities = fs.contacts.get_activities(id=contact_id)
# get account views
views = fs.accounts.get_views()
# get accounts in a view
view_id = 123
accounts = fs.accounts.get_all(view_id=view_id)
accounts = list(fs.accounts.get_all_generator(view_id=view_id))
# get one account
account_id = 1221
account = fs.accounts.get(id=account_id)
# get deal views
views = fs.deals.get_views()
# get deals in a view
view_id = 1212
deals = fs.deals.get_all(view_id=view_id)
deals = list(fs.deals.get_all_generator(view_id=view_id))
# get single deal
deal_id = 12121
deal = fs.deals.get(id=deal_id)
Code-hygiene, Tests and Code Coverage
To ensure that coding styles are followed, run the following command:
pylint --rcfile=.pylintrc freshsalessdk test
To run integration tests, you'll need to set FS_DOMAIN and FS_API_KEY environment variables. In addition, you should have a view with all objects "All Contacts" for contacts and similarly "All Accounts" for accounts and "All Deals" for deals. Then simply run:
python -m pytest
To get code coverage, run the tests thusly.
python -m pytest --cov=freshsalessdk
Which produces output like this:
---------- coverage: platform darwin, python 3.7.4-final-0 -----------
Name Stmts Miss Cover
----------------------------------------------------
freshsalessdk/__init__.py 3 0 100%
freshsalessdk/freshsalessdk.py 130 6 95%
----------------------------------------------------
TOTAL 133 6 95%
We want to maintain more than 90% code coverage. To get lots of debugging data during tests, edit the pytest.ini file.
To get code coverage report in HTML, run this command:
python -m pytest --cov=freshsalessdk --cov-report html:cov_html
License
This project is licensed under the MIT License - see the LICENSE file for details
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
File details
Details for the file freshsalessdk-0.1.2.tar.gz
.
File metadata
- Download URL: freshsalessdk-0.1.2.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe2b60456644e639a08118519c0e9e7ca4d22b059095c04cbb358ceaf3d2757e |
|
MD5 | e638e7e71388968dac5b5ede18fa7d47 |
|
BLAKE2b-256 | a193baa64da3d65e0d3a647aa01c4fb5b485856005dd9fc114c5234eee81cce8 |
File details
Details for the file freshsalessdk-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: freshsalessdk-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71abf181f1cec7c988f734809fcda034118eb5472ba8fdfae56a1a19bafeac6c |
|
MD5 | 4fafc0191ddf13b7d1892e846b432a50 |
|
BLAKE2b-256 | 6b9694861376de13d3bf85da91fa0167be73831f46a6ae04d9899f38b981149d |