code ready, time for testing...

This commit is contained in:
Daniel Goc
2026-04-10 13:23:51 +02:00
parent 8595969c6e
commit 134bc4ea53
9 changed files with 131 additions and 44 deletions

View File

@@ -37,17 +37,17 @@ func (s *OrderService) Find(user *model.Customer, p find.Paging, filt *filters.F
return s.ordersRepo.Find(user.ID, p, filt)
}
func (s *OrderService) PlaceNewOrder(user_id uint, cart_id uint, country_id uint, address_info string) error {
func (s *OrderService) PlaceNewOrder(user_id uint, cart_id uint, name string, country_id uint, address_info string) error {
_, err := s.addressesService.ValidateAddressJson(address_info, country_id)
if err != nil {
return err
}
amt, err := s.cartsRepo.UserHasCart(user_id, cart_id)
exists, err := s.cartsRepo.UserHasCart(user_id, cart_id)
if err != nil {
return err
}
if amt <= 0 {
if !exists {
return responseErrors.ErrUserHasNoSuchCart
}
@@ -59,14 +59,45 @@ func (s *OrderService) PlaceNewOrder(user_id uint, cart_id uint, country_id uint
return responseErrors.ErrEmptyCart
}
if name == "" && cart.Name != nil {
name = *cart.Name
}
// all checks passed
return s.ordersRepo.PlaceNewOrder(user_id, cart_id, country_id, address_info)
return s.ordersRepo.PlaceNewOrder(cart, name, country_id, address_info)
}
func (s *OrderService) ChangeOrderAddress(user *model.Customer, order_id uint, country_id uint, address_info string) error {
return nil
_, err := s.addressesService.ValidateAddressJson(address_info, country_id)
if err != nil {
return err
}
if !user.HasPermission(perms.ModifyAllOrders) {
exists, err := s.ordersRepo.UserHasOrder(user.ID, order_id)
if err != nil {
return err
}
if !exists {
return responseErrors.ErrUserHasNoSuchOrder
}
}
return s.ordersRepo.ChangeOrderAddress(order_id, country_id, address_info)
}
func (s *OrderService) ChangeOrderStatus(user *model.Customer, order_id uint, status string) error {
return nil
if !user.HasPermission(perms.ModifyAllOrders) {
exists, err := s.ordersRepo.UserHasOrder(user.ID, order_id)
if err != nil {
return err
}
if !exists {
return responseErrors.ErrUserHasNoSuchOrder
}
}
return s.ordersRepo.ChangeOrderStatus(order_id, status)
}