Package for interacting with the Dvinci RestAPI
Project description
dvinci_api
Table of Contents
- dvinci_api
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:
- Log in to Dvinci: Go to the Dvinci platform and log in to your account.
- 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.
- Use the Token: When making requests to the API, include the API token in the
Authorizationheader.
# 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.takko.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.takko.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.takko.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.takko.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.takko.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.takko.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.takko.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.takko.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.takko.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.takko.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.takko.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.takko.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.takko.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:
- Create an Issue: Open an Issue on GitHub to describe the problem or proposed enhancement.
- Discussion: Let's discuss the issue to ensure we have a clear understanding of what needs to be changed.
- 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:
-
Clone the repository:
git clone https://github.com/SiemensHalske/dvinci_api.git
-
Navigate to the project directory:
cd dvinci_api
-
Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
-
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dvinci_api-0.9.3.tar.gz.
File metadata
- Download URL: dvinci_api-0.9.3.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c91e0440bc10398ae2bfc0592a88c85f3ef98581a38bd4b3785894d34bb6661
|
|
| MD5 |
4cec88e658b5463fbec5be328eae305c
|
|
| BLAKE2b-256 |
8878dae7d765b89fa61ad368bdf0705ceccb69016060171ba29ad531a0a0cb7d
|
File details
Details for the file dvinci_api-0.9.3-py3-none-any.whl.
File metadata
- Download URL: dvinci_api-0.9.3-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1633e5151d36c735900062a71a6f83fce9d8555d8f8448ba379f258f812bdc8
|
|
| MD5 |
f77ffa72da8bda108d0e3db36a109a27
|
|
| BLAKE2b-256 |
c6eb059df9012d54e7b187b749510aa0b1276234ede087183701b04a3a08e1e1
|