fix: fixing response eror handler
This commit is contained in:
parent
29fd863d94
commit
39e61d629e
|
@ -77,7 +77,6 @@ func (h *ArticleHandler) GetArticleByID(c *fiber.Ctx) error {
|
||||||
|
|
||||||
article, err := h.ArticleService.GetArticleByID(id)
|
article, err := h.ArticleService.GetArticleByID(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
||||||
return utils.GenericResponse(c, fiber.StatusNotFound, "Article not found")
|
return utils.GenericResponse(c, fiber.StatusNotFound, "Article not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,7 +107,11 @@ func (h *ArticleHandler) UpdateArticle(c *fiber.Ctx) error {
|
||||||
|
|
||||||
articleResponse, err := h.ArticleService.UpdateArticle(id, request, coverImage)
|
articleResponse, err := h.ArticleService.UpdateArticle(id, request, coverImage)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return utils.GenericResponse(c, fiber.StatusInternalServerError, err.Error())
|
if err.Error() == fmt.Sprintf("article with ID %s not found", id) {
|
||||||
|
return utils.GenericResponse(c, fiber.StatusInternalServerError, err.Error())
|
||||||
|
}
|
||||||
|
return utils.GenericResponse(c, fiber.StatusNotFound, err.Error())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return utils.SuccessResponse(c, articleResponse, "Article updated successfully")
|
return utils.SuccessResponse(c, articleResponse, "Article updated successfully")
|
||||||
|
@ -122,7 +125,12 @@ func (h *ArticleHandler) DeleteArticle(c *fiber.Ctx) error {
|
||||||
|
|
||||||
err := h.ArticleService.DeleteArticle(id)
|
err := h.ArticleService.DeleteArticle(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return utils.GenericResponse(c, fiber.StatusInternalServerError, err.Error())
|
|
||||||
|
if err.Error() == fmt.Sprintf("article with ID %s not found", id) {
|
||||||
|
return utils.GenericResponse(c, fiber.StatusInternalServerError, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return utils.GenericResponse(c, fiber.StatusNotFound, err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
return utils.GenericResponse(c, fiber.StatusOK, "Article deleted successfully")
|
return utils.GenericResponse(c, fiber.StatusOK, "Article deleted successfully")
|
||||||
|
|
|
@ -248,10 +248,9 @@ func (s *articleService) GetArticleByID(id string) (*dto.ArticleResponseDTO, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *articleService) UpdateArticle(id string, request dto.RequestArticleDTO, coverImage *multipart.FileHeader) (*dto.ArticleResponseDTO, error) {
|
func (s *articleService) UpdateArticle(id string, request dto.RequestArticleDTO, coverImage *multipart.FileHeader) (*dto.ArticleResponseDTO, error) {
|
||||||
|
|
||||||
article, err := s.ArticleRepo.FindArticleByID(id)
|
article, err := s.ArticleRepo.FindArticleByID(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("article not found: %v", err)
|
return nil, fmt.Errorf("article not found: %v", id)
|
||||||
}
|
}
|
||||||
|
|
||||||
article.Title = request.Title
|
article.Title = request.Title
|
||||||
|
@ -261,7 +260,8 @@ func (s *articleService) UpdateArticle(id string, request dto.RequestArticleDTO,
|
||||||
|
|
||||||
var coverImagePath string
|
var coverImagePath string
|
||||||
if coverImage != nil {
|
if coverImage != nil {
|
||||||
coverImagePath, err = s.saveCoverImage(coverImage)
|
|
||||||
|
coverImagePath, err = s.saveCoverImage(coverImage, article.CoverImage)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to save cover image: %v", err)
|
return nil, fmt.Errorf("failed to save cover image: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -337,7 +337,7 @@ func (s *articleService) UpdateArticle(id string, request dto.RequestArticleDTO,
|
||||||
return articleResponseDTO, nil
|
return articleResponseDTO, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *articleService) saveCoverImage(coverImage *multipart.FileHeader) (string, error) {
|
func (s *articleService) saveCoverImage(coverImage *multipart.FileHeader, oldImagePath string) (string, error) {
|
||||||
coverImageDir := "./public/uploads/articles"
|
coverImageDir := "./public/uploads/articles"
|
||||||
if _, err := os.Stat(coverImageDir); os.IsNotExist(err) {
|
if _, err := os.Stat(coverImageDir); os.IsNotExist(err) {
|
||||||
if err := os.MkdirAll(coverImageDir, os.ModePerm); err != nil {
|
if err := os.MkdirAll(coverImageDir, os.ModePerm); err != nil {
|
||||||
|
@ -353,6 +353,15 @@ func (s *articleService) saveCoverImage(coverImage *multipart.FileHeader) (strin
|
||||||
coverImageFileName := fmt.Sprintf("%s_cover%s", uuid.New().String(), extension)
|
coverImageFileName := fmt.Sprintf("%s_cover%s", uuid.New().String(), extension)
|
||||||
coverImagePath := filepath.Join(coverImageDir, coverImageFileName)
|
coverImagePath := filepath.Join(coverImageDir, coverImageFileName)
|
||||||
|
|
||||||
|
if oldImagePath != "" {
|
||||||
|
err := os.Remove(oldImagePath)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Failed to delete old cover image: %v\n", err)
|
||||||
|
} else {
|
||||||
|
fmt.Printf("Successfully deleted old cover image: %s\n", oldImagePath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
src, err := coverImage.Open()
|
src, err := coverImage.Open()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("failed to open uploaded file: %v", err)
|
return "", fmt.Errorf("failed to open uploaded file: %v", err)
|
||||||
|
@ -374,8 +383,21 @@ func (s *articleService) saveCoverImage(coverImage *multipart.FileHeader) (strin
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *articleService) DeleteArticle(id string) error {
|
func (s *articleService) DeleteArticle(id string) error {
|
||||||
|
article, err := s.ArticleRepo.FindArticleByID(id)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to find article: %v", id)
|
||||||
|
}
|
||||||
|
|
||||||
err := s.ArticleRepo.DeleteArticle(id)
|
if article.CoverImage != "" {
|
||||||
|
err := os.Remove(article.CoverImage)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Failed to delete cover image: %v\n", err)
|
||||||
|
} else {
|
||||||
|
fmt.Printf("Successfully deleted cover image: %s\n", article.CoverImage)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = s.ArticleRepo.DeleteArticle(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to delete article: %v", err)
|
return fmt.Errorf("failed to delete article: %v", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue