Skip to main content

ORM for Custom Objects de Zendesk

Project description

Mercury (ORM Zendesk CustomObjects)

Mercury is a Python ORM (Object-Relational Mapping) designed to integrate seamlessly with the Zendesk Custom Objects API. It provides a Django-like interface for defining, managing, and interacting with Zendesk custom objects and records, simplifying the communication with Zendesk's API.

Key Features

  • Custom Object Representation: Define Zendesk custom objects using Python classes.
  • Automatic Record Management: Built-in methods for creating, reading, updating, and deleting records via Zendesk's API.
  • Support for All Field Types: Compatible with all Zendesk custom field types including text, dropdown, checkbox, date, integer, and more.
  • Automatic Object Creation: Automatically create Zendesk custom objects and fields from Python class definitions.
  • Easy Record Operations: Simple API to manage custom object records, with built-in support for querying, filtering, and pagination.

Installation

pip install mercury-orm
# add variables in .env or:
export ZENDESK_SUBDOMAIN=<your_zendesk_subdomain>.
export ZENDESK_API_TOKEN=<your_zendesk_api_token>.
export ZENDESK_EMAIL=<your_zendesk_email>.

CRUD Operations with Records

Mercury ORM provides simple methods for performing CRUD (Create, Read, Update, Delete) operations on Zendesk custom object records. Below are examples of how to manage records in your custom objects.

Creating a CustomObjects

class Product(CustomObject):
    name = fields.TextField("name")
    code = fields.TextField("code")
    description = fields.TextareaField("description")
    price = fields.DecimalField("price")
    active = fields.CheckboxField("active")
    voltage = fields.DropdownField("voltage", choices=["220", "110", "Bivolt"])

Creating a Custom Object and Fields in Zendesk

Once you define the custom object class, you can create it in Zendesk using ZendeskObjectManager. This will automatically create the custom object and its fields in Zendesk.

from mercuryormc.zendesk_manager import ZendeskObjectManager

# Create the custom object and fields in Zendesk
manager = ZendeskObjectManager()
manager.create_custom_object_from_model(Product)
# or
manager.get_or_create_custom_object_from_model(Product)

Record Manager

Each custom object class is automatically assigned a RecordManager that handles interaction with the Zendesk API. The RecordManager allows you to:

  • Create records: Product.objects.create(**kwargs)
  • Get a single record: Product.objects.get(id=1)
  • Filter records: Product.objects.filter(active=True)
  • Delete records: Product.objects.delete(id=1)
  • Retrieve all records: Product.objects.all()
  • Search all records: Product.objects.search(word="something")

Creating a Record

You can create a new record by instantiating your custom object and calling the save() method:

product = Product(name="Sample Product", code="12345", price=99.99, active=True)
product.save()

#or
Product.objects.create(name="Sample Product", code="12345", price=99.99, active=True)

Retrieving a Record

You can retrieve an individual record by using the get() method:

retrieved_product = Product.objects.get(id=product.id)

Updating a Record

To update a record, modify its attributes and call the save() method again:

retrieved_product.price = 89.99
retrieved_product.save()

Deleting a Record

To delete a record from Zendesk, call the delete() method on the object:

retrieved_product.delete()

Querying and Filtering Records

You can retrieve all records or filter them based on certain criteria.

all_products = Product.objects.all()
filtered_products = Product.objects.filter(active=True)
last_object = Product.objects.last()

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

mercury_orm-0.1.4.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mercury_orm-0.1.4-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file mercury_orm-0.1.4.tar.gz.

File metadata

  • Download URL: mercury_orm-0.1.4.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for mercury_orm-0.1.4.tar.gz
Algorithm Hash digest
SHA256 d0aa361102ac45ee3b5c272803a095fdf332733af39f48583d4eda7886cc8b5b
MD5 206460a69f92865b2d1efd569e61b5e0
BLAKE2b-256 7fda8892d9229573dccb5c9b6d0484dc1a1781461c2a193497d902a02996f39c

See more details on using hashes here.

File details

Details for the file mercury_orm-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: mercury_orm-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for mercury_orm-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9814336855921446cbe67d9880753ce37d001351b2ecc228b4d3cb37ed5d0356
MD5 fa3763b176cbba7c0559604973234420
BLAKE2b-256 1e4fff6f909a35225d5b1af2f26c3ccd8c4088a5cc3b0edc2c41820a64524b91

See more details on using hashes here.

Supported by

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