This commit is contained in:
@@ -5,18 +5,20 @@ import (
|
||||
)
|
||||
|
||||
type MediaHandler struct {
|
||||
MediaActorHandler *MediaActorHandler
|
||||
MediaFileHandler *MediaFileHandler
|
||||
MediaLoFiHandler *MediaLoFiHandler
|
||||
MediaVideoHandler *MediaVideoHandler
|
||||
MediaActorHandler *MediaActorHandler
|
||||
MediaFileHandler *MediaFileHandler
|
||||
MediaLoFiHandler *MediaLoFiHandler
|
||||
MediaVideoHandler *MediaVideoHandler
|
||||
MediaActorFileHandler *MediaActorFileHandler
|
||||
}
|
||||
|
||||
func NewMediaHandler(db *gorm.DB) *MediaHandler {
|
||||
mediaHandler := &MediaHandler{
|
||||
MediaActorHandler: NewMediaActorHandler(db),
|
||||
MediaFileHandler: NewMediaFileHandler(db),
|
||||
MediaLoFiHandler: NewMediaLoFiHandler(db),
|
||||
MediaVideoHandler: NewMediaVideoHandler(db),
|
||||
MediaActorHandler: NewMediaActorHandler(db),
|
||||
MediaFileHandler: NewMediaFileHandler(db),
|
||||
MediaLoFiHandler: NewMediaLoFiHandler(db),
|
||||
MediaVideoHandler: NewMediaVideoHandler(db),
|
||||
MediaActorFileHandler: NewMediaActorFileHandler(db),
|
||||
}
|
||||
return mediaHandler
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"kontor-api-gin/internal/globals"
|
||||
"kontor-api-gin/internal/models"
|
||||
"kontor-api-gin/internal/repository"
|
||||
"kontor-api-gin/internal/service"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-contrib/sessions"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type MediaActorFileHandler struct {
|
||||
Service *service.MediaActorFileService
|
||||
}
|
||||
|
||||
func NewMediaActorFileHandler(db *gorm.DB) *MediaActorFileHandler {
|
||||
mediaActorFileHandler := &MediaActorFileHandler{
|
||||
Service: service.NewMediaActorFileService(repository.NewMediaActorFileRepository(db)),
|
||||
}
|
||||
return mediaActorFileHandler
|
||||
}
|
||||
|
||||
func (handler *MediaActorFileHandler) List(c *gin.Context) {
|
||||
media_actor_files, err := handler.Service.List(c.Request.Context())
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
dtos := models.ConvertMediaActorFilesToDtos(media_actor_files)
|
||||
c.JSON(http.StatusOK, dtos)
|
||||
}
|
||||
|
||||
func (handler *MediaActorFileHandler) ListPage(c *gin.Context) {
|
||||
session := sessions.Default(c)
|
||||
user := session.Get(globals.UserKey)
|
||||
media_actor_files, err := handler.Service.List(c.Request.Context())
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
c.HTML(http.StatusOK, "mediaactorfiles", gin.H{
|
||||
"title": "Kontor MediaActorFiles",
|
||||
"version": "0.4.0",
|
||||
"message": "MediaActorFiles...",
|
||||
"actors": media_actor_files,
|
||||
"user": user,
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"context"
|
||||
"kontor-api-gin/internal/models"
|
||||
"log/slog"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type MediaActorFileRepository struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func NewMediaActorFileRepository(db *gorm.DB) *MediaActorFileRepository {
|
||||
repo := &MediaActorFileRepository{db: db}
|
||||
return repo
|
||||
}
|
||||
|
||||
func (repository *MediaActorFileRepository) FindAll(context context.Context) ([]models.MediaActorFile, error) {
|
||||
var actor_files []models.MediaActorFile
|
||||
|
||||
result := repository.db.Find(&actor_files)
|
||||
slog.Info("MediaActorFileRepository#FindAll", "count", result.RowsAffected)
|
||||
|
||||
return actor_files, nil
|
||||
}
|
||||
@@ -91,20 +91,21 @@ func New(admin *handlers.AdminHandler, bookshelf *handlers.BookshelfHandler, com
|
||||
secured.GET("bookshelf/authors", bookshelf.AuthorHandler.List)
|
||||
secured.GET("bookshelf/articleauthors", bookshelf.ArticleAuthorHandler.List)
|
||||
secured.GET("bookshelf/bookauthors", bookshelf.BookAuthorHandler.List)
|
||||
secured.GET("/comics/comics", comics.ComicHandler.List)
|
||||
secured.GET("/comics/publishers", comics.PublisherHandler.List)
|
||||
secured.GET("/comics/artists", comics.ArtistHandler.List)
|
||||
secured.GET("/comics/issues", comics.IssueHandler.List)
|
||||
secured.GET("/comics/tradepaperbacks", comics.TradePaperbackHandler.List)
|
||||
secured.GET("/comics/worktypes", comics.WorkTypeHandler.List)
|
||||
secured.GET("/comics/volumes", comics.VolumeHandler.List)
|
||||
secured.GET("/comics/storyarcs", comics.StoryArcHandler.List)
|
||||
secured.GET("/comics/comicworks", comics.ComicworkHandler.List)
|
||||
secured.GET("/comics/issueworks", comics.IssueworkHandler.List)
|
||||
secured.GET("/media/files", media.MediaFileHandler.List)
|
||||
secured.GET("/media/videos", media.MediaVideoHandler.List)
|
||||
secured.GET("/media/lofis", media.MediaLoFiHandler.List)
|
||||
secured.GET("/media/actors", media.MediaActorHandler.List)
|
||||
secured.GET("comics/comics", comics.ComicHandler.List)
|
||||
secured.GET("comics/publishers", comics.PublisherHandler.List)
|
||||
secured.GET("comics/artists", comics.ArtistHandler.List)
|
||||
secured.GET("comics/issues", comics.IssueHandler.List)
|
||||
secured.GET("comics/tradepaperbacks", comics.TradePaperbackHandler.List)
|
||||
secured.GET("comics/worktypes", comics.WorkTypeHandler.List)
|
||||
secured.GET("comics/volumes", comics.VolumeHandler.List)
|
||||
secured.GET("comics/storyarcs", comics.StoryArcHandler.List)
|
||||
secured.GET("comics/comicworks", comics.ComicworkHandler.List)
|
||||
secured.GET("comics/issueworks", comics.IssueworkHandler.List)
|
||||
secured.GET("media/files", media.MediaFileHandler.List)
|
||||
secured.GET("media/videos", media.MediaVideoHandler.List)
|
||||
secured.GET("media/lofis", media.MediaLoFiHandler.List)
|
||||
secured.GET("media/actors", media.MediaActorHandler.List)
|
||||
secured.GET("media/actorfiles", media.MediaActorFileHandler.List)
|
||||
}
|
||||
return router
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"kontor-api-gin/internal/models"
|
||||
"kontor-api-gin/internal/repository"
|
||||
"log/slog"
|
||||
)
|
||||
|
||||
type MediaActorFileService struct {
|
||||
repository *repository.MediaActorFileRepository
|
||||
}
|
||||
|
||||
func NewMediaActorFileService(repo *repository.MediaActorFileRepository) *MediaActorFileService {
|
||||
service := &MediaActorFileService{repository: repo}
|
||||
return service
|
||||
}
|
||||
|
||||
func (service *MediaActorFileService) List(context context.Context) ([]models.MediaActorFile, error) {
|
||||
slog.Info("MediaActorFileService#List")
|
||||
return service.repository.FindAll(context)
|
||||
}
|
||||
Reference in New Issue
Block a user