MCPcopy
hub / github.com/ddworken/hishtory / updateUsageData

Method updateUsageData

backend/server/internal/server/srv.go:160–207  ·  view source on GitHub ↗
(ctx context.Context, version, remoteAddr, userId, deviceId string, numEntriesHandled int, isQuery bool)

Source from the content-addressed store, hash-verified

158}
159
160func (s *Server) updateUsageData(ctx context.Context, version, remoteAddr, userId, deviceId string, numEntriesHandled int, isQuery bool) error {
161 if !s.trackUsageData {
162 return nil
163 }
164 var usageData []database.UsageData
165 usageData, err := s.db.UsageDataFindByUserAndDevice(ctx, userId, deviceId)
166 if err != nil && !strings.Contains(err.Error(), "record not found") {
167 return fmt.Errorf("db.UsageDataFindByUserAndDevice: %w", err)
168 }
169 if len(usageData) == 0 {
170 err := s.db.CreateUsageData(
171 ctx,
172 &database.UsageData{
173 UserId: userId,
174 DeviceId: deviceId,
175 LastUsed: time.Now(),
176 NumEntriesHandled: numEntriesHandled,
177 Version: version,
178 },
179 )
180 if err != nil {
181 return fmt.Errorf("db.UsageDataCreate: %w", err)
182 }
183 } else {
184 usage := usageData[0]
185
186 if err := s.db.UpdateUsageData(ctx, userId, deviceId, time.Now(), remoteAddr); err != nil {
187 return fmt.Errorf("db.UsageDataUpdate: %w", err)
188 }
189 if numEntriesHandled > 0 {
190 if err := s.db.UpdateUsageDataForNumEntriesHandled(ctx, userId, deviceId, numEntriesHandled); err != nil {
191 return fmt.Errorf("db.UsageDataUpdateNumEntriesHandled: %w", err)
192 }
193 }
194 if usage.Version != version {
195 if err := s.db.UpdateUsageDataClientVersion(ctx, userId, deviceId, version); err != nil {
196 return fmt.Errorf("db.UsageDataUpdateVersion: %w", err)
197 }
198 }
199 }
200 if isQuery {
201 if err := s.db.UpdateUsageDataNumberQueries(ctx, userId, deviceId); err != nil {
202 return fmt.Errorf("db.UsageDataUpdateNumQueries: %w", err)
203 }
204 }
205
206 return nil
207}

Callers 5

apiSubmitHandlerMethod · 0.95
apiBootstrapHandlerMethod · 0.95
apiQueryHandlerMethod · 0.95
apiSubmitDumpHandlerMethod · 0.95
apiRegisterHandlerMethod · 0.95

Tested by

no test coverage detected