moovone/timekit-php-sdk

此包已被废弃且不再维护。未建议替代包。

timekit.io API的基本PHP SDK

v0.12.0 2019-08-30 09:23 UTC

README

警告:此库处于开发中。首次发布应在几天内完成。

此库是timekit.io API的基本PHP SDK。

此SDK没有完全覆盖timekit.io API端点。仅覆盖以下端点

覆盖端点 Timekit.io 文档
POST /resources https://developers.timekit.io/reference#resources
PUT /resources/{id} https://developers.timekit.io/reference#resources-id
DELETE /resources/{id} https://developers.timekit.io/reference#delete-resource
GET /resources/{id} https://developers.timekit.io/reference#resourcesid
POST /bookings https://developers.timekit.io/reference#bookings
DELETE /bookings/{id} https://developers.timekit.io/reference#delete-a-booking
PUT /bookings/{id}/{state} https://developers.timekit.io/reference#bookingsidaction
POST /availability https://developers.timekit.io/reference#query-availability-v2

安装

composer require moovone/timekit-php-sdk

使用方法

use Moovone\TimekitPhpSdk\GuzzleClient;

$httpClient = new GuzzleClient($apiKey);

$payload = [  
  'timezone' => 'Europe/Paris',  
  'name' => 'John Doe',  
];  
  
$resource = $this->httpClient->createResource($payload);

模型

此SDK提供以下可用性约束的模型

所有这些模型都提供了一个 convertToPayloadEntry 方法,它将这些模型转换为符合timekit-api负载的json。

示例

创建资源

$payload = [  
  'timezone' => $timezone,  
  'first_name' => $firstName,  
  'last_name' => $lastName,  
  'name' => sprintf('%s %s', $firstName, $lastName),  
];  
  
$resource = $this->httpClient->createResource($payload);

更新资源

$payload = [  
  'timezone' => $timezone,  
  'first_name' => $firstName,  
  'last_name' => $lastName,  
  'name' => sprintf('%s %s', $firstName, $lastName),  
];  
  
$this->httpClient->updateResource($resourceId, $payload);

删除资源

$this->httpClient->deleteResource($resourceId);

获取资源

$resource = $this->httpClient->getResource($resourceId);

创建预约

$start = (new \DateTime())->modify('+1 hour');
$booking = $this->httpClient->createBooking($remoteId, $start, (clone $start)->modify('+30 minutes'), 'My first booking');

删除预约

$this->httpClient->deleteBooking($bookingId);

更新预约状态

use MoovOne\TimekitPhpSdk\Model\Booking;

$booking = $this->httpClient->updateBookingState($bookingId, Booking::STATE_CANCEL);

获取可用性

use MoovOne\TimekitPhpSdk\Model\Availability;

$payload = [
	'mode' => Availability::TYPE_ROUNDROBIN_RANDOM,
	'length' => '60 minutes',
	'round_to_nearest_hour' => false,
	'from' => 'tomorrow',
	'to' => '3 days',
	'buffer' => '5 minutes',
	'timeslot_increments' => '15 minutes',
	'resources' => [$resourceId],
];

$availabilities = $this->httpClient->getAvailabilities($payload);