coordinator_legacy.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package securityaudit
  2. import (
  3. "context"
  4. "github.com/Wei-Shaw/sub2api/internal/service"
  5. )
  6. type LegacyModerationAdapter struct {
  7. service *service.ContentModerationService
  8. }
  9. func NewLegacyModerationAdapter(svc *service.ContentModerationService) LegacyEngine {
  10. return &LegacyModerationAdapter{service: svc}
  11. }
  12. func (a *LegacyModerationAdapter) Check(ctx context.Context, req Request) (*LegacyDecision, error) {
  13. if a == nil || a.service == nil {
  14. return nil, nil
  15. }
  16. decision, err := a.service.Check(ctx, service.ContentModerationCheckInput{
  17. RequestID: req.RequestID, UserID: req.UserID, UserEmail: req.UserEmail,
  18. APIKeyID: req.APIKeyID, APIKeyName: req.APIKeyName, GroupID: cloneInt64Ptr(req.GroupID),
  19. GroupName: req.GroupName, Endpoint: req.Endpoint, Provider: req.Provider,
  20. Model: req.Model, Protocol: req.Protocol, Body: req.Body,
  21. })
  22. if err != nil || decision == nil {
  23. return nil, err
  24. }
  25. return &LegacyDecision{
  26. Allowed: decision.Allowed, Blocked: decision.Blocked, Flagged: decision.Flagged,
  27. Message: decision.Message, StatusCode: decision.StatusCode,
  28. ErrorCode: "content_policy_violation", Action: decision.Action,
  29. }, nil
  30. }