package jump

import (
	"context"

	"github.com/tidbcloud/devops/entity/event"
	"github.com/tidbcloud/devops/pkg/service/jump/repo"
)

// HandleApprovalEvent watch operation event and handle our operation.
func (s *svc) HandleApprovalEvent(uuid string, ev *event.ApprovalEvent) error {
	if ev.EventType != event.ApprovalEventTypeFinish {
		return nil
	}

	apprID := ev.ID
	auths, err := s.jmpRepo.ListAuthorizations(context.TODO(), repo.AuthorizationOpts.ApprovalIs(apprID))
	if err != nil {
		return err
	}
	if len(auths) == 0 {
		return nil
	}

	for _, auth := range auths {
		s.syncInsCh <- auth.ID
	}
	return nil
}
