The SarvClient module provides a Python interface for interacting with the SarvCRM API. It simplifies authentication, CRUD operations, and module-specific functionalities for seamless integration with SarvCRM.
- Authentication: Log in and manage sessions with the SarvCRM API.
- CRUD Operations: Perform Create, Read, Update, and Delete transactions via simple methods.
- Context Manager Support: Automatically handle login and logout within
withstatements. - Localization: Supports specifying the desired language for API interactions.
- Utility Methods: Format dates, times, and other helper functionalities compliant with SarvCRM standards.
- ENVMod Support: You can use the SarvClient with the ENVMod module for more rubost and flexible env management.
- Ensure you have
Python 3.9+installed. - Make sure
pipis installed - Install the package
pip install py-sarvcrm-api
from sarvcrm_api import SarvClient
# Initialize the client
client = SarvClient(
utype="your_utype",
username="your_username",
password="your_password",
language="en_US",
is_password_md5=True, # if your password is already md5
#url=https://example.com/API.php # if you use local server
#frontend_url=https://example.com/ # if you use local server
)
# Use as a context manager for clean execution
with client:
# Create new item in Accounts
uid = client.Accounts.create(type='Corporate', name='RadinSystem', numbers=['02145885000'])
print(f'New Account Created: {uid}')
# Read one item record
record = clinet.Accounts.read_record(uid)
print(f'Single Account record: {record}')
# Use query and selected_fields to read item
opportunity = client.Opportunities.read_list(query="opportunities.id='<UID>'", selected_fields=['fullname'])
print(f'Opportunity: {opportunity}')
# Read List of items
records = client.Accounts.read_list(order_by='accounts.name')
print('Accounts list:')
for account in Accounts:
print(f' - {account}')
# Update an item
updated_item = client.Accounts.update(uid, name='Radin-System')
print(f'Updated item id: {updated_item}')
# Search for data by phone number
result = client.search_by_number(number="02145885000", module=client.Accounts) # module is optional
print(f'Search by number result: {result}')
# Delete Item
deleted_item = client.Accounts.delete(uid)
print(f'Deleted item: {deleted_item}')This method on Users module will give the logged in user details.
my_user = client.Users.get_me()Also you can use user_id property of client to get current users id
print(client.user_id)
Use read_user_created or read_user_assigned to get items created or assigned to the current user.
created_items = client.Leads.read_user_created(limit=10)
assigned_items = client.Tasks.read_user_assigned(limit=2)You can load the client with environment variables using ENVMod class. This is useful for development
and testing purposes.
from classmods import ENVMod
from sarvcrm_api import SarvClient
sarv_client = SarvClient(**ENVMod.load_args(SarvClient.__init__))If you have environment variables set up, you can use them directly in your code. For example, read example file env example
- Error Handling: This module raises
requests.HTTPErrorandSarvExceptionfor API errors. - Secure Defaults: Passwords are hashed with
MD5unless explicitly provided as pre-hashed. - Easy Intraction: Added all modules and methods for easy intraction.
- Contribute: Feel free to fork this repo and send pull request.
- Pytest Support: create the
.envfile from.env_exampleand use pytest to start testing. - Test Cases: For now simple test methods are used and more test cases will be added soon.
This module is licensed for Radin System. For details, see the LICENSE file.