Skip to content

feat: implement delivery CRUD and driver assignment APIs#73

Open
Hahfyeex wants to merge 1 commit into
SwiftChainn:mainfrom
Hahfyeex:feat/delivery-crud-apis-issues-15-16-17-18
Open

feat: implement delivery CRUD and driver assignment APIs#73
Hahfyeex wants to merge 1 commit into
SwiftChainn:mainfrom
Hahfyeex:feat/delivery-crud-apis-issues-15-16-17-18

Conversation

@Hahfyeex

Copy link
Copy Markdown

Summary

  • Delivery model (src/models/Delivery.ts) — Mongoose schema with sender/recipient sub-documents, status enum, auto-indexed trackingId and driverId fields
  • Create DeliveryPOST /api/v1/deliveries stores off-chain delivery metadata and returns a generated trackingId (SWIFT-XXXXXXXXXX)
  • List DeliveriesGET /api/v1/deliveries with pagination (page, limit), status filter, and date sort (order=asc|desc)
  • Fetch Delivery by IDGET /api/v1/deliveries/:id returns full sender/recipient data; 404 if not found
  • Assign DriverPUT /api/v1/deliveries/:id/assign validates the delivery is pending before linking a driver and transitioning status to assigned

Test plan

  • POST /api/v1/deliveries with valid body returns 201 with trackingId
  • POST /api/v1/deliveries missing required fields returns 400
  • GET /api/v1/deliveries?status=pending&page=1&limit=5 returns paginated results
  • GET /api/v1/deliveries/:id returns 200 with sender and recipient data
  • GET /api/v1/deliveries/:invalidId returns 404
  • PUT /api/v1/deliveries/:id/assign with valid driverId sets status to assigned
  • PUT /api/v1/deliveries/:id/assign on a non-pending delivery returns 409
  • Lint and type-check pass (pnpm lint, tsc --noEmit)
  • Existing tests still pass (pnpm test)

Closes #15, Closes #16, Closes #17, Closes #18

- Add Delivery Mongoose schema with sender, recipient, status, and tracking fields
- POST /api/v1/deliveries — stores off-chain delivery metadata with auto-generated trackingId
- GET /api/v1/deliveries — paginated list with status filter and date sort
- GET /api/v1/deliveries/:id — fetch single delivery, returns 404 if not found
- PUT /api/v1/deliveries/:id/assign — assigns a driver to a pending delivery

Closes SwiftChainn#15, Closes SwiftChainn#16, Closes SwiftChainn#17, Closes SwiftChainn#18
@drips-wave

drips-wave Bot commented Jun 30, 2026

Copy link
Copy Markdown

@Hahfyeex Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant