Files
infinite-canvas/handler/admin.go
T
HouYunFei 472bf8b732 first commit
Co-Authored-By: Codex <noreply@openai.com>
2026-05-19 19:50:36 +08:00

61 lines
1.4 KiB
Go

package handler
import (
"encoding/json"
"log"
"net/http"
"github.com/basketikun/infinite-canvas/model"
"github.com/basketikun/infinite-canvas/service"
)
type adminSyncRequest struct {
Category string `json:"category"`
}
func AdminPromptCategories(w http.ResponseWriter, r *http.Request) {
OK(w, service.ListPromptCategories())
}
func AdminPrompts(w http.ResponseWriter, r *http.Request) {
result, err := service.ListPrompts(parseQuery(r))
if err != nil {
Fail(w, err.Error())
return
}
OK(w, result)
}
func AdminSavePrompt(w http.ResponseWriter, r *http.Request) {
var item model.Prompt
_ = json.NewDecoder(r.Body).Decode(&item)
result, err := service.SavePrompt(item)
if err != nil {
Fail(w, err.Error())
return
}
OK(w, result)
}
func AdminDeletePrompt(w http.ResponseWriter, r *http.Request, id string) {
if err := service.DeletePrompt(id); err != nil {
Fail(w, err.Error())
return
}
OK(w, true)
}
func AdminSyncPromptCategories(w http.ResponseWriter, r *http.Request) {
var request adminSyncRequest
_ = json.NewDecoder(r.Body).Decode(&request)
log.Printf("sync prompt category start category=%s", request.Category)
categories, err := service.SyncPromptCategory(request.Category)
if err != nil {
log.Printf("sync prompt category failed category=%s err=%v", request.Category, err)
Fail(w, err.Error())
return
}
log.Printf("sync prompt category done category=%s", request.Category)
OK(w, categories)
}