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")
|
||||
}
|
||||
|
||||
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)
|
||||
FindAddressByID(id string) (*model.Address, error)
|
||||
UpdateAddress(address *model.Address) error
|
||||
DeleteAddress(id string) error
|
||||
}
|
||||
|
||||
type addressRepository struct {
|
||||
|
@ -49,4 +50,12 @@ func (r *addressRepository) UpdateAddress(address *model.Address) error {
|
|||
return err
|
||||
}
|
||||
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)
|
||||
GetAddressByID(id string) (*dto.AddressResponseDTO, error)
|
||||
UpdateAddress(id string, addressDTO dto.CreateAddressDTO) (*dto.AddressResponseDTO, error)
|
||||
DeleteAddress(id string) error
|
||||
}
|
||||
|
||||
type addressService struct {
|
||||
|
@ -360,3 +361,30 @@ func (s *addressService) UpdateAddress(id string, addressDTO dto.CreateAddressDT
|
|||
|
||||
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/:address_id", middleware.AuthMiddleware, addressHandler.GetAddressByID)
|
||||
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