Returns an array of bookings that match the query.
The current page of bookings retrieved by the query.
The page size is defined by the limit()
function, can be retrieved using the pageSize
property, and
navigating through pages is done with the prev()
and
next()
functions.
When no items match the query, the booking
array is empty.
import { bookings } from "wix-bookings-backend";
// ...
bookings
.queryBookings()
.find()
.then((results) => {
if (results.items.length > 0) {
let items = results.items; // see below
} else {
// handle case where no matching items found
}
})
.catch((error) => {
console.error(error);
});
/* items:
* [
* {
* "_id": "3bab599d-c032-4f4c-89b1-c73dc51f013c",
* "bookedEntity": {
* "serviceId": "57daccbf-0fc9-4f3d-9c9e-1969947f33fa",
* "scheduleId": "b5c9d6f1-8606-4378-9f4b-7e94d98de91f",
* "setOfSessions": {
* "firstSessionStart": "2021-01-20T14:30:00Z",
* "lastSessionEnd": "2021-03-24T14:30:00Z"
* },
* "title": "12 Part Meditation Course",
* "location": {
* "locationType": "OWNER_BUSINESS"
* },
* "rate": {
* "labeledPriceOptions": {
* "general": {
* "amount": "5000",
* "currency": "USD",
* "downPayAmount": "50"
* }
* }
* },
* "tags": [
* "COURSE"
* ]
* },
* "bookedResources": [
* {
* "_id": "76570209-101f-409b-af97-b445bdb63125",
* "name": "John Smith",
* "email": "jsmith@gmail.com"
* }
* ],
* "status": "CONFIRMED",
* "_createdDate": "2021-01-11T08:46:20.703Z",
* "bookingSource": {
* "platform": "WEB",
* "actor": "CUSTOMER",
* "appDefId": "13d21c63-b5ec-5912-8397-c3a5ddb27a97",
* "appName": "Wix Bookings"
* },
* "formInfo": {
* "paymentSelection": [
* {
* "rateLabel": "general",
* "numberOfParticipants": 1
* }
* ],
* "additionalFields": [
* {
* "_id": "00000000-0000-0000-0000-000000000008",
* "label": "Add Your Message",
* "valueType": "LONG_TEXT"
* }
* ],
* "contactDetails": {
* "contactId": "593da82a-9718-4d43-9db0-8414320b3aa0",
* "firstName": "Frank White",
* "email": "frankw@wmail.com",
* "phone": "555 3456",
* "timeZone": "America/New_York",
* "countryCode": "US"
* }
* },
* "paymentDetails": {
* "balance": {
* "finalPrice": {
* "amount": "5000",
* "currency": "USD",
* "downPayAmount": "50"
* },
* "amountReceived": "5000"
* },
* "state": "COMPLETE",
* "wixPayMultipleDetails": [
* {
* "txId": "eb804fc3-ecab-49c9-8785-0e12d71aaff8",
* "orderId": "6fa06198-1c39-4cf0-91db-a01b10720f56",
* "orderAmount": "4950",
* "orderStatus": "UNDEFINED",
* "orderApprovalTime": "2021-01-11T08:47:44.757Z",
* "paymentVendorName": "inPerson"
* },
* {
* "orderId": "aedcae46-844b-4091-b174-cf90f102629f",
* "orderAmount": "50",
* "orderStatus": "UNDEFINED"
* }
* ]
* }
* },
* {
* "_id": "7125331e-75e6-4889-809a-5dea10648b30",
* "bookedEntity": {
* "serviceId": "b71df756-309f-468e-aec2-f82b9a9a9441",
* "scheduleId": "53616b1f-0c3c-45a1-b282-675acd248179",
* "singleSession": {
* "sessionId": * "193ZPR9ppP9emJUCLevcLf6orynNEIDt5nc0520xjGQILnPPaF5s62yK3BWz7ExgIRM1* HunZjEPUQ0IeScwcTFJNXEmLG2g6Q8tvUJQZrPhU6XKhVrlLZraC3YcVfygADFiCPyyy5* IVhgtDpF30FnQDoG8I60n21QAlhok4LHNlkBszoGZ67jGMeDOqxS8PXZgJx87ByXwfgsN* 3AfXbndYxESrFnttLnRSFzcsolPAjYhaRCdJBhUj8rAoBoj71MgiFi4Tw3FDyVZz2OeOH* GmfQwRi0ELuqZvw0Y5tmMXrIKa48SvG8sr2MyOQsaIbMHy8YX1Q8anAgfdt",
* "start": "2021-01-22T10:30:00Z",
* "end": "2021-01-22T11:00:00Z"
* },
* "title": "Yoga Class",
* "location": {
* "locationType": "OWNER_BUSINESS"
* },
* "rate": {
* "labeledPriceOptions": {
* "general": {
* "amount": "50",
* "currency": "USD",
* "downPayAmount": "0"
* }
* }
* },
* "tags": [
* "GROUP"
* ]
* },
* "bookedResources": [
* {
* "_id": "76570209-101f-409b-af97-b445bdb63125",
* "name": "John Smith",
* "email": "jsmith@gmail.com"
* }
* ],
* "status": "PENDING_CHECKOUT",
* "_createdDate": "2021-01-11T08:45:00.214Z",
* "attendanceInfo": {
* "attendanceStatus": true,
* "numberOfAttendees": 1
* },
* "bookingSource": {
* "platform": "WEB",
* "actor": "CUSTOMER",
* "appDefId": "13d21c63-b5ec-5912-8397-c3a5ddb27a97",
* "appName": "Wix Bookings"
* },
* "formInfo": {
* "paymentSelection": [
* {
* "rateLabel": "general",
* "numberOfParticipants": 1
* }
* ],
* "additionalFields": [
* {
* : "00000000-0000-0000-0000-000000000008",
* "value": "Cant wait to start",
* "label": "Add Your Message",
* "valueType": "LONG_TEXT",
* "_id": "00000000-0000-0000-0000-000000000008"
* }
* ],
* "contactDetails": {
* "contactId": "a6d4c19e-1882-4e29-9eb3-411e1aeeb874",
* "firstName": "Joe Green",
* "email": "JoeGreen@hmail.com",
* "phone": "9998765",
* "timeZone": "America/New_York",
* "countryCode": "US"
* }
* },
* "paymentDetails": {
* "balance": {
* "finalPrice": {
* "amount": "50",
* "currency": "USD",
* "downPayAmount": "0"
* },
* "amountReceived": "0"
* },
* "state": "PENDING_CASHIER",
* "wixPayMultipleDetails": [
* {
* "orderId": "dd702e88-68e0-4faa-94b2-4996136a9828",
* "orderAmount": "50",
* "orderStatus": "UNDEFINED"
* }
* ]
* },
* }
* ]
*/
let resultLength = results.length; // 20
let resultPageSize = results.pageSize; // 50
Returns the BookingsQueryBuilder object used to get the current results.
Use the query
property to create and run a new query by chaining additional BookingsQueryBuilder functions to it. You can only filter on properties that have not already been used in the previous query.
let resultQuery = results.query;
Returns the total number of items that match the query.
The totalCount
returns the total number of items that match the query,
not just the number of items in the current page.
let resultCount = results.totalCount; // 150
let resultPages = results.totalPages; // 3
Indicates if the query has more results.
function hasNext(): boolean;
let hasNext = results.hasNext(); // true
Indicates the query has previous results.
function hasPrev(): boolean;
let hasPrev = results.hasPrev(); // false
Retrieves the next page of query results.
The next()
function retrieves the next page of query results.
The page size is defined by the limit()
function, can be retrieved using the pageSize
property, and
navigating through pages is done with the prev()
and
next()
functions.
If items are added or removed between calls to next()
the values returned
by BookingsQueryResult
may change.
function next(): Promise<BookingsQueryResult>;
oldResults
.next()
.then((results) => {
const newResults = results;
const items = newResults.items;
const firstItem = items[0];
const totalCount = newResults.totalCount;
const pageSize = newResults.pageSize;
const currentPage = newResults.currentPage;
const totalPages = newResults.totalPages;
const hasNext = newResults.hasNext();
const hasPrev = newResults.hasPrev();
const length = newResults.length;
const query = newResults.query;
})
.catch((error) => {
console.error(error);
});
Retrieves the previous page of query results.
The prev()
function retrieves the previous page of query results.
The page size is defined by the limit()
function, can be retrieved using the pageSize
property, and
navigating through pages is done with the prev()
and
next()
functions.
If items are added or removed between calls to prev()
the values returned
may change.
function prev(): Promise<BookingsQueryResult>;
oldResults
.prev()
.then((results) => {
const newResults = results;
const items = newResults.items;
const firstItem = items[0];
const totalCount = newResults.totalCount;
const pageSize = newResults.pageSize;
const currentPage = newResults.currentPage;
const totalPages = newResults.totalPages;
const hasNext = newResults.hasNext();
const hasPrev = newResults.hasPrev();
const length = newResults.length;
const query = newResults.query;
})
.catch((error) => {
console.error(error);
});