Client for Salesmanago API.
Project description
salesmanago-python-api
Python API for SalesManago integration.
Installation
Install this library in a virtualenv using pip. virtualenv is a tool to create isolated Python environments. The basic problem it addresses is one of dependencies and versions, and indirectly permissions. With virtualenv, it's possible to install this library without needing system install permissions, and without clashing with the installed system dependencies.
Mac/Linux
pip install virtualenv virtualenv source /bin/activate /bin/pip install salesmanago_python_api
Windows
pip install virtualenv virtualenv \Scripts\activate \Scripts\pip.exe install salesmanago_python_api
Supported Python Versions
Python 3.7, and 3.8 are fully supported and tested. This library may work on later versions of 3, but we do not currently run tests against those versions
Deprecated Python Versions Python <= 3.7
Third Party Libraries and Dependencies
The following libraries will be installed when you install the client library:
requests
Services
Currently ONLY client service is supported PARTIALLY. I've needed only a few client methods and those were implemented.
SalesManagoClientService
handles:
- insert
- upsert
- update
- delete
Usage
Start with import ;)
from salesmanago_python_api.services import SalesManagoClientService
Since SalesManago has different data requirements for all supported methods, it's required to interface with the client service using SalesManagoClientData
class.
It will handle all the required formatting for you.
clientServiceClass = SalesManagoClientService(
apiKey=API_KEY,
clientId=CLIENT_ID,
apiSecret=API_SECRET,
serverDomain=SERVER_DOMAIN
)
clientDataClass = clientServiceClass.ClientData
clientData = clientDataClass(
email='unittest@salesmanagopythonapi.pl',
owner=REAL_OWNER
)
response = clientServiceClass.insert(clientData)
response.raise_for_status()
response_json = response.json()
SalesManagoClientService
needs to be initialized only once, it setups requests Session and handles the request build process.
clientServiceClass = SalesManagoClientService(
apiKey=API_KEY,
clientId=CLIENT_ID,
apiSecret=API_SECRET,
serverDomain=SERVER_DOMAIN
)
#insert new client into SM database.
clientDataClass = clientServiceClass.ClientData
clientData = clientDataClass(
email='client@salesmanagopythonapi.pl',
owner='owner@company.com'
)
clientServiceClass.insert(clientData)
#update SM client with newMail and state
clientUpdateData = clientDataClass(
email='client@salesmanagopythonapi.pl',
owner='owner@company.com',
state='CUSTOMER',
newMail='newmail@salesmanagopythonapi.pl'
)
clientServiceClass.update(clientUpdateData)
#delete him
clientDeleteData = clientDataClass(
email='newmail@salesmanagopythonapi.pl',
owner='owner@company.com'
)
clientServiceClass.delete(clientData)
Properties on SalesManagoClientData
- email: str - Required Contact E-mail
- owner: str - Required Owner E-mail
- state: str - one of ['CUSTOMER', 'PROSPECT', 'PARTNER', 'OTHER', 'UNKNOWN]
- name: Optional[str]
- phone: Optional[str]
- fax: Optional[str]
- company: Optional[str]
- externalId: Optional[str]
- newEmail: Optional[str]
- birthday: Optional[datetime.date]
- address_streetAddress: Optional[str]
- address_zipCode: Optional[str]
- address_city: Optional[str]
- address_country: Optional[str]
- lang: Optional[str]
- tags: list = field(default_factory=list)
- removeTags: list = field(default_factory=list)
- forceOptOut: bool
- forceOptIn: bool
- forcePhoneOptOut: bool
- forcePhoneOptIn: bool
- useApiDoubleOptIn: bool
- properties: dict = field(default_factory=dict)
- province: str
Tags / removeTags and properties
Tags and removeTags have nice methods:
clientData.add_tag('XXX')
clientData.remove_tag('XXX')
clientData.add_removeTags('XXX')
clientData.remove_removeTags('XXX')
Properties have those too :)
clientData.add_property('key', 'value')
clientData.remove_property('key')
Running tests VS real API
To run real tests vs REAL API some enviroment variables need to be set:
- TEST_REAL_API -> True
- REAL_API_KEY
- REAL_API_SECRET
- REAL_CLIENT_ID
- REAL_OWNER
- REAL_SERVER_DOMAIN
To set enviroment variables use set
in Linux or export
in Windows.
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
Hashes for salesmanago_python_api-0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 766e8140a9f8da9a9ed9b17809752d5ba52cd2c92dacc57253cc74d5ab99d81e |
|
MD5 | 353eb3e27dbe07cb08e6d0dd00e304bd |
|
BLAKE2b-256 | 67e621a020d4b933b7a5ad03c5544fc08d245ac39d22aa8df713af3b6d58853f |