(entityGetter params.EntityGetter, op common.OperationType)
| 318 | } |
| 319 | |
| 320 | func (w *Worker) handleEntityEvent(entityGetter params.EntityGetter, op common.OperationType) { |
| 321 | entity, err := entityGetter.GetEntity() |
| 322 | if err != nil { |
| 323 | slog.DebugContext(w.ctx, "getting entity from event", "error", err) |
| 324 | return |
| 325 | } |
| 326 | switch op { |
| 327 | case common.CreateOperation, common.UpdateOperation: |
| 328 | old, hasOld := cache.GetEntity(entity.ID) |
| 329 | cache.SetEntity(entity) |
| 330 | worker, ok := w.toolsWorkes[entity.ID] |
| 331 | if !ok { |
| 332 | worker = newToolsUpdater(w.ctx, entity, w.store) |
| 333 | if err := worker.Start(); err != nil { |
| 334 | slog.ErrorContext(w.ctx, "starting tools updater", "error", err) |
| 335 | return |
| 336 | } |
| 337 | w.toolsWorkes[entity.ID] = worker |
| 338 | } else if hasOld { |
| 339 | // probably an update operation |
| 340 | if old.Credentials.GetID() != entity.Credentials.GetID() { |
| 341 | worker.Reset() |
| 342 | } |
| 343 | } |
| 344 | case common.DeleteOperation: |
| 345 | cache.DeleteEntity(entity.ID) |
| 346 | cache.DeleteGithubClient(entity.ID) |
| 347 | cache.DeleteGithubToolsCache(entity.ID) |
| 348 | worker, ok := w.toolsWorkes[entity.ID] |
| 349 | if ok { |
| 350 | if err := worker.Stop(); err != nil { |
| 351 | slog.ErrorContext(w.ctx, "stopping tools updater", "error", err) |
| 352 | } |
| 353 | delete(w.toolsWorkes, entity.ID) |
| 354 | } |
| 355 | } |
| 356 | } |
| 357 | |
| 358 | func (w *Worker) handleRepositoryEvent(event common.ChangePayload) { |
| 359 | repo, ok := event.Payload.(params.Repository) |
no test coverage detected