goldstars-services 1.0.57 → 1.0.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -151,7 +151,7 @@ var getBikeAvailabilityForSlot = /*#__PURE__*/function () {
151
151
  location // Filter by location as well for efficiency
152
152
  // Optional: Add status filter if needed
153
153
  // status: 'confirmed',
154
- }).populate('userId', 'name email') // Populate user name/email for admin view
154
+ }).populate('userId', 'firstName lastName email') // Populate user firstName, lastName, and email
155
155
  .lean();
156
156
 
157
157
  // 3. Create a map of reserved bike IDs for quick lookup
@@ -242,6 +242,49 @@ var cancelReservation = /*#__PURE__*/function () {
242
242
  };
243
243
  }();
244
244
 
245
+ /**
246
+ * Obtiene una reservación por su ID.
247
+ * @param {string} reservationId - El ID de la reservación.
248
+ * @returns {Promise<object|null>} - El documento de la reservación o null si no existe.
249
+ */
250
+ var getReservationById = /*#__PURE__*/function () {
251
+ var _ref5 = _asyncToGenerator(function* (reservationId) {
252
+ var reservation = yield _reservationModel.default.findById(reservationId).populate('bikeId', 'name location').populate('userId', 'firstName lastName email');
253
+ return reservation;
254
+ });
255
+ return function getReservationById(_x9) {
256
+ return _ref5.apply(this, arguments);
257
+ };
258
+ }();
259
+
260
+ /**
261
+ * Cancela una reservación por su ID (versión simplificada).
262
+ * @param {string} reservationId - El ID de la reservación a cancelar.
263
+ * @returns {Promise<object>} - El resultado de la operación de eliminación.
264
+ * @throws {Error} - Si la reserva no se encuentra o no se puede cancelar.
265
+ */
266
+ var cancelReservationById = /*#__PURE__*/function () {
267
+ var _ref6 = _asyncToGenerator(function* (reservationId) {
268
+ var reservation = yield _reservationModel.default.findById(reservationId);
269
+ if (!reservation) {
270
+ throw new Error('Reserva no encontrada.');
271
+ }
272
+ var result = yield _reservationModel.default.deleteOne({
273
+ _id: reservationId
274
+ });
275
+ if (result.deletedCount === 0) {
276
+ throw new Error('No se pudo cancelar la reserva.');
277
+ }
278
+ return {
279
+ message: 'Reserva cancelada exitosamente.',
280
+ deletedReservation: reservation
281
+ };
282
+ });
283
+ return function cancelReservationById(_x10) {
284
+ return _ref6.apply(this, arguments);
285
+ };
286
+ }();
287
+
245
288
  /**
246
289
  * Obtiene todas las reservaciones de un usuario específico.
247
290
  * @param {string} userId - El ID del usuario.
@@ -249,7 +292,7 @@ var cancelReservation = /*#__PURE__*/function () {
249
292
  * @throws {Error} - Si no se proporciona el ID de usuario.
250
293
  */
251
294
  var getReservationsByUserId = /*#__PURE__*/function () {
252
- var _ref5 = _asyncToGenerator(function* (userId) {
295
+ var _ref7 = _asyncToGenerator(function* (userId) {
253
296
  if (!userId) {
254
297
  throw new Error('El ID de usuario es requerido para obtener las reservaciones.');
255
298
  }
@@ -262,14 +305,16 @@ var getReservationsByUserId = /*#__PURE__*/function () {
262
305
 
263
306
  return reservations;
264
307
  });
265
- return function getReservationsByUserId(_x9) {
266
- return _ref5.apply(this, arguments);
308
+ return function getReservationsByUserId(_x11) {
309
+ return _ref7.apply(this, arguments);
267
310
  };
268
311
  }();
269
312
  var _default = exports.default = {
270
313
  getBikeAvailabilityForSlot,
271
314
  createReservation,
272
315
  cancelReservation,
316
+ getReservationById,
317
+ cancelReservationById,
273
318
  isBikeReserved,
274
319
  // Keep exporting isBikeReserved if used elsewhere, otherwise could be removed if only internal
275
320
  getReservationsByUserId
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "goldstars-services",
3
- "version": "1.0.57",
3
+ "version": "1.0.59",
4
4
  "description": "This is the services layer for GoldStars",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {