New Example: Booking List

@moran-frumer Sorry Moran this got way over my head :frowning:
Here is my full code, Front end and Backend

I highlighted the spot I am stuck on pulling besides that it is done. I used the code you gave me to sort.

import { getBookings } from 'backend/bookings.jsw';
import wixUsers from 'wix-users';

$w.onReady(function () {
    initElements();
});

function initElements() {

    $w('#submitButton').onClick(() => loadBookings());

    $w('#statusCheckbox').options = [
        { "value": "CONFIRMED", "label": "CONFIRMED" },
        { "value": "CANCELED", "label": "CANCELED" },
        { "value": "PENDING", "label": "PENDING" },
        { "value": "PENDING_CHECKOUT", "label": "PENDING CHECKOUT" },
        { "value": "PENDING_APPROVAL", "label": "PENDING APPROVAL" },
        { "value": "DECLINED", "label": "DECLINED" }
    ];

    $w('#statusCheckbox').value = ["CONFIRMED"];
    $w('#dateStart').value = new Date();
    $w('#dateEnd').value = new Date();

    $w('#sessionsRepeater').onItemReady(($item, data) => {
        $item('#sessionDateText').text = data.bookedEntity.singleSession.start.toLocaleString();
        $item('#sessionServiceText').text = data.bookedEntity.title;
        $item('#sessionStatusText').text = data.status;
        $item('#totalAttendees').text = data.participantCount


    });
    $w('#sessionsRepeater').data = [];
}
async function loadBookings() {

    $w('#errorText').hide();
    if (!($w('#dateStart').valid && $w('#dateEnd').valid && $w('#statusCheckbox').valid)) {
        $w('#errorText').show();
        $w('#errorText').text = "Error in form fields";
        return;
    }

    // Remove the comment to limit access only to Admin members (recommended for security best practices)
    /* if(!await isUserAdmin()) {
        $w('#errorText').show();
        $w('#errorText').text = "This data is accessible to admin members only";
        return;
    } */

    $w('#submitButton').disable();
    const dateStart = $w('#dateStart').value;
    const dateEndTemp = $w('#dateEnd').value;
    const dateEnd = new Date(dateEndTemp.getTime() + 60 * 60 * 24 * 1000); // adding one day to the end date so bookings on that date also pass the filter
    const statuses = $w('#statusCheckbox').value;

    getBookings(dateStart, dateEnd, statuses).then((results) => {
        $w('#sessionsRepeater').data = results;
        if (results.length == 0) {
            $w('#errorText').show();
            $w('#errorText').text = "No bookings found";
        } else {
            $w('#titles').show()
        }
    }).catch((error) => {
        console.error('loadBookings error - ' + error.message);
    }).finally(() => {
        $w('#submitButton').enable();
    });
}

async function isUserAdmin() {
    try {

        let user = wixUsers.currentUser;
        if (!user.loggedIn) {
            console.log('Member is not logged in');
            return false;
        }

        let roles = await user.getRoles();
        if (roles.find(role => role.name == "Admin")) {
            return true;
        } else {
            console.log('Member is not an Admin');
            return false;
        }

    } catch (error) {
        console.error('isUserAdmin error - ' + error.message);
        return false;
    }
}

Here is the back end



import { bookings } from "wix-bookings-backend";
import wixUsers from 'wix-users-backend';

let options = {
    suppressAuth: true
}

async function isUserAdmin() {
    try {
        let user = wixUsers.currentUser;
        if (!user.loggedIn) {
            return false;
        }
        let roles = await user.getRoles();
        if (roles.find(role => role.name == 'Admin')) {
            return true;
        } else {
            return false;
        }
    } catch (error) {
        console.error('bookings.jsw > isUserAdmin - ' + error.message);
        return false;
    }
}

export async function getBookings(dateStart, dateEnd, statuses) {

    // Remove the comment to limit access only to Admin members (recommended for security best practices)
    /* if(!await isUserAdmin()) {
        console.log('bookings.jsw > getBookings - Non-admin member is not allowed to run this function');
        return [];
    } */

    return bookings
        .queryBookings()
        .hasSome("status", statuses)
        .ge("startTime", dateStart)
        .le("endTime", dateEnd)
        .ascending("startTime")
        .find(options)
        .then((queryResult) => {
            return queryResult.items;
        })
        .catch((error) => {
            Promise.reject(
                new Error('booking.jsw > getBookings error - details -' + error.message));
        });
}

Not sure what I am missing sorry!