add MediaLofi in kontor-gin (#97)
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s

Co-authored-by: Thomas Peetz <thomas.peetz@cimt-ag.de>
Reviewed-on: #97
This commit was merged in pull request #97.
This commit is contained in:
2026-10-09 16:26:11 +00:00
parent 7116869b42
commit bc88c694ee
30 changed files with 689 additions and 279 deletions
@@ -2,6 +2,7 @@ package repository
import (
"context"
"fmt"
"kontor-api-gin/internal/models"
"log/slog"
@@ -26,14 +27,19 @@ func (repository *MediaActorRepository) FindAll(context context.Context) ([]mode
return actors, nil
}
func (repository *MediaActorRepository) GetById(context context.Context, id string) (models.MediaActor, error) {
func (repository *MediaActorRepository) GetById(context context.Context, id string) (*models.MediaActor, error) {
var actor = models.MediaActor{ID: id}
slog.Info("MediaActorRepository#GetById", "id", id)
result := repository.db.First(&actor)
if result.Error != nil {
slog.Info("SportRepository#GetById", "error", result.Error.Error())
}
return actor, result.Error
return &actor, result.Error
}
func (repository *MediaActorRepository) Add(context context.Context, url string) (*models.MediaActor, error) {
slog.Info("MediaActorRepository#Add", "url", url)
return nil, fmt.Errorf("unimplemented method MediaFileRepository#Add")
}
func (repository *MediaActorRepository) Delete(context context.Context, id string) error {
@@ -2,6 +2,7 @@ package repository
import (
"context"
"fmt"
"kontor-api-gin/internal/models"
"log/slog"
@@ -25,3 +26,29 @@ func (repository *MediaActorFileRepository) FindAll(context context.Context) ([]
return actor_files, nil
}
func (repository *MediaActorFileRepository) GetById(context context.Context, id string) (*models.MediaActorFile, error) {
var actorfile = models.MediaActorFile{ID: id}
slog.Info("MediaActorFileRepository#GetById", "id", id)
result := repository.db.First(&actorfile)
if result.Error != nil {
slog.Info("MediaActorFileRepository#GetById", "error", result.Error.Error())
return nil, result.Error
}
return &actorfile, result.Error
}
func (repository *MediaActorFileRepository) Add(context context.Context, media_actor_id, media_file_id string) (*models.MediaActorFile, error) {
slog.Info("MediaActorFileRepository#Add", "actor_id", media_actor_id, "file_id", media_file_id)
return nil, fmt.Errorf("unimplemented method MediaActorFileRepository#Add")
}
func (repository *MediaActorFileRepository) Delete(context context.Context, id string) error {
var file = models.MediaActorFile{ID: id}
slog.Info("MediaActorFileRepository#Delete", "id", id)
result := repository.db.Delete(&file)
if result.Error != nil {
slog.Info("MediaActorFileRepository#Delete", "error", result.Error.Error())
}
return result.Error
}
@@ -2,6 +2,7 @@ package repository
import (
"context"
"fmt"
"kontor-api-gin/internal/models"
"log/slog"
@@ -25,3 +26,29 @@ func (repository *MediaFileRepository) FindAll(context context.Context) ([]model
return files, nil
}
func (repository *MediaFileRepository) GetById(context context.Context, id string) (*models.MediaFile, error) {
var file = models.MediaFile{ID: id}
slog.Info("MediaFileRepository#GetById", "id", id)
result := repository.db.First(&file)
if result.Error != nil {
slog.Info("MediaFileRepository#GetById", "error", result.Error.Error())
return nil, result.Error
}
return &file, result.Error
}
func (repository *MediaFileRepository) Add(context context.Context, url string) (*models.MediaFile, error) {
slog.Info("MediaFileRepository#Add", "url", url)
return nil, fmt.Errorf("unimplemented method MediaFileRepository#Add")
}
func (repository *MediaFileRepository) Delete(context context.Context, id string) error {
var file = models.MediaFile{ID: id}
slog.Info("MediaFileRepository#Delete", "id", id)
result := repository.db.Delete(&file)
if result.Error != nil {
slog.Info("MediaFileRepository#Delete", "error", result.Error.Error())
}
return result.Error
}
+41 -4
View File
@@ -2,9 +2,14 @@ package repository
import (
"context"
"errors"
"fmt"
"kontor-api-gin/internal/helpers"
"kontor-api-gin/internal/models"
"log/slog"
"time"
"github.com/google/uuid"
"gorm.io/gorm"
)
@@ -26,19 +31,51 @@ func (repository *MediaLoFiRepository) FindAll(context context.Context) ([]model
return lofis, nil
}
func (repository *MediaLoFiRepository) GetById(context context.Context, id string) (models.MediaLoFi, error) {
func (repository *MediaLoFiRepository) GetById(context context.Context, id string) (*models.MediaLoFi, error) {
var lofi = models.MediaLoFi{ID: id}
slog.Info("MediaLoFiRepository#GetById", "id", id)
result := repository.db.First(&lofi)
if result.Error != nil {
slog.Info("MediaLoFiRepository#GetById", "error", result.Error.Error())
}
return lofi, result.Error
return &lofi, result.Error
}
func (repository *MediaLoFiRepository) Add(context context.Context, url string) (models.MediaLoFi, error) {
func (repository *MediaLoFiRepository) Add(context context.Context, url string) (*models.MediaLoFi, error) {
slog.Info("MediaLoFiRepository#Add", "url", url)
panic("unimplemented")
webLink := helpers.StripUrl(url, "v")
var lofi models.MediaLoFi
search_result := repository.db.Where("url = ?", webLink).First(&lofi)
if search_result.RowsAffected > 0 {
slog.Info("search for existing url", "result", search_result, "lofi", lofi)
return &lofi, nil
}
if errors.Is(search_result.Error, gorm.ErrRecordNotFound) {
slog.Info("MediaLoFiRepository#Add URL not found", "url", webLink)
lofi = models.MediaLoFi{
ID: uuid.NewString(),
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
DeletedAt: nil,
Version: 0,
WebLink: webLink,
ShouldDownload: false,
Review: true,
Title: "",
FileName: "",
}
add_result := repository.db.Create(&lofi)
if add_result.Error != nil {
slog.Info("add new MediaLofi", "error", add_result.Error)
return nil, add_result.Error
}
slog.Info("add new MediaLofi", "lofi", lofi)
return &lofi, nil
}
if search_result.Error != nil {
return nil, search_result.Error
}
return nil, fmt.Errorf("MediaLoFiRepository#Add unknown error")
}
func (repository *MediaLoFiRepository) Delete(context context.Context, id string) error {