Files
geo/server/internal/tenant/app/kol_prompt_asset.go
T

37 lines
979 B
Go

package app
import (
"context"
"fmt"
"github.com/geo-platform/tenant-api/internal/shared/objectstorage"
)
type KolPromptAsset struct {
storage objectstorage.Client
}
func NewKolPromptAsset(storage objectstorage.Client) *KolPromptAsset {
return &KolPromptAsset{storage: storage}
}
func (a *KolPromptAsset) assetKey(tenantID, promptID int64, revisionNo int) string {
return fmt.Sprintf("kol-prompts/%d/%d/%d.txt", tenantID, promptID, revisionNo)
}
func (a *KolPromptAsset) Put(ctx context.Context, tenantID, promptID int64, revisionNo int, content string) (string, error) {
key := a.assetKey(tenantID, promptID, revisionNo)
if err := a.storage.PutBytes(ctx, key, []byte(content), "text/plain; charset=utf-8"); err != nil {
return "", err
}
return key, nil
}
func (a *KolPromptAsset) Get(ctx context.Context, assetKey string) (string, error) {
content, err := a.storage.GetBytes(ctx, assetKey)
if err != nil {
return "", err
}
return string(content), nil
}