Order API Date Filter

If anyone from Webflow staff shows up here, I realized you guys could do something similar to this:

interface request {
  body: {
    startAt?: string;
    endAt?: string;
  };
}

interface mongoFilter {
  acceptedOn?: {
    $gte?: number;
    $lte?: number;
  };
}

function sampleHttp(req: request, res) {
  // Mongo's order model
  const OrderModel = {
    find: (filterObj): any => {},
  };

  const filterObj: mongoFilter = {};

  const { startAt, endAt } = req.body;

  if (startAt) {
    const startDate = new Date(startAt);
    const epochMsTime = startDate.getTime();

    // Checks validity of the date obj
    if (!isNaN(epochMsTime)) filterObj.acceptedOn.$gte = epochMsTime;
  }
  if (endAt) {
    const endDate = new Date(startAt);
    const epochMsTime = endDate.getTime();

    // Checks validity of the date obj
    if (!isNaN(epochMsTime)) filterObj.acceptedOn.$lte = epochMsTime;
  }

  const query = OrderModel.find(filterObj);

  query.exec((err, docs) => {
    if (err) return res.status(500).json({ error: err.message });
    return res.status(200).json({ docs });
  });
}

1 Like