PHP code example of smart-dato / desk365-sdk

1. Go to this page and download the library: Download smart-dato/desk365-sdk library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

smart-dato / desk365-sdk example snippets


use SmartDato\Desk365\Desk365;
use SmartDato\Desk365\Facades\Desk365 as Desk365Facade;

// Using the facade
Desk365Facade::connector()->send(new GetTicketsRequest());

// Or resolve from container
$desk365 = app(Desk365::class);
$desk365->connector()->send(new GetTicketsRequest());

// Or instantiate directly (useful for testing or multiple instances)
$desk365 = new Desk365(
    apiKey: 'your-api-key',
    baseUrl: 'https://yourcompany.desk365.io/apis/',
);

use SmartDato\Desk365\Requests\Tickets\GetTicketsRequest;

$response = $desk365->connector()->send(new GetTicketsRequest());
$tickets = $response->json('tickets');

use SmartDato\Desk365\Requests\Tickets\GetTicketDetailsRequest;

$response = $desk365->connector()->send(
    new GetTicketDetailsRequest(ticketNumber: 12345)
);
$ticket = $response->json();

use SmartDato\Desk365\Data\Tickets\CreateTicketData;
use SmartDato\Desk365\Enums\Ticket\TicketPriority;
use SmartDato\Desk365\Enums\Ticket\TicketStatus;
use SmartDato\Desk365\Enums\Ticket\TicketType;
use SmartDato\Desk365\Requests\Tickets\CreateTicketRequest;

$response = $desk365->connector()->send(
    new CreateTicketRequest(
        new CreateTicketData(
            email: '[email protected]',
            subject: 'Help needed',
            description: '<p>I need assistance with...</p>',
            status: TicketStatus::Open,
            priority: TicketPriority::Medium,
            type: TicketType::Question,
        )
    )
);

use SmartDato\Desk365\Requests\Tickets\CreateTicketWithAttachmentRequest;

$response = $desk365->connector()->send(
    new CreateTicketWithAttachmentRequest(
        data: new CreateTicketData(
            email: '[email protected]',
            subject: 'Issue with screenshot',
            description: 'See attached files',
            status: TicketStatus::Open,
            priority: TicketPriority::Low,
        ),
        files: ['/path/to/screenshot.png', '/path/to/log.txt'],
    )
);

use SmartDato\Desk365\Data\Tickets\UpdateTicketData;
use SmartDato\Desk365\Requests\Tickets\UpdateTicketRequest;

$response = $desk365->connector()->send(
    new UpdateTicketRequest(
        ticketNumber: 12345,
        data: new UpdateTicketData(
            status: TicketStatus::Resolved,
            priority: TicketPriority::Low,
        ),
    )
);

use SmartDato\Desk365\Enums\ConversationSortBy;
use SmartDato\Desk365\Requests\Tickets\GetTicketConversationsRequest;

$response = $desk365->connector()->send(
    new GetTicketConversationsRequest(
        ticketNumber: 12345,
        sortBy: ConversationSortBy::LatestFirst,
        

use SmartDato\Desk365\Requests\Tickets\AddReplyRequest;

$response = $desk365->connector()->send(
    new AddReplyRequest(
        ticketNumber: 12345,
        replyBody: 'Thank you for contacting us. We are looking into this.',
        agentEmail: '[email protected]',
    )
);

use SmartDato\Desk365\Enums\Ticket\TicketVisibility;
use SmartDato\Desk365\Requests\Tickets\AddNoteRequest;

$response = $desk365->connector()->send(
    new AddNoteRequest(
        ticketNumber: 12345,
        noteBody: 'Internal note: Customer called about this issue.',
        visibility: TicketVisibility::Private,
    )
);

use SmartDato\Desk365\Requests\Contacts\GetContactsRequest;
use SmartDato\Desk365\Requests\Contacts\GetContactDetailsRequest;

// List all contacts
$response = $desk365->connector()->send(new GetContactsRequest());

// Get contact details
$response = $desk365->connector()->send(
    new GetContactDetailsRequest(email: '[email protected]')
);

use SmartDato\Desk365\Requests\Companies\GetCompaniesRequest;
use SmartDato\Desk365\Requests\Companies\GetCompanyDetailsRequest;

// List all companies
$response = $desk365->connector()->send(new GetCompaniesRequest());

// Get company details
$response = $desk365->connector()->send(
    new GetCompanyDetailsRequest(name: 'Acme Corp')
);

use SmartDato\Desk365\Requests\KnowledgeBase\Articles\GetArticlesRequest;
use SmartDato\Desk365\Requests\KnowledgeBase\Articles\GetArticleDetailsRequest;
use SmartDato\Desk365\Requests\KnowledgeBase\Categories\GetCategoryDetailsRequest;
use SmartDato\Desk365\Requests\KnowledgeBase\Folders\GetFolderDetailsRequest;

// List all articles
$response = $desk365->connector()->send(new GetArticlesRequest());

// Get article details
$response = $desk365->connector()->send(
    new GetArticleDetailsRequest(articleId: 123)
);

use SmartDato\Desk365\Requests\Surveys\GetSurveysRequest;
use SmartDato\Desk365\Requests\Surveys\GetSurveyRatingsRequest;

$response = $desk365->connector()->send(new GetSurveysRequest());
$response = $desk365->connector()->send(new GetSurveyRatingsRequest());

use SmartDato\Desk365\Requests\TimeEntries\GetTimeEntriesRequest;
use SmartDato\Desk365\Requests\TimeEntries\GetTimeEntryDetailsRequest;

$response = $desk365->connector()->send(new GetTimeEntriesRequest());
$response = $desk365->connector()->send(
    new GetTimeEntryDetailsRequest(timeEntryId: 456)
);

use SmartDato\Desk365\Requests\Contracts\GetContractsRequest;
use SmartDato\Desk365\Requests\Contracts\GetContractDetailsRequest;

$response = $desk365->connector()->send(new GetContractsRequest());
$response = $desk365->connector()->send(
    new GetContractDetailsRequest(contractId: 789)
);
bash
php artisan vendor:publish --tag="desk365-sdk-config"