feat: hub console backend — complete API surface
This commit is contained in:
@@ -1144,47 +1144,11 @@ func AdminAssignMiler(c *fiber.Ctx) error {
|
||||
return utils.BadRequest(c, "invalid request body")
|
||||
}
|
||||
|
||||
tx := db.DB.Begin()
|
||||
|
||||
var booking models.PickupBooking
|
||||
if err := tx.First(&booking, id).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return utils.NotFound(c, "booking not found")
|
||||
}
|
||||
|
||||
booking.Status = constants.BookingMilerAssigned
|
||||
booking.Assignedmileruserid = &req.Mileruserid
|
||||
booking.Updatedat = time.Now()
|
||||
tx.Save(&booking)
|
||||
|
||||
adminUserID := c.Locals("userid").(int)
|
||||
|
||||
assignment := models.BookingAssignment{
|
||||
Bookingid: booking.Bookingid,
|
||||
Mileruserid: req.Mileruserid,
|
||||
Assignedbyuserid: &adminUserID,
|
||||
Assignmentstatus: constants.AssignmentAssigned,
|
||||
}
|
||||
tx.Create(&assignment)
|
||||
|
||||
// Update Miler status
|
||||
tx.Model(&models.MilerProfile{}).Where("userid = ?", req.Mileruserid).Update("availabilitystatus", constants.MilerAssigned)
|
||||
|
||||
tx.Commit()
|
||||
|
||||
if db.Js != nil {
|
||||
payload := map[string]interface{}{
|
||||
"booking_id": booking.Bookingid,
|
||||
"booking_no": booking.Bookingno,
|
||||
"status": booking.Status,
|
||||
"miler_id": req.Mileruserid,
|
||||
"updated_at": time.Now().UnixMilli(),
|
||||
}
|
||||
if data, err := json.Marshal(payload); err == nil {
|
||||
if _, err := db.Js.Publish("api.v1.bookings.update", data); err != nil {
|
||||
utils.Warn("Failed to publish booking.update to NATS", "booking_id", booking.Bookingid, "error", err)
|
||||
}
|
||||
}
|
||||
booking, err := AssignMilerToBooking(id, req.Mileruserid, &adminUserID)
|
||||
if err != nil {
|
||||
return utils.NotFound(c, "booking not found")
|
||||
}
|
||||
|
||||
return utils.OK(c, booking)
|
||||
|
||||
Reference in New Issue
Block a user