MCPcopy Create free account
hub / github.com/astercloud/aster / Create

Method Create

pkg/session/sqlite/store.go:107–137  ·  view source on GitHub ↗

Create creates a new session.

(ctx context.Context, req *session.CreateRequest)

Source from the content-addressed store, hash-verified

105
106// Create creates a new session.
107func (s *Service) Create(ctx context.Context, req *session.CreateRequest) (session.Session, error) {
108 s.mu.Lock()
109 defer s.mu.Unlock()
110
111 id := uuid.New().String()
112 now := time.Now()
113
114 metadata, err := json.Marshal(req.Metadata)
115 if err != nil {
116 return nil, fmt.Errorf("marshal metadata: %w", err)
117 }
118
119 _, err = s.db.ExecContext(ctx,
120 `INSERT INTO sessions (id, app_name, user_id, agent_id, metadata, created_at, updated_at)
121 VALUES (?, ?, ?, ?, ?, ?, ?)`,
122 id, req.AppName, req.UserID, req.AgentID, string(metadata), now, now,
123 )
124 if err != nil {
125 return nil, fmt.Errorf("insert session: %w", err)
126 }
127
128 return &sqliteSession{
129 service: s,
130 id: id,
131 appName: req.AppName,
132 userID: req.UserID,
133 agentID: req.AgentID,
134 metadata: req.Metadata,
135 lastUpdateTime: now,
136 }, nil
137}
138
139// Get retrieves a session by ID.
140func (s *Service) Get(ctx context.Context, req *session.GetRequest) (session.Session, error) {

Callers

nothing calls this directly

Implementers 2

InMemoryServicepkg/session/inmemory.go
Servicepkg/session/sqlite/store.go

Calls 1

StringMethod · 0.45

Tested by

no test coverage detected