kontor-echo: setup project to show homepage
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 6s
Gitea Actions Demo / build-and-test (push) Failing after 11s

This commit is contained in:
Thomas Peetz
2026-11-09 17:02:59 +01:00
parent 074abd3c85
commit debdf3d0b0
63 changed files with 2411 additions and 485 deletions
+35 -36
View File
@@ -2,10 +2,14 @@ package repository
import (
"context"
"database/sql"
"errors"
"kontor-api-echo/internal/helpers"
"kontor-api-echo/internal/models"
"log/slog"
"time"
"github.com/google/uuid"
"github.com/labstack/echo/v5"
"github.com/uptrace/bun"
)
@@ -68,42 +72,37 @@ func (repository *MediaVideoRepository) GetById(context context.Context, id stri
return &video, nil
}
// func (repository *MediaVideoRepository) Add(context context.Context, url string) (*models.MediaVideo, error) {
// slog.Info("MediaVideoRepository#Add", "url", url)
// webLink := helpers.StripUrl(url, "v")
// var video models.MediaVideo
// search_result := repository.db.Where("url = ?", webLink).First(&video)
// if search_result.RowsAffected > 0 {
// slog.Info("search for existing url", "result", search_result, "video", video)
// return &video, nil
// }
// if errors.Is(search_result.Error, sql.ErrNoRows) {
// slog.Info("MediaVideoRepository#Add URL not found", "url", webLink)
// video = models.MediaVideo{
// 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(&video)
// if add_result.Error != nil {
// slog.Info("add new MediaVideo", "error", add_result.Error)
// return nil, add_result.Error
// }
// slog.Info("add new MediaVideo", "music", video)
// return &video, nil
// }
// if search_result.Error != nil {
// return nil, search_result.Error
// }
// return nil, fmt.Errorf("MediaVideoRepository#Add unknown error")
// }
func (repository *MediaVideoRepository) Add(context context.Context, url string) (*models.MediaVideo, error) {
slog.Info("MediaVideoRepository#Add", "url", url)
webLink := helpers.StripUrl(url, "v")
var model models.MediaVideo
err := repository.db.NewSelect().Model(&model).Where("url = ?", url).Scan(context)
if errors.Is(err, sql.ErrNoRows) {
slog.Info("MediaMusicRepository#Add URL not found", "url", webLink)
video := models.MediaVideo{
ID: uuid.NewString(),
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
DeletedAt: nil,
Version: 0,
WebLink: webLink,
ShouldDownload: false,
Review: true,
Title: "",
FileName: "",
}
_, add_error := repository.db.NewInsert().Model(&model).Exec(context)
if add_error != nil {
slog.Info("add new MediaMusic", "error", add_error)
return nil, add_error
}
slog.Info("add new MediaMusic", "lofi", video)
return &video, nil
} else {
slog.Info("search for existing url", "lofi", model)
return &model, nil
}
}
func (repository *MediaVideoRepository) Update(context context.Context, update models.MediaVideoDTO) (*models.MediaVideo, error) {
slog.Info("MediaVideoRepository#Update", "video", update)