first commit

Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
HouYunFei
2026-05-19 07:53:53 +08:00
commit 472bf8b732
133 changed files with 16869 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
package service
import (
"time"
"github.com/basketikun/infinite-canvas/model"
"github.com/basketikun/infinite-canvas/repository"
)
func ListPrompts(q model.Query) (model.PromptList, error) {
items, total, err := repository.ListPrompts(q)
if err != nil {
return model.PromptList{}, err
}
tags, err := repository.ListPromptTags(q)
if err != nil {
return model.PromptList{}, err
}
categories := promptCategoryCodes(ListPromptCategories())
return model.PromptList{Items: items, Tags: tags, Categories: categories, Total: int(total)}, nil
}
func ListPromptCategories() []model.PromptCategory {
categories, _ := repository.ListPromptCategories()
return categories
}
func SavePrompt(item model.Prompt) (model.Prompt, error) {
now := time.Now().Format(time.RFC3339)
if item.Category == "" {
item.Category = repository.PromptCategories()[0].Category
}
if item.ID == "" {
item.ID = newID(item.Category)
item.CreatedAt = now
}
item.UpdatedAt = now
category, ok := repository.PromptCategoryByCode(item.Category)
if !ok {
category = repository.PromptCategories()[0]
item.Category = category.Category
}
item.GithubURL = ""
return repository.SavePrompt(item)
}
func DeletePrompt(id string) error {
return repository.DeletePrompt(id)
}
func promptCategoryCodes(items []model.PromptCategory) []string {
codes := []string{}
for _, item := range items {
if item.Category != "" {
codes = append(codes, item.Category)
}
}
return codes
}