We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Southclaws/storyden'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
package post_read_state
import (
"context"
"time"
"github.com/Southclaws/fault"
"github.com/Southclaws/fault/ftag"
"github.com/rs/xid"
"github.com/Southclaws/storyden/app/resources/account"
"github.com/Southclaws/storyden/app/resources/post"
"github.com/Southclaws/storyden/internal/ent"
"github.com/Southclaws/storyden/internal/ent/postread"
)
type Writer struct {
db *ent.Client
}
func New(db *ent.Client) *Writer {
return &Writer{db: db}
}
func (w *Writer) UpsertReadState(ctx context.Context, accountID account.AccountID, threadID post.ID) error {
_, err := w.db.PostRead.Create().
SetAccountID(xid.ID(accountID)).
SetRootPostID(xid.ID(threadID)).
SetLastSeenAt(time.Now().UTC()).
OnConflictColumns(postread.FieldRootPostID, postread.FieldAccountID).
UpdateNewValues().
ID(ctx)
if err != nil {
return fault.Wrap(err, ftag.With(ftag.Internal))
}
return nil
}