feat: add feature delete address
This commit is contained in:
parent
99a3b71136
commit
6609734867
|
@ -76,3 +76,14 @@ func (h *AddressHandler) UpdateAddress(c *fiber.Ctx) error {
|
||||||
|
|
||||||
return utils.SuccessResponse(c, updatedAddress, "User address updated successfully")
|
return utils.SuccessResponse(c, updatedAddress, "User address updated successfully")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *AddressHandler) DeleteAddress(c *fiber.Ctx) error {
|
||||||
|
id := c.Params("address_id")
|
||||||
|
|
||||||
|
err := h.AddressService.DeleteAddress(id)
|
||||||
|
if err != nil {
|
||||||
|
return utils.GenericErrorResponse(c, fiber.StatusNotFound, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return utils.GenericErrorResponse(c, fiber.StatusOK, "Address deleted successfully")
|
||||||
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ type AddressRepository interface {
|
||||||
FindAddressByUserID(userID string) ([]model.Address, error)
|
FindAddressByUserID(userID string) ([]model.Address, error)
|
||||||
FindAddressByID(id string) (*model.Address, error)
|
FindAddressByID(id string) (*model.Address, error)
|
||||||
UpdateAddress(address *model.Address) error
|
UpdateAddress(address *model.Address) error
|
||||||
|
DeleteAddress(id string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type addressRepository struct {
|
type addressRepository struct {
|
||||||
|
@ -50,3 +51,11 @@ func (r *addressRepository) UpdateAddress(address *model.Address) error {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *addressRepository) DeleteAddress(id string) error {
|
||||||
|
err := r.DB.Where("id = ?", id).Delete(&model.Address{}).Error
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -15,6 +15,7 @@ type AddressService interface {
|
||||||
GetAddressByUserID(userID string) ([]dto.AddressResponseDTO, error)
|
GetAddressByUserID(userID string) ([]dto.AddressResponseDTO, error)
|
||||||
GetAddressByID(id string) (*dto.AddressResponseDTO, error)
|
GetAddressByID(id string) (*dto.AddressResponseDTO, error)
|
||||||
UpdateAddress(id string, addressDTO dto.CreateAddressDTO) (*dto.AddressResponseDTO, error)
|
UpdateAddress(id string, addressDTO dto.CreateAddressDTO) (*dto.AddressResponseDTO, error)
|
||||||
|
DeleteAddress(id string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type addressService struct {
|
type addressService struct {
|
||||||
|
@ -360,3 +361,30 @@ func (s *addressService) UpdateAddress(id string, addressDTO dto.CreateAddressDT
|
||||||
|
|
||||||
return addressResponseDTO, nil
|
return addressResponseDTO, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *addressService) DeleteAddress(id string) error {
|
||||||
|
|
||||||
|
address, err := s.AddressRepo.FindAddressByID(id)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("address not found: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = s.AddressRepo.DeleteAddress(id)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to delete address: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
addressCacheKey := fmt.Sprintf("address:%s", id)
|
||||||
|
err = utils.DeleteData(addressCacheKey)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Error deleting address cache: %v\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
userAddressesCacheKey := fmt.Sprintf("user:%s:addresses", address.UserID)
|
||||||
|
err = utils.DeleteData(userAddressesCacheKey)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Error deleting user addresses cache: %v\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
@ -21,4 +21,5 @@ func AddressRouter(api fiber.Router) {
|
||||||
adddressAPI.Get("/get-address", middleware.AuthMiddleware, addressHandler.GetAddressByUserID)
|
adddressAPI.Get("/get-address", middleware.AuthMiddleware, addressHandler.GetAddressByUserID)
|
||||||
adddressAPI.Get("/get-address/:address_id", middleware.AuthMiddleware, addressHandler.GetAddressByID)
|
adddressAPI.Get("/get-address/:address_id", middleware.AuthMiddleware, addressHandler.GetAddressByID)
|
||||||
adddressAPI.Put("/update-address/:address_id", middleware.AuthMiddleware, addressHandler.UpdateAddress)
|
adddressAPI.Put("/update-address/:address_id", middleware.AuthMiddleware, addressHandler.UpdateAddress)
|
||||||
|
adddressAPI.Delete("/delete-address/:address_id", middleware.AuthMiddleware, addressHandler.DeleteAddress)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue