Skip to main content

Package for interacting with the Dvinci RestAPI

Project description

dvinci_api

Table of Contents

Overview

The dvinci_api package provides a Python interface for interacting with the Dvinci RestAPI. It allows developers to easily connect to the API, perform CRUD operations, and manage various resources related to job publications, locations, organizational units, and more.

Features

  • Job Publications: Create, retrieve, update, and delete job publications.
  • Locations: Access and manage location information.
  • Organizational Units: Manage organizational units and their details.
  • User Management: Handle users and user groups within the system.
  • Authentication: Simplified authentication process using API tokens.

Getting Started

Before using the package, you need to obtain an API token from the Dvinci platform. The token is used to authenticate your requests and access the API endpoints. You can generate an API token by following these steps:

  1. Log in to Dvinci: Go to the Dvinci platform and log in to your account.
  2. Generate API Token: Navigate to the user settings and search for your API user. Generate a new API token and copy it to your clipboard.
  3. Use the Token: When making requests to the API, include the API token in the Authorization header.
# To be edited...

Installation

Install the package using pip:

pip install dvinci_api

Usage

This section provides detailed examples of how to use the dvinci_api package for various operations. Below are some common use cases to help you get started.

Authentication

Before making any API calls, you need to authenticate using your Dvinci API credentials.

from dvinci_api.core.auth import DvinciAuth

# Set up authentication
auth = DvinciAuth(user="your_username", token="your_api_token")

Job Publications

Get All Job Publications

Retrieve all job publications.

from dvinci_api.endpoints.job_publications import JobPublicationsAPI

# Create an API client
client = JobPublicationsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all job publications
publications = client.get_job_publications()
print(publications)

Get Job Publication by ID

Retrieve a specific job publication by its ID

# Get a job publication by ID
publication_id = "12345"
publication = client.get_job_publication_by_id(publication_id)
print(publication)

Locations

Get All Locations

Retrieve all locations.

Code kopieren
from dvinci_api.endpoints.locations import LocationsAPI

# Create an API client for locations
locations_client = LocationsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all locations
locations = locations_client.get_locations()
print(locations)

Get Location by ID

Retrieve a specific location by its ID

# Get a location by ID
location_id = "1159"
location = locations_client.get_location_by_id(location_id)
print(location)

Organizational Units

Get All Organizational Units

Retrieve all organizational units.

from dvinci_api.endpoints.org_units import OrgUnitsAPI

# Create an API client for organizational units

org_units_client = OrgUnitsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all organizational units

org_units = org_units_client.get_org_units()
print(org_units)

Get Organizational Unit by ID

Retrieve a specific organizational unit by its ID

# Get an organizational unit by ID

org_unit_id = "5678"
org_unit = org_units_client.get_org_unit_by_id(org_unit_id)
print(org_unit)
Users and User Groups
Get All Users
Retrieve all users.

```python
from dvinci_api.endpoints.users import UsersAPI

# Create an API client for users

users_client = UsersAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all users

users = users_client.get_users()
print(users)

Get User by ID Retrieve a specific user by their ID.

#### Get a user by ID

user_id = "7890"
user = users_client.get_user_by_id(user_id)
print(user)
return 1

These examples cover some of the basic functionalities of the dvinci_api package. For more detailed information and advanced usage, please refer to the full documentation.

## Authentication

To use the `dvinci_api` package, you need to authenticate with the Dvinci API using your username and API token.

```python
from dvinci_api.core.auth import DvinciAuth

# Set up authentication
auth = DvinciAuth(user="your_username", token="your_api_token")

API Endpoints

Job Publications

Get All Job Publications

Retrieve all job publications.

Code kopieren
from dvinci_api.endpoints.job_publications import JobPublicationsAPI

### Create an API client

client = JobPublicationsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all job publications from the API

publications = client.get_job_publications()
print(publications)

Get Job Publication by ID

Retrieve a specific job publication by its ID.

# Get a job publication by ID

publication_id = "12345"
publication = client.get_job_publication_by_id(publication_id)
print(publication)

Job Publication Channels

Get All Job Publication Channels

Retrieve all job publication channels.

from dvinci_api.endpoints.job_publication_channels import JobPublicationChannelsAPI

# Create an API client for job publication channels

channels_client = JobPublicationChannelsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all job publication channels

channels = channels_client.get_job_publication_channels()
print(channels)

Get Job Publication Channel by ID

Retrieve a specific job publication channel by its ID.

# Get a job publication channel by ID

channel_id = "channel_id"
channel = channels_client.get_channel_by_id(channel_id)
print(channel)

Job Publication Placements Get All Job Publication Placements Retrieve all job publication placements.

from dvinci_api.endpoints.job_publication_placements import JobPublicationPlacementsAPI

# Create an API client for job publication placements
placements_client = JobPublicationPlacementsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all job publication placements
placements = placements_client.get_job_publication_placements()
print(placements)

Get Job Publication Placement by ID Retrieve a specific job publication placement by its ID.

# Get a job publication placement by ID
placement_id = "placement_id"
placement = placements_client.get_job_publication_placement_by_id(placement_id)
print(placement)

Locations Get All Locations Retrieve all locations.

from dvinci_api.endpoints.locations import LocationsAPI

# Create an API client for locations
locations_client = LocationsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all locations
locations = locations_client.get_locations()
print(locations)

Get Location by ID Retrieve a specific location by its ID.

# Get a location by ID
location_id = "1159"
location = locations_client.get_location_by_id(location_id)
print(location)

Onboardings Get All Onboardings Retrieve all onboardings.

from dvinci_api.endpoints.onboardings import OnboardingsAPI

# Create an API client for onboardings
onboardings_client = OnboardingsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all onboardings
onboardings = onboardings_client.get_onboardings()
print(onboardings)

Get Onboarding by ID Retrieve a specific onboarding by its ID.

# Get an onboarding by ID
onboarding_id = "onboarding_id"
onboarding = onboardings_client.get_onboarding_by_id(onboarding_id)
print(onboarding)

Organizational Units Get All Organizational Units Retrieve all organizational units.

from dvinci_api.endpoints.org_units import OrgUnitsAPI

# Create an API client for organizational units
org_units_client = OrgUnitsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all organizational units
org_units = org_units_client.get_org_units()
print(org_units)

Get Organizational Unit by ID Retrieve a specific organizational unit by its ID.

# Get an organizational unit by ID
org_unit_id = "5678"
org_unit = org_units_client.get_org_unit_by_id(org_unit_id)
print(org_unit)

Persons Get All Persons Retrieve all persons.

from dvinci_api.endpoints.persons import PersonsAPI

# Create an API client for persons
persons_client = PersonsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all persons
persons = persons_client.get_persons()
print(persons)

Get Person by ID Retrieve a specific person by their ID.

# Get a person by ID
person_id = "person_id"
person = persons_client.get_person_by_id(person_id)
print(person)

User Groups Get All User Groups Retrieve all user groups.

from dvinci_api.endpoints.user_groups import UserGroupsAPI

# Create an API client for user groups
user_groups_client = UserGroupsAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all user groups
user_groups = user_groups_client.get_user_groups()
print(user_groups)

Get User Group by ID Retrieve a specific user group by its ID.

# Get a user group by ID

user_group_id = "user_group_id"
user_group = user_groups_client.get_user_group_by_id(user_group_id)
print(user_group)

Users Get All Users Retrieve all users.

from dvinci_api.endpoints.users import UsersAPI

# Create an API client for users

users_client = UsersAPI(base_url="https://job.dvinci.com/restApi", auth=auth)

# Get all users

users = users_client.get_users()
print(users)

Get User by ID Retrieve a specific user by their ID.

# Get a user by ID

user_id = "7890"
user = users_client.get_user_by_id(user_id)
print(user)

Error Handling The dvinci_api package provides custom exceptions for handling various errors that may occur during API requests.

API Exception Handle API request errors.

from dvinci_api.exceptions.api_exceptions import ApiException

try:
response = client.get_job_publications()
except ApiException as e:
print(f"API error occurred: {e}")

Authentication Exception Handle authentication errors.

from dvinci_api.exceptions.auth_exceptions import AuthException

try:
auth = DvinciAuth(user="your_username", token="your_api_token")
except AuthException as e:
print(f"Authentication error occurred: {e}")

Testing To run the tests for the dvinci_api package, use the pytest framework. Ensure all dependencies are installed and the package is correctly set up.

# Run all tests
pytest

This will discover and execute all the test cases defined in the tests directory. You can also run specific tests or test files by specifying the test file or test case name.

# Run specific test file
pytest tests/test_job_publications.py

# or

pytest tests/test_locations.py

Contributing

I welcome any feedback, ideas, and suggestions for improving the project. If you have found a bug, want to propose a new feature, or have suggestions for improvements, please follow these steps:

  1. Create an Issue: Open an Issue on GitHub to describe the problem or proposed enhancement.
  2. Discussion: Let's discuss the issue to ensure we have a clear understanding of what needs to be changed.
  3. Pull Request: Fork the repository, make the desired changes, and open a Pull Request. Please describe the changes in detail and link to the relevant issue if applicable.

Development

To set up the development environment:

  1. Clone the repository:

    git clone https://github.com/SiemensHalske/dvinci_api.git
    
  2. Navigate to the project directory:

    cd dvinci_api
    
  3. Create a virtual environment:

    python -m venv .venv
    source .venv/bin/activate  # On Windows use `.venv\Scripts\activate`
    
  4. Install the dependencies:

    pip install -r requirements.txt
    

Feel free to reach out if you have any questions or need further assistance. Happy coding!

License

For license information, see LICENSE.

Contact Information

For questions or support, please contact hendrik.siemens@takko.de.

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

dvinci_api-0.9.4.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

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

dvinci_api-0.9.4-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file dvinci_api-0.9.4.tar.gz.

File metadata

  • Download URL: dvinci_api-0.9.4.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for dvinci_api-0.9.4.tar.gz
Algorithm Hash digest
SHA256 6618316e77f64bd71ae1533a33ab07a49c7b37b54e0f6e370d93b74f020d2e48
MD5 bd7c6685e72b10baca9fe3d409868a6d
BLAKE2b-256 7127d34a072dba7612270052093fb65fc918e9aeb585aa9d9b7a6135327d2e67

See more details on using hashes here.

File details

Details for the file dvinci_api-0.9.4-py3-none-any.whl.

File metadata

  • Download URL: dvinci_api-0.9.4-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for dvinci_api-0.9.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4320484835c7b20025ea5c82e2eb20098975d514263afa76f6346cd0abe87186
MD5 d310a3e615d20e772a0dfbaba92bada1
BLAKE2b-256 7bbf9f03d8bf65a92f2052c80a3ec513f69a6494afa500321030b86e212f4a0f

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