From 5cfde5719ae4db9a501ad07ca36fe86f10bf4118 Mon Sep 17 00:00:00 2001 From: hanif salafi Date: Mon, 4 Nov 2024 08:12:22 +0700 Subject: [PATCH] feat: update article all response --- app/module/articles/mapper/articles.mapper.go | 12 ++++++++ .../articles/service/articles.service.go | 28 +++++++++++-------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/app/module/articles/mapper/articles.mapper.go b/app/module/articles/mapper/articles.mapper.go index f641ab7..db6df39 100644 --- a/app/module/articles/mapper/articles.mapper.go +++ b/app/module/articles/mapper/articles.mapper.go @@ -3,6 +3,7 @@ package mapper import ( "github.com/rs/zerolog" "go-humas-be/app/database/entity" + articleCategoriesRepository "go-humas-be/app/module/article_categories/repository" articleFilesMapper "go-humas-be/app/module/article_files/mapper" articleFilesRepository "go-humas-be/app/module/article_files/repository" articleFilesResponse "go-humas-be/app/module/article_files/response" @@ -13,6 +14,7 @@ import ( func ArticlesResponseMapper( log zerolog.Logger, articlesReq *entity.Articles, + articleCategoriesRepo articleCategoriesRepository.ArticleCategoriesRepository, articleFilesRepo articleFilesRepository.ArticleFilesRepository, usersRepo usersRepository.UsersRepository, ) (articlesRes *res.ArticlesResponse) { @@ -29,6 +31,14 @@ func ArticlesResponseMapper( } } + categoryName := "" + if articlesReq.CategoryId != 0 { + findCategory, _ := articleCategoriesRepo.FindOne(uint(articlesReq.CategoryId)) + if findCategory != nil { + categoryName = findCategory.Title + } + } + articleFiles, _ := articleFilesRepo.FindByArticle(articlesReq.ID) var articleFilesArr []*articleFilesResponse.ArticleFilesResponse if articleFiles != nil && len(articleFiles) > 0 { @@ -47,6 +57,8 @@ func ArticlesResponseMapper( TypeId: articlesReq.TypeId, Tags: articlesReq.Tags, ThumbnailUrl: thumbnailUrl, + CategoryId: articlesReq.CategoryId, + CategoryName: categoryName, PageUrl: articlesReq.PageUrl, CreatedById: articlesReq.CreatedById, CreatedByName: &createdByName, diff --git a/app/module/articles/service/articles.service.go b/app/module/articles/service/articles.service.go index 7a67b89..a1392ac 100644 --- a/app/module/articles/service/articles.service.go +++ b/app/module/articles/service/articles.service.go @@ -6,6 +6,7 @@ import ( "github.com/minio/minio-go/v7" "github.com/rs/zerolog" "go-humas-be/app/database/entity" + articleCategoriesRepository "go-humas-be/app/module/article_categories/repository" articleFilesRepository "go-humas-be/app/module/article_files/repository" "go-humas-be/app/module/articles/mapper" "go-humas-be/app/module/articles/repository" @@ -27,11 +28,12 @@ import ( // ArticlesService type articlesService struct { - Repo repository.ArticlesRepository - ArticleFilesRepo articleFilesRepository.ArticleFilesRepository - Log zerolog.Logger - UsersRepo usersRepository.UsersRepository - MinioStorage *minioStorage.MinioStorage + Repo repository.ArticlesRepository + ArticleCategoriesRepo articleCategoriesRepository.ArticleCategoriesRepository + ArticleFilesRepo articleFilesRepository.ArticleFilesRepository + Log zerolog.Logger + UsersRepo usersRepository.UsersRepository + MinioStorage *minioStorage.MinioStorage } // ArticlesService define interface of IArticlesService @@ -48,6 +50,7 @@ type ArticlesService interface { // NewArticlesService init ArticlesService func NewArticlesService( repo repository.ArticlesRepository, + articleCategoriesRepo articleCategoriesRepository.ArticleCategoriesRepository, articleFilesRepo articleFilesRepository.ArticleFilesRepository, log zerolog.Logger, usersRepo usersRepository.UsersRepository, @@ -55,11 +58,12 @@ func NewArticlesService( ) ArticlesService { return &articlesService{ - Repo: repo, - ArticleFilesRepo: articleFilesRepo, - Log: log, - UsersRepo: usersRepo, - MinioStorage: minioStorage, + Repo: repo, + ArticleCategoriesRepo: articleCategoriesRepo, + ArticleFilesRepo: articleFilesRepo, + Log: log, + UsersRepo: usersRepo, + MinioStorage: minioStorage, } } @@ -75,7 +79,7 @@ func (_i *articlesService) All(req request.ArticlesQueryRequest) (articless []*r Interface("results", results).Msg("") for _, result := range results { - articleRes := mapper.ArticlesResponseMapper(_i.Log, result, _i.ArticleFilesRepo, _i.UsersRepo) + articleRes := mapper.ArticlesResponseMapper(_i.Log, result, _i.ArticleCategoriesRepo, _i.ArticleFilesRepo, _i.UsersRepo) articless = append(articless, articleRes) } @@ -88,7 +92,7 @@ func (_i *articlesService) Show(id uint) (articles *response.ArticlesResponse, e return nil, err } - return mapper.ArticlesResponseMapper(_i.Log, result, _i.ArticleFilesRepo, _i.UsersRepo), nil + return mapper.ArticlesResponseMapper(_i.Log, result, _i.ArticleCategoriesRepo, _i.ArticleFilesRepo, _i.UsersRepo), nil } func (_i *articlesService) Save(req request.ArticlesCreateRequest, authToken string) (articles *entity.Articles, err error) {