Files
HouYunFei 472bf8b732 first commit
Co-Authored-By: Codex <noreply@openai.com>
2026-05-19 19:50:36 +08:00

51 lines
1.0 KiB
Go

package service
import (
"time"
"github.com/basketikun/infinite-canvas/model"
"github.com/basketikun/infinite-canvas/repository"
)
func ListAssets(q model.Query) (model.AssetList, error) {
items, total, err := repository.ListAssets(q)
if err != nil {
return model.AssetList{}, err
}
tags, err := repository.ListAssetTags(q)
if err != nil {
return model.AssetList{}, err
}
return model.AssetList{Items: items, Tags: tags, Total: int(total)}, nil
}
func SaveAsset(item model.Asset) (model.Asset, error) {
now := time.Now().Format(time.RFC3339)
if item.Type == "" {
item.Type = model.AssetTypeText
}
if item.ID == "" {
item.ID = newID("asset")
item.CreatedAt = now
}
item.UpdatedAt = now
if item.CoverURL == "" {
item.CoverURL = assetCoverURL(item)
}
return repository.SaveAsset(item)
}
func DeleteAsset(id string) error {
return repository.DeleteAsset(id)
}
func assetCoverURL(item model.Asset) string {
if item.CoverURL != "" {
return item.CoverURL
}
if item.Type == model.AssetTypeImage {
return item.URL
}
return ""
}