Skip to content

uvdesk/api-bundle

Folders and files

NameName
Last commit message
Last commit date
Feb 24, 2020
Apr 4, 2025
Apr 4, 2025
Nov 21, 2019
Nov 21, 2019
Apr 4, 2025
Jul 28, 2022
Nov 8, 2021
Apr 4, 2025
Nov 21, 2019
Apr 4, 2025
Apr 4, 2025
Apr 4, 2025
Mar 25, 2022
Apr 4, 2025
Nov 27, 2024
Apr 4, 2025
Nov 21, 2019
Apr 4, 2025

Repository files navigation

The API bundle allows integration developers to utilize uvdesk's REST api to easily communicate with their community helpdesk system.

Installation

This bundle can be easily integrated into any symfony application (though it is recommended that you're using Symfony 4 as things have changed drastically with the newer Symfony versions). Before continuing, make sure that you're using PHP 7.2 or higher and have Composer installed.

To require the api bundle into your symfony project, simply run the following from your project root:

$ composer require uvdesk/api-bundle

After installing api bundle run the below command:

$ php bin/console doctrine:schema:update --force

Finally clear your project cache by below command(write prod if running in production environment i.e --env prod):

$ php bin/console cache:clear --env dev

API References

Use the below available apis to interact with your helpdesk system.

Session:

  • POST /api/v1/session/login

    Authenticate user credentials and generate an access token in response to access helpdesk apis as the authenticated user.

    Headers:

    {
        "Authorization": "Bearer AUTH_TOKEN"
    }
    

    To generate the required auth token, simply encode the user's email and password separated by a colon in base64 format, i.e. base64_encode("email:password").

    Sample Response:

    {
        "success": true,
        "accessToken": "VBGLASXENR..."
    }
    
  • POST /api/v1/session/logout

    Invalidates an authenticated user access token so that it can't be used anymore.

    Headers:

    {
        "Authorization": "Bearer ACCESS_TOKEN"
    }
    

    ACCESS_TOKEN: The api access token that was generated either using the session login api or directly from the dashboard.

    Sample Response:

    {
        "status": true,
        "message": "Session token has been expired successfully."
    }
    

Tickets:

More examples of ticket related apis can be found over here.

  • GET /tickets

    Get a collection of all user accessible tickets.

    Headers:

    {
        "Authorization": "Bearer ACCESS_TOKEN"
    }
    

    ACCESS_TOKEN: The api access token that was generated either using the session login api or directly from the dashboard.

    Sample Response:

    {
        "tickets": [
            {
                "id": 1,
                "subject": "Support Request ...",
                "isCustomerView": false,
                "status": {
                    "id": 1,
                    "code": "open",
                    "description": "Open",
                    "colorCode": "#7E91F0",
                    "sortOrder": 1
                },
                "group": null,
                "type": {
                    "id": 1,
                    "code": "support",
                    "description": "Support",
                    "isActive": true
                },
                "priority": {
                    "id": 1,
                    "code": "low",
                    "description": "Low",
                    "colorCode": "#2DD051"
                },
                "formatedCreatedAt": "16-05-2023 12:55pm",
                "totalThreads": "0",
                "agent": {
                    "id": 1,
                    "email": "[email protected]",
                    "name": "Sample Agent",
                    "firstName": "Sample",
                    "lastName": "Agent",
                    "isEnabled": true,
                    "profileImagePath": null,
                    "smallThumbnail": null,
                    "isActive": true,
                    "isVerified": true,
                    "designation": null,
                    "contactNumber": null,
                    "signature": null,
                    "ticketAccessLevel": null
                },
                "customer": {
                    "id": 2,
                    "email": "[email protected]",
                    "name": "Sample Customer",
                    "firstName": "Sample",
                    "lastName": "Customer",
                    "contactNumber": null,
                    "profileImagePath": null,
                    "smallThumbnail": null
                }
            }
        ],
        "pagination": {
            "last": 1,
            "current": 1,
            "numItemsPerPage": 15,
            "first": 1,
            "pageCount": 1,
            "totalCount": 1,
            "pageRange": 1,
            "startPage": 1,
            "endPage": 1,
            "pagesInRange": [
                1
            ],
            "firstPageInRange": 1,
            "lastPageInRange": 1,
            "currentItemCount": 1,
            "firstItemNumber": 1,
            "lastItemNumber": 1,
            "url": "#page/replacePage"
        },
        "userDetails": {
            "user": 1,
            "name": "Sample Agent"
        },
        "agents": [
            {
                "id": 1,
                "udId": 1,
                "email": "[email protected]",
                "name": "Sample Agent",
                "smallThumbnail": null
            }
        ],
        "status": [
            {
                "id": 1,
                "code": "open",
                "description": "Open",
                "colorCode": "#7E91F0",
                "sortOrder": 1
            },
            {
                "id": 2,
                "code": "pending",
                "description": "Pending",
                "colorCode": "#FF6A6B",
                "sortOrder": 2
            },
            {
                "id": 3,
                "code": "answered",
                "description": "Answered",
                "colorCode": "#FFDE00",
                "sortOrder": 3
            },
            {
                "id": 4,
                "code": "resolved",
                "description": "Resolved",
                "colorCode": "#2CD651",
                "sortOrder": 4
            },
            {
                "id": 5,
                "code": "closed",
                "description": "Closed",
                "colorCode": "#767676",
                "sortOrder": 5
            },
            {
                "id": 6,
                "code": "spam",
                "description": "Spam",
                "colorCode": "#00A1F2",
                "sortOrder": 6
            }
        ],
        "group": [
            {
                "id": 1,
                "name": "Default"
            }
        ],
        "team": [],
        "priority": [
            {
                "id": 1,
                "code": "low",
                "description": "Low",
                "colorCode": "#2DD051"
            },
            {
                "id": 2,
                "code": "medium",
                "description": "Medium",
                "colorCode": "#F5D02A"
            },
            {
                "id": 3,
                "code": "high",
                "description": "High",
                "colorCode": "#FA8B3C"
            },
            {
                "id": 4,
                "code": "urgent",
                "description": "Urgent",
                "colorCode": "#FF6565"
            }
        ],
        "type": [
            {
                "id": 1,
                "name": "support"
            }
        ],
        "source": {
            "email": "Email",
            "website": "Website"
        }
    }
    

License

The API Bundle and libraries included within the bundle are released under released under the OSL-3.0 license