PHP code example of devmatika / desk365
1. Go to this page and download the library: Download devmatika/desk365 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/ */
devmatika / desk365 example snippets
use Devmatika\Desk365\Facades\Desk365;
use Devmatika\Desk365\DTO\{
TicketCreateDto,
TicketUpdateDto,
TicketFilterDto,
CommentDto,
AgentDto,
CustomerDto,
ApiConfigDto
};
// Initialize with config
$config = new ApiConfigDto(
baseUrl: config('desk365.base_url'),
apiKey: config('desk365.api_key'),
apiSecret: config('desk365.api_secret'),
timeout: config('desk365.timeout', 30),
version: config('desk365.version', 'v3')
);
Desk365::init($config);
$filters = new TicketFilterDto(
status: 'open',
priority: 'high',
page: 1,
perPage: 20
);
$response = Desk365::getAllTickets($filters);
$response = Desk365::getTicket('TKT-001');
$ticketData = new TicketCreateDto(
email: '[email protected] ',
subject: 'Support Request',
description: 'I need help with my account',
assignedTo: 'agent_1',
group: 'support',
category: 'technical',
status: 'open',
priority: 1,
type: 'Question'
);
$response = Desk365::createTicket($ticketData);
$ticketData = new TicketCreateDto(
email: '[email protected] ',
subject: 'Support Request',
description: 'I need help',
assignedTo: 'agent_1',
group: 'support',
category: 'technical',
file: $request->file('attachment')
);
$response = Desk365::createTicket($ticketData);
$updateData = new TicketUpdateDto(
status: 'in_progress',
priority: 2,
assignedTo: 'agent_2'
);
$response = Desk365::updateTicket('TKT-001', $updateData);
$response = Desk365::deleteTicket('TKT-001');
$filters = new TicketFilterDto(status: 'open');
$response = Desk365::searchTickets('support request', $filters);
$response = Desk365::closeTicket('TKT-001');
$response = Desk365::reopenTicket('TKT-001');
$response = Desk365::updateTicketStatus('TKT-001', 'closed');
$response = Desk365::updateTicketPriority('TKT-001', '3');
$response = Desk365::getComments('TKT-001', ['page' => 1, 'per_page' => 20]);
$response = Desk365::getComment('TKT-001', 'comment_123');
$comment = new CommentDto(
content: 'This is a test comment',
authorId: 'agent_1',
authorName: 'John Doe',
authorType: 'agent',
isPublic: true
);
$response = Desk365::addComment('TKT-001', $comment);
$comment = new CommentDto(content: 'Updated comment');
$response = Desk365::updateComment('TKT-001', 'comment_123', $comment);
$response = Desk365::deleteComment('TKT-001', 'comment_123');
$response = Desk365::uploadAttachment('TKT-001', $file, [
'filename' => 'document.pdf',
'description' => 'Support document'
]);
$response = Desk365::getAttachments('TKT-001');
$response = Desk365::getAttachment('TKT-001', 'attachment_123');
$response = Desk365::deleteAttachment('TKT-001', 'attachment_123');
$response = Desk365::downloadAttachment('TKT-001', 'attachment_123');
$response = Desk365::getAllAgents(['page' => 1, 'per_page' => 20]);
$response = Desk365::getAgent('agent_123');
$agentData = new AgentDto(
name: 'John Doe',
email: '[email protected] ',
phone: '+1234567890',
role: 'agent',
isActive: true
);
$response = Desk365::createAgent($agentData);
$agentData = new AgentDto(name: 'Jane Doe', role: 'admin');
$response = Desk365::updateAgent('agent_123', $agentData);
$response = Desk365::deleteAgent('agent_123');
$response = Desk365::getAllCustomers(['page' => 1, 'per_page' => 20]);
$response = Desk365::getCustomer('customer_123');
$customerData = new CustomerDto(
name: 'John Customer',
email: '[email protected] ',
phone: '+1234567890',
company: 'Example Corp'
);
$response = Desk365::createCustomer($customerData);
$customerData = new CustomerDto(name: 'Jane Customer');
$response = Desk365::updateCustomer('customer_123', $customerData);
$response = Desk365::deleteCustomer('customer_123');
$response = Desk365::searchCustomers('john', ['page' => 1]);
$filters = new TicketFilterDto(status: 'open', dateFrom: '2024-01-01');
$response = Desk365::getTicketStatistics($filters);
$response = Desk365::getAgentStatistics('agent_123', '2024-01-01', '2024-12-31');
$response = Desk365::getDashboardData(['date_from' => '2024-01-01']);
$response = Desk365::createTicket($ticketData);
if ($response->isSuccess()) {
$data = $response->getData();
$message = $response->getMessage();
$statusCode = $response->getStatusCode();
$meta = $response->getMeta(); // For pagination, etc.
} else {
$errors = $response->getErrors();
$message = $response->getMessage();
$statusCode = $response->getStatusCode();
}
$response = Desk365::getTicket('invalid_id');
if ($response->isError()) {
Log::error('Desk365 Error', [
'message' => $response->getMessage(),
'errors' => $response->getErrors(),
'status_code' => $response->getStatusCode()
]);
}
bash
php artisan vendor:publish --tag="desk365-config"