// Copyright (c) 2024 Mattermost Community Enterprise // Registration of Compliance implementation // // This file provides registration functions that can be called from Mattermost server. // The actual registration must be done in the Mattermost server codebase by importing // this package and calling RegisterCompliance(). package compliance import ( "github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/einterfaces" ) // ComplianceFactory is a function type that creates a ComplianceInterface type ComplianceFactory func(store store.Store, config func() *model.Config, logger mlog.LoggerIFace) einterfaces.ComplianceInterface // NewComplianceFactory returns a factory function for creating Compliance interfaces func NewComplianceFactory() ComplianceFactory { return func(store store.Store, config func() *model.Config, logger mlog.LoggerIFace) einterfaces.ComplianceInterface { cfg := &ComplianceConfig{ Store: store, Config: config, Logger: logger, } return NewComplianceInterface(cfg) } } // CreateComplianceInterface creates a new Compliance interface directly func CreateComplianceInterface(store store.Store, config func() *model.Config, logger mlog.LoggerIFace) einterfaces.ComplianceInterface { cfg := &ComplianceConfig{ Store: store, Config: config, Logger: logger, } return NewComplianceInterface(cfg) }