API === A REST API (built with ``djangorestframework``) is available in order to list, create, update and delete tickets from other tools thanks to HTTP requests. You must be authenticated to access the API, the URL endpoint is ``/api/tickets/``. You can configure how you wish to authenticate to the API by customizing the ``DEFAULT_AUTHENTICATION_CLASSES`` key in the ``REST_FRAMEWORK`` setting (more information on this page : https://www.django-rest-framework.org/api-guide/authentication/) GET --- Accessing the endpoint ``/api/tickets/`` with a **GET** request will return you the complete list of tickets. Accessing the endpoint ``/api/tickets/`` with a **GET** request will return you the data of the ticket you provided the ID. POST ---- Accessing the endpoint ``/api/tickets/`` with a **POST** request will let you create a new tickets. You need to provide a JSON body with the following data : - **queue**: ID of the queue - **title**: the title (subject) of the ticket - **description**: the description of the ticket - **resolution**: an optonal text for the resoltuion of the ticket - **submitter_email**: the email of the ticket submitter - **assigned_to**: ID of the ticket's assigned user - **status**: integer corresponding to the status (OPEN=1, REOPENED=2, RESOLVED=3, CLOSED=4, DUPLICATE=5). It is OPEN by default. - **on_hold**: boolean to indicates if the ticket is on hold - **priority**: integer corresponding to different degrees of priority 1 to 5 (1 is Critical and 5 is Very Low) - **due_date**: date representation for when the ticket is due - **last_escalation**: date representation of when last escalation has been done - **merged_to**: ID of the ticket to which it is merged Moreover, if you created custom fields, you can add them into the body with the key ``custom_``. Here is an example of a cURL request to create a ticket (using Basic authentication) :: curl --location --request POST 'http://127.0.0.1:8000/api/tickets/' \ --header 'Authorization: Basic YWRtaW46YWRtaW4=' \ --header 'Content-Type: application/json' \ --data-raw '{"queue": 1, "title": "Test Ticket API", "description": "Test create ticket from API", "submitter_email": "test@mail.com","priority": 4}' PUT --- Accessing the endpoint ``/api/tickets/`` with a **PUT** request will let you update the data of the ticket you provided the ID. You must include all fields in the JSON body. PATCH ----- Accessing the endpoint ``/api/tickets/`` with a **PATCH** request will let you do a partial update of the data of the ticket you provided the ID. You can include only the fields you need to update in the JSON body. DELETE ------ Accessing the endpoint ``/api/tickets/`` with a **DELETE** request will let you delete the ticket you provided the ID.