72 lines
2.1 KiB
Go
72 lines
2.1 KiB
Go
package controller
|
|
|
|
import (
|
|
"context"
|
|
"video-factory/shortdrama/model/dto"
|
|
"video-factory/shortdrama/service"
|
|
)
|
|
|
|
// ==================== Prop CRUD ====================
|
|
|
|
func (c *drama) ListProp(ctx context.Context, req *dto.ListPropReq) (res *dto.ListPropRes, err error) {
|
|
list, err := service.DramaService.ListProp(ctx, req.DramaId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &dto.ListPropRes{List: list}, nil
|
|
}
|
|
|
|
func (c *drama) AddProp(ctx context.Context, req *dto.AddPropReq) (res *dto.GetDramaRes, err error) {
|
|
var imagePath string
|
|
if req.ImageFile != nil {
|
|
f, err := req.ImageFile.Open()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer func() { _ = f.Close() }()
|
|
if err := service.ValidateUploadFile(ctx, req.ImageFile.Size, req.ImageFile.Filename, "image"); err != nil {
|
|
return nil, err
|
|
}
|
|
imagePath, err = service.DramaService.SaveScenePropFile(ctx, req.DramaId, f, req.ImageFile.Filename, "道具", req.Name)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
_, err = service.DramaService.AddProp(ctx, req.DramaId, req.Name, req.Description, imagePath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Get(ctx, &dto.GetDramaReq{Id: req.DramaId})
|
|
}
|
|
|
|
func (c *drama) UpdateProp(ctx context.Context, req *dto.UpdatePropReq) (res *dto.GetDramaRes, err error) {
|
|
var imagePath string
|
|
if req.ImageFile != nil {
|
|
f, err := req.ImageFile.Open()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer func() { _ = f.Close() }()
|
|
if err := service.ValidateUploadFile(ctx, req.ImageFile.Size, req.ImageFile.Filename, "image"); err != nil {
|
|
return nil, err
|
|
}
|
|
imagePath, err = service.DramaService.SaveScenePropFile(ctx, req.DramaId, f, req.ImageFile.Filename, "道具", req.Name)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
err = service.DramaService.UpdateProp(ctx, req.Id, req.DramaId, req.Name, req.Description, imagePath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Get(ctx, &dto.GetDramaReq{Id: req.DramaId})
|
|
}
|
|
|
|
func (c *drama) DeleteProp(ctx context.Context, req *dto.DeletePropReq) (res *dto.GetDramaRes, err error) {
|
|
err = service.DramaService.DeleteProp(ctx, req.Id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Get(ctx, &dto.GetDramaReq{Id: req.DramaId})
|
|
}
|