Skip to content

Commit

Permalink
feat: add refactor for the import as the utils changed to shared
Browse files Browse the repository at this point in the history
  • Loading branch information
nunenuh committed Sep 3, 2023
1 parent 7e51f55 commit 9cac8de
Show file tree
Hide file tree
Showing 11 changed files with 56 additions and 94 deletions.
4 changes: 2 additions & 2 deletions internal/auth/usecase/interactor.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package usecase

import (
"github.com/nunenuh/iquote-fiber/internal/auth/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/exception"
"github.com/nunenuh/iquote-fiber/internal/utils/hash"
"github.com/nunenuh/iquote-fiber/internal/shared/exception"
"github.com/nunenuh/iquote-fiber/internal/shared/hash"
)

type AuthUsecase struct {
Expand Down
2 changes: 1 addition & 1 deletion internal/auth/usecase/interactor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"testing"

"github.com/nunenuh/iquote-fiber/internal/auth/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/hash"
"github.com/nunenuh/iquote-fiber/internal/shared/hash"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
)
Expand Down
116 changes: 39 additions & 77 deletions internal/author/api/v1/handler.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package api

import (
"log"
"fmt"
"strconv"

"github.com/gofiber/fiber/v2"
auth "github.com/nunenuh/iquote-fiber/internal/auth/api"
"github.com/nunenuh/iquote-fiber/internal/author/domain"
"github.com/nunenuh/iquote-fiber/internal/author/usecase"
"github.com/nunenuh/iquote-fiber/internal/shared/param"
"github.com/nunenuh/iquote-fiber/pkg/webutils"
)

Expand Down Expand Up @@ -40,127 +41,88 @@ func (h *AuthorHandler) GetByID(ctx *fiber.Ctx) error {
idStr := ctx.Params("authorID")
id, err := strconv.Atoi(idStr)
if err != nil {
panic(err)
return webutils.NewErrorResponse(ctx, fiber.StatusBadRequest, "Invalid authorID format", err.Error())
}

u, err := h.usecase.GetByID(id)
author, err := h.usecase.GetByID(id)
if err != nil {
log.Println(err)
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"status": "error",
"message": "Error fetching author",
})
return webutils.NewErrorResponse(ctx, fiber.StatusInternalServerError, "Error fetching authors", err.Error())
}

return ctx.Status(fiber.StatusOK).JSON(&fiber.Map{
"status": "success",
"data": u,
})
response := webutils.NewSuccessResponseWithMessage(
"Successfully get author",
author,
)
return ctx.JSON(response)
}

func (h *AuthorHandler) GetAll(ctx *fiber.Ctx) error {

params, err := webutils.ParsePaginationParams(ctx)
if err != nil {
return webutils.NewErrorResponse(ctx, fiber.StatusInternalServerError, "Invalid pagination parameters")
param := new(param.Param)
if err := ctx.QueryParser(param); err != nil {
return webutils.NewErrorResponse(ctx, fiber.StatusInternalServerError, "Invalid pagination parameters", err.Error())
}

authors, err := h.usecase.GetAll(params)
log.Print(authors)
authors, err := h.usecase.GetAll(param)
if err != nil {
return webutils.NewErrorResponse(ctx, fiber.StatusInternalServerError, "Error fetching authors")
return webutils.NewErrorResponse(ctx, fiber.StatusInternalServerError, "Error fetching authors", err.Error())
}

pagination := webutils.NewPagination(params, int64(len(authors)))
response := webutils.NewSuccessResponse(authors, pagination)
pagination := webutils.NewPagination(param, len(authors))
response := webutils.NewSuccessResponseWithPagination(authors, pagination)

return ctx.JSON(response)

}

func (h *AuthorHandler) Create(ctx *fiber.Ctx) error {
var author domain.Author

if err := ctx.BodyParser(&author); err != nil {
log.Printf("Parsing error: %v", err)
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{
"status": "error",
"message": "Failed to parse request",
})
author := new(domain.Author)
if err := ctx.BodyParser(author); err != nil {
return webutils.NewErrorResponse(ctx, fiber.StatusBadRequest, "Failed to parse request", err.Error())
}

createdUser, err := h.usecase.Create(&author)
createdAuthor, err := h.usecase.Create(author)
if err != nil {
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"status": "error",
"message": "Failed to create author",
"error": err.Error(),
})
return webutils.NewErrorResponse(ctx, fiber.StatusInternalServerError, "Failed to create author", err.Error())
}

return ctx.Status(fiber.StatusCreated).JSON(fiber.Map{
"status": "success",
"data": createdUser,
})
response := webutils.NewSuccessResponseWithMessage("Successfully created author", createdAuthor)
return ctx.JSON(response)
}

func (h *AuthorHandler) Update(ctx *fiber.Ctx) error {
idStr := ctx.Params("authorID")
id, err := strconv.Atoi(idStr)
id, err := strconv.Atoi(ctx.Params("authorID"))
if err != nil {
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{
"status": "error",
"message": "Invalid author ID format",
})
return webutils.NewErrorResponse(ctx, fiber.StatusBadRequest, "Invalid author ID format", err.Error())
}

author := domain.Author{}

var author domain.Author
if err := ctx.BodyParser(&author); err != nil {
log.Printf("Parsing error: %v", err)
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{
"status": "error",
"message": "Failed to parse request",
})
return webutils.NewErrorResponse(ctx, fiber.StatusBadRequest, "Failed to parse request", err.Error())
}

updatedUser, err := h.usecase.Update(id, &author)
updatedAuthor, err := h.usecase.Update(id, &author)
if err != nil {
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"status": "error",
"message": "Failed to create author",
"error": err.Error(),
})
return webutils.NewErrorResponse(ctx, fiber.StatusBadRequest, "Failed to create author", err.Error())
}

return ctx.Status(fiber.StatusCreated).JSON(fiber.Map{
"status": "success",
"data": updatedUser,
})
response := webutils.NewSuccessResponseWithMessage(
fmt.Sprintf("Successfully updated author with ID:%d", id),
updatedAuthor,
)
return ctx.JSON(response)
}

func (h *AuthorHandler) Delete(ctx *fiber.Ctx) error {
idStr := ctx.Params("authorID")
id, err := strconv.Atoi(idStr)
if err != nil {
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{
"status": "error",
"message": "Invalid author ID format",
})
return webutils.NewErrorResponse(ctx, fiber.StatusBadRequest, "Invalid author ID format", err.Error())
}

err = h.usecase.Delete(id)
if err != nil {
log.Printf("Deletion error: %v", err)
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"status": "error",
"message": "Failed to delete author",
"error": err.Error(),
})
return webutils.NewErrorResponse(ctx, fiber.StatusBadRequest, "Failed to delete author", err.Error())
}

return ctx.Status(fiber.StatusOK).JSON(fiber.Map{
"status": "success",
"message": "User deleted successfully",
})
response := webutils.NewSuccessResponseWithMessage(fmt.Sprintf("Successfully deleted author with ID:%d", id), nil)
return ctx.JSON(response)
}
8 changes: 4 additions & 4 deletions internal/author/usecase/interactor.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package usecase

import (
"github.com/nunenuh/iquote-fiber/internal/author/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/exception"
"github.com/nunenuh/iquote-fiber/internal/utils/validator"
"github.com/nunenuh/iquote-fiber/pkg/webutils"
"github.com/nunenuh/iquote-fiber/internal/shared/exception"
"github.com/nunenuh/iquote-fiber/internal/shared/param"
"github.com/nunenuh/iquote-fiber/internal/shared/validator"
)

type AuthorUsecase struct {
Expand All @@ -20,7 +20,7 @@ func NewAuthorUsecase(r domain.IAuthorRepository) *AuthorUsecase {
}
}

func (ucase *AuthorUsecase) GetAll(params *webutils.PaginationParam) ([]*domain.Author, error) {
func (ucase *AuthorUsecase) GetAll(params *param.Param) ([]*domain.Author, error) {

u, err := ucase.repo.GetAll(int(params.Limit), int(params.Page))
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion internal/author/usecase/interactor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"testing"

"github.com/nunenuh/iquote-fiber/internal/author/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/exception"
"github.com/nunenuh/iquote-fiber/internal/shared/exception"
"github.com/stretchr/testify/assert"
)

Expand Down
4 changes: 2 additions & 2 deletions internal/category/usecase/interactor.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package usecase

import (
"github.com/nunenuh/iquote-fiber/internal/category/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/exception"
"github.com/nunenuh/iquote-fiber/internal/utils/validator"
"github.com/nunenuh/iquote-fiber/internal/shared/exception"
"github.com/nunenuh/iquote-fiber/internal/shared/validator"
)

type CategoryUsecase struct {
Expand Down
2 changes: 1 addition & 1 deletion internal/category/usecase/interactor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"testing"

"github.com/nunenuh/iquote-fiber/internal/category/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/exception"
"github.com/nunenuh/iquote-fiber/internal/shared/exception"
"github.com/stretchr/testify/assert"
)

Expand Down
2 changes: 1 addition & 1 deletion internal/quote/usecase/interactor.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package usecase

import (
"github.com/nunenuh/iquote-fiber/internal/quote/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/exception"
"github.com/nunenuh/iquote-fiber/internal/shared/exception"
)

type QuoteUseCase struct {
Expand Down
2 changes: 1 addition & 1 deletion internal/quote/usecase/interactor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
category_domain "github.com/nunenuh/iquote-fiber/internal/category/domain"

"github.com/nunenuh/iquote-fiber/internal/quote/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/exception"
"github.com/nunenuh/iquote-fiber/internal/shared/exception"
"github.com/stretchr/testify/assert"
)

Expand Down
6 changes: 3 additions & 3 deletions internal/user/usecase/interactor.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package usecase

import (
"github.com/nunenuh/iquote-fiber/internal/shared/exception"
"github.com/nunenuh/iquote-fiber/internal/shared/hash"
"github.com/nunenuh/iquote-fiber/internal/shared/validator"
"github.com/nunenuh/iquote-fiber/internal/user/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/exception"
"github.com/nunenuh/iquote-fiber/internal/utils/hash"
"github.com/nunenuh/iquote-fiber/internal/utils/validator"
)

type UserUsecase struct {
Expand Down
2 changes: 1 addition & 1 deletion internal/user/usecase/interactor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import (
"errors"
"testing"

"github.com/nunenuh/iquote-fiber/internal/shared/exception"
"github.com/nunenuh/iquote-fiber/internal/user/domain"
"github.com/nunenuh/iquote-fiber/internal/utils/exception"
"github.com/stretchr/testify/assert"
)

Expand Down

0 comments on commit 9cac8de

Please sign in to comment.