narasiahli-be/app/module/knowledge_base/mapper/knowledge_base.mapper.go

64 lines
1.3 KiB
Go

package mapper
import (
"narasi-ahli-be/app/database/entity"
"path/filepath"
res "narasi-ahli-be/app/module/knowledge_base/response"
)
func KnowledgeBaseResponseMapper(
kb *entity.KnowledgeBase,
host string,
) (out *res.KnowledgeBaseResponse) {
if kb == nil {
return nil
}
viewerBase := host + "/knowledge-base/viewer/"
var journalUrl, audioUrl, videoUrl *string
// JOURNAL
if kb.FileJournalUrl != nil && *kb.FileJournalUrl != "" {
filename := filepath.Base(*kb.FileJournalUrl)
url := viewerBase + filename
journalUrl = &url
}
// AUDIO
if kb.FileAudioUrl != nil && *kb.FileAudioUrl != "" {
filename := filepath.Base(*kb.FileAudioUrl)
url := viewerBase + filename
audioUrl = &url
}
// VIDEO
if kb.FileVideoUrl != nil && *kb.FileVideoUrl != "" {
filename := filepath.Base(*kb.FileVideoUrl)
url := viewerBase + filename
videoUrl = &url
}
out = &res.KnowledgeBaseResponse{
ID: kb.ID,
AgentId: kb.AgentId,
AgentName: kb.AgentName,
CreatedById: kb.CreatedById,
Title: kb.Title,
Status: kb.Status,
// 🔥 HANYA viewer URL yang dikirim
FileJournalUrl: journalUrl,
FileAudioUrl: audioUrl,
FileVideoUrl: videoUrl,
IsActive: kb.IsActive,
CreatedAt: kb.CreatedAt,
UpdatedAt: kb.UpdatedAt,
}
return out
}