rebelcode / rcmod-eddbk-rest-api
A RebelCode module that provides the REST API used in EDD Bookings.
Installs: 1 027
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 4
Type:rc-module
Requires
- php: ^5.4 | ^7.0
- dhii/cqrs-resource-model-interface: ^0.2-alpha1
- dhii/data-object-abstract: ^0.1-alpha1
- dhii/expression-interface: ^0.1 | ^0.2
- dhii/iterator-base: ^0.1-alpha3
- dhii/iterator-helper-base: ^0.1-alpha2
- dhii/normalization-helper-base: ^0.1-alpha2
- dhii/sql-interface: ^0.1-alpha1
- dhii/validation-base: ^0.2-alpha1
- rebelcode/booking-transitioner: ^0.2-alpha2
- rebelcode/entity-manager-interface: ^0.1-alpha2
- rebelcode/modular: ^0.1-alpha1
- rebelcode/transformers: ^0.1-alpha1
- rebelcode/wp-nonce: ^0.1
Requires (Dev)
- codeclimate/php-test-reporter: <=0.3.2
- dhii/php-cs-fixer-config: ^0.1
- johnpbloch/wordpress-core: ^4.0
- phpunit/phpunit: ^4.8
- ptrofimov/xpmock: ^1.1
- rebelcode/rcmod-eddbk-cqrs: ^0.1-alpha2
This package is auto-updated.
Last update: 2021-05-10 10:21:15 UTC
README
A RebelCode module that provides the REST API used in EDD Bookings.
REST API Details
1. Bookings
Retrieving Booking Info
GET /bookings/<id>
Retrieves a booking by ID.
The response will contain an object with the following properties:
Property | Type | Description | Values |
---|---|---|---|
id |
integer | The ID of the booking | positive non-zero integer |
start |
integer | The start time of the booking in the format Y-M-D H:i:s |
integer |
end |
integer | The end time of the booking in the format Y-M-D H:i:s |
integer |
status |
string | The current status of the booking | "" , "draft" , "in_cart" , "pending" , "approved" , "rejected" , "scheduled" , "cancelled" , "completed" |
service |
service | The service for which the booking was made | Service object |
resource |
integer | The ID of the resource for which the booking was made | positive non-zero integer |
client |
client | The client for the booking | Client object or null |
clientTzName |
string | The client's timezone name | any timezone name or null |
clientTzOffset |
integer | The client's UTC timezone offset in seconds, at the start time of the booking |
integer or null |
payment |
integer | The payment number | integer or null |
notes |
string | Admin booking notes | string |
Query Bookings
GET /bookings?field=value&...
Multiple field and value pairs may be provided to narrow the query. The following table lists the available query fields and how a provided value is compared:
Field | Description | Value Type |
---|---|---|
id |
The booking with the given ID | integer |
start |
The bookings that start at or after the given UTC timestamp | integer |
end |
The bookings that end at or before the given UTC timestamp | integer |
service |
The bookings made for the service with the given ID | positive non-zero integer |
resource |
The bookings made for the resource with the given ID | positive non-zero integer |
client |
The bookings made for the client with the given ID | positive non-zero integer |
payment |
The bookings associated with the payment with the given ID | positive non-zero integer |
status |
The booking statuses to filter by | comma separated list (without spaces!) of status names |
The following additional filters are also available:
Filter | Description | Value Type | Default |
---|---|---|---|
numItems |
The maximum number of items to receive per page |
positive non-zero integer | 20 |
page |
The page number | positive non-zero integer | 1 |
The response is an object with 3 keys: items
, count
and statuses
. Example:
{
items: [
{
"id": "21",
"start": "2018-05-01 12:00:00",
"end": "2018-05-01 13:30:00",
"status": "draft",
"service": {
"id": 8,
"name": "Test",
"color": "#00ccff"
},
"resource": "0",
"client": {
"id": "6",
"name": "Test User",
"email": "test@eddbk.com"
},
"clientTzName": "Europe/Rome",
"clientTzOffset": 1,
"paymentNumber": 52,
"notes": ""
}
],
"count": 1,
"statuses": {
"none": 0,
"draft": 1,
"in_cart": 0,
"pending": 0,
"approved": 0,
"rejected": 0,
"scheduled": 0,
"completed": 0,
"cancelled": 0
}
}
The statuses
counts are calculated independently from any query filters.
Creating Bookings
POST /bookings
Creates a new booking and responds with the booking object. The following table lists the available fields:
Property | Type | Description | Required? |
---|---|---|---|
start |
integer | The start time of the booking as a UTC timestamp | ✅ |
end |
integer | The end time of the booking as a UTC timestamp | ✅ |
service |
positive non-zero integer | The ID of the service for which the booking will be made | ✅ |
resource |
positive non-zero integer | The ID of the resource for which the booking will be made | ✅ |
transition |
"draft" or "cart" |
The initial transition to apply to the booking | ✅ |
client |
positive non-zero integer | The ID of the client for which the booking will be made | |
clientTz |
string | The name of the client's timezone | |
payment |
integer or null |
The payment number | |
notes |
string | Admin booking notes |
Updating Bookings
PATCH /bookings/<id>
Updates a booking. The following table lists the available fields for updating:
Property | Type | Description |
---|---|---|
start |
integer | The start time of the booking as a UTC timestamp |
end |
integer | The end time of the booking as a UTC timestamp |
service |
positive non-zero integer | The ID of the service for which the booking will be made |
resource |
positive non-zero integer | The ID of the resource for which the booking will be made |
client |
positive non-zero integer | The ID of the client for which the booking will be made |
clientTz |
string | The name of the client's timezone |
payment |
integer | The payment number |
notes |
string | Admin booking notes |
Deleting Bookings
DELETE /bookings/<id>
Deletes the booking with the given ID.