moovone/timekit-php-sdk
此包已被废弃且不再维护。未建议替代包。
timekit.io API的基本PHP SDK
v0.12.0
2019-08-30 09:23 UTC
Requires
- php: ^7.1
- ext-json: *
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: ^8
- symfony/var-dumper: ^4.2
This package is auto-updated.
Last update: 2024-04-29 04:09:09 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提供以下可用性约束的模型
- 允许日期和时间: AllowDayAndTimeAvailabilityConstraint
- 阻止日期和时间: BlockDayAndTimeAvailabilityConstraint
- 允许小时: AllowHoursAvailabilityConstraint
- 阻止小时: BlockHoursAvailabilityConstraint
- 允许日期: AllowDayAvailabilityConstraint
- 阻止日期: BlockDayAvailabilityConstraint
- 允许时间段: AllowPeriodAvailabilityConstraint
- 阻止时间段: BlockPeriodAvailabilityConstraint
- 允许工作日: AllowWeekdaysAvailabilityConstraint
- 阻止工作日: BlockWeekdaysAvailabilityConstraint
- 允许周末: AllowWeekendsAvailabilityConstraint
- 阻止周末: BlockWeekendsAvailabilityConstraint
所有这些模型都提供了一个 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);