This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Creates a query to retrieve a list of reservations.
The queryReservations()
function builds a query to retrieve a list of reservations and returns a ReservationsQueryBuilder
object.
The returned object contains the query definition, which is used to run the query using the find() function.
You can refine the query by chaining ReservationsQueryBuilder
functions onto the query. ReservationsQueryBuilder
functions enable you to filter, sort, and control the results that queryReservations()
returns.
queryReservations()
runs with the following ReservationsQueryBuilder
defaults, which you can override:
The following ReservationsQueryBuilder
functions are supported for queryReservations()
. For a full description of the reservation object, see the object returned for the items
property in ReservationsQueryResult
.
PROPERTY | SUPPORTED FILTERS & SORTING |
---|---|
_id | eq() ,ne() ,in() |
status | eq() ,ne() ,in() |
details.startDate | eq() ,ne() ,in() ,lt() ,gt() ,le() ,ge() ,ascending() ,descending() |
This function requires elevated permissions and runs only on the backend and on dashboard pages.
function queryReservations(): ReservationsQueryBuilder;
This function call requires elevation to get the necessary permissions.
import { reservations } from "wix-table-reservations.v2";
import { elevate } from "wix-auth";
import { Permissions, webMethod } from "wix-web-module";
export const myQueryReservationsFunction = webMethod(
Permissions.Anyone,
async () => {
const elevatedQueryReservations = elevate(reservations.queryReservations);
try {
const retrievedReservations = await elevatedQueryReservations()
.gt("details.startDate", new Date("2024-12-04T10:30:00Z"))
.lt("details.startDate", new Date("2024-12-04T17:30:00Z"))
.find();
const nextCursor = retrievedReservations._nextCursor;
const status = retrievedReservations._items[0].status;
return retrievedReservations;
} catch (error) {
console.error(error);
// Handle the error
}
},
);
/* Promise resolves to:
* {
* "_items": [
* {
* "status": "RESERVED",
* "source": "ONLINE",
* "details": {
* "reservationLocationId": "fab8cc1f-31cf-462f-b5bb-392594624bf2",
* "tableIds": [
* "1ed802ae-708f-4da6-9177-54c3df5d3dd5"
* ],
* "startDate": "2024-12-04T12:30:00.000Z",
* "endDate": "2024-12-04T14:00:00.000Z",
* "partySize": 2
* },
* "revision": "1",
* "migrationNotes": [],
* "tablesWithReservationConflicts": [],
* "_id": "1e3db995-5614-4748-8903-cbe7c74c5753",
* "_createdDate": "2024-01-22T07:25:51.008Z",
* "_updatedDate": "2024-01-22T07:25:51.008Z"
* },
* {
* "status": "RESERVED",
* "source": "ONLINE",
* "details": {
* "reservationLocationId": "fab8cc1f-31cf-462f-b5bb-392594624bf2",
* "tableIds": [
* "1ed802ae-708f-4da6-9177-54c3df5d3dd5"
* ],
* "startDate": "2024-12-04T14:30:00.000Z",
* "endDate": "2024-12-04T16:00:00.000Z",
* "partySize": 2
* },
* "revision": "1",
* "migrationNotes": [],
* "tablesWithReservationConflicts": [],
* "_id": "3e09e2fb-0cc8-476e-9874-f134b3add055",
* "_createdDate": "2024-01-22T07:33:10.651Z",
* "_updatedDate": "2024-01-22T07:33:10.651Z"
* }
* ],
* "_originQuery": {
* "filterTree": {
* "$and": [
* {
* "details.startDate": {
* "$gt": "2024-12-04T10:30:00.000Z"
* }
* },
* {
* "details.startDate": {
* "$lt": "2024-12-04T17:30:00.000Z"
* }
* }
* ]
* },
* "invalidArguments": [],
* "encoder": {},
* "transformationPaths": {},
* "sort": [],
* "paging": {},
* "pagingMethod": "CURSOR",
* "builderOptions": {
* "cursorWithEmptyFilterAndSort": true
* }
* },
* "_limit": 50,
* "_nextCursor": "",
* "_prevCursor": "",
* "cursors": {
* "next": "",
* "prev": ""
* }
* }
*/
This method doesn’t return any custom errors, but may return standard errors. Learn more about standard Wix errors.