<commit_before>package loader

import (
	"github.com/hellofresh/janus/pkg/oauth"
	"github.com/hellofresh/janus/pkg/proxy"
	"github.com/hellofresh/janus/pkg/store"
	"github.com/rs/cors"
	log "github.com/sirupsen/logrus"
)

// OAuthLoader handles the loading of the api specs
type OAuthLoader struct {
	register *proxy.Register
	storage  store.Store
}

// NewOAuthLoader creates a new instance of the Loader
func NewOAuthLoader(register *proxy.Register, storage store.Store) *OAuthLoader {
	return &OAuthLoader{register, storage}
}

// LoadDefinitions loads all oauth servers from a data source
func (m *OAuthLoader) LoadDefinitions(repo oauth.Repository) {
	oAuthServers := m.getOAuthServers(repo)
	m.RegisterOAuthServers(oAuthServers, repo)
}

// RegisterOAuthServers register many oauth servers
func (m *OAuthLoader) RegisterOAuthServers(oauthServers []*oauth.Spec, repo oauth.Repository) {
	log.Debug("Loading OAuth servers configurations")

	for _, oauthServer := range oauthServers {
		logger := log.WithField("name", oauthServer.Name)
		logger.Debug("Registering OAuth server")

		corsHandler := cors.New(cors.Options{
			AllowedOrigins:   oauthServer.CorsMeta.Domains,
			AllowedMethods:   oauthServer.CorsMeta.Methods,
			AllowedHeaders:   oauthServer.CorsMeta.RequestHeaders,
			ExposedHeaders:   oauthServer.CorsMeta.ExposedHeaders,
			AllowCredentials: true,
		}).Handler

		logger.Debug("Registering authorize endpoint")
		authorizeProxy := oauthServer.Endpoints.Authorize
		if isValid, err := authorizeProxy.Validate(); isValid && err == nil {
			m.register.Add(proxy.NewRoute(authorizeProxy, proxy.NewInChain(corsHandler), nil))
		} else {
			logger.WithError(err).Debug("No authorize endpoint")
		}

		logger.Debug("Registering token endpoint")
		tokenProxy := oauthServer.Endpoints.Token
		if isValid, err := tokenProxy.Validate(); isValid && err == nil {
			m.register.Add(
				proxy.NewRoute(
					tokenProxy,
					proxy.NewInChain(oauth.NewSecretMiddleware(oauthServer).Handler, corsHandler),
					proxy.NewOutChain(oauth.NewTokenPlugin(m.storage, repo).Out),
				),
			)
		} else {
			logger.WithError(err).Debug("No token endpoint")
		}

		logger.Debug("Registering info endpoint")
		infoProxy := oauthServer.Endpoints.Info
		if isValid, err := infoProxy.Validate(); isValid && err == nil {
			m.register.Add(proxy.NewRoute(infoProxy, proxy.NewInChain(corsHandler), nil))
		} else {
			logger.WithError(err).Debug("No info endpoint")
		}

		logger.Debug("Registering revoke endpoint")
		revokeProxy := oauthServer.Endpoints.Revoke
		if isValid, err := revokeProxy.Validate(); isValid && err == nil {
			m.register.Add(
				proxy.NewRoute(
					revokeProxy,
					proxy.NewInChain(corsHandler, oauth.NewRevokeMiddleware(oauthServer).Handler),
					nil,
				),
			)
		} else {
			logger.WithError(err).Debug("No revoke endpoint")
		}

		logger.Debug("Registering create client endpoint")
		createProxy := oauthServer.ClientEndpoints.Create
		if isValid, err := createProxy.Validate(); isValid && err == nil {
			m.register.Add(proxy.NewRoute(createProxy, proxy.NewInChain(corsHandler), nil))
		} else {
			logger.WithError(err).Debug("No client create endpoint")
		}

		logger.Debug("Registering remove client endpoint")
		removeProxy := oauthServer.ClientEndpoints.Remove
		if isValid, err := createProxy.Validate(); isValid && err == nil {
			m.register.Add(proxy.NewRoute(removeProxy, proxy.NewInChain(corsHandler), nil))
		} else {
			logger.WithError(err).Debug("No client remove endpoint")
		}

		logger.Debug("Oauth server registered")
	}

	log.Debug("Done loading OAuth servers configurations")
}
<commit_msg>Updated route init<commit_after>package loader

import (
	"github.com/hellofresh/janus/pkg/oauth"
	"github.com/hellofresh/janus/pkg/proxy"
	"github.com/hellofresh/janus/pkg/store"
	"github.com/rs/cors"
	log "github.com/sirupsen/logrus"
)

// OAuthLoader handles the loading of the api specs
type OAuthLoader struct {
	register *proxy.Register
	storage  store.Store
}

// NewOAuthLoader creates a new instance of the Loader
func NewOAuthLoader(register *proxy.Register, storage store.Store) *OAuthLoader {
	return &OAuthLoader{register, storage}
}

// LoadDefinitions loads all oauth servers from a data source
func (m *OAuthLoader) LoadDefinitions(repo oauth.Repository) {
	oAuthServers := m.getOAuthServers(repo)
	m.RegisterOAuthServers(oAuthServers, repo)
}

// RegisterOAuthServers register many oauth servers
func (m *OAuthLoader) RegisterOAuthServers(oauthServers []*oauth.Spec, repo oauth.Repository) {
	log.Debug("Loading OAuth servers configurations")

	for _, oauthServer := range oauthServers {
		logger := log.WithField("name", oauthServer.Name)
		logger.Debug("Registering OAuth server")

		corsHandler := cors.New(cors.Options{
			AllowedOrigins:   oauthServer.CorsMeta.Domains,
			AllowedMethods:   oauthServer.CorsMeta.Methods,
			AllowedHeaders:   oauthServer.CorsMeta.RequestHeaders,
			ExposedHeaders:   oauthServer.CorsMeta.ExposedHeaders,
			AllowCredentials: true,
		}).Handler

		logger.Debug("Registering authorize endpoint")
		authorizeProxy := oauthServer.Endpoints.Authorize
		if isValid, err := authorizeProxy.Validate(); isValid && err == nil {
			m.register.Add(proxy.NewRouteWithInOut(authorizeProxy, proxy.NewInChain(corsHandler), nil))
		} else {
			logger.WithError(err).Debug("No authorize endpoint")
		}

		logger.Debug("Registering token endpoint")
		tokenProxy := oauthServer.Endpoints.Token
		if isValid, err := tokenProxy.Validate(); isValid && err == nil {
			m.register.Add(
				proxy.NewRouteWithInOut(
					tokenProxy,
					proxy.NewInChain(oauth.NewSecretMiddleware(oauthServer).Handler, corsHandler),
					proxy.NewOutChain(oauth.NewTokenPlugin(m.storage, repo).Out),
				),
			)
		} else {
			logger.WithError(err).Debug("No token endpoint")
		}

		logger.Debug("Registering info endpoint")
		infoProxy := oauthServer.Endpoints.Info
		if isValid, err := infoProxy.Validate(); isValid && err == nil {
			m.register.Add(proxy.NewRouteWithInOut(infoProxy, proxy.NewInChain(corsHandler), nil))
		} else {
			logger.WithError(err).Debug("No info endpoint")
		}

		logger.Debug("Registering revoke endpoint")
		revokeProxy := oauthServer.Endpoints.Revoke
		if isValid, err := revokeProxy.Validate(); isValid && err == nil {
			m.register.Add(
				proxy.NewRouteWithInOut(
					revokeProxy,
					proxy.NewInChain(corsHandler, oauth.NewRevokeMiddleware(oauthServer).Handler),
					nil,
				),
			)
		} else {
			logger.WithError(err).Debug("No revoke endpoint")
		}

		logger.Debug("Registering create client endpoint")
		createProxy := oauthServer.ClientEndpoints.Create
		if isValid, err := createProxy.Validate(); isValid && err == nil {
			m.register.Add(proxy.NewRouteWithInOut(createProxy, proxy.NewInChain(corsHandler), nil))
		} else {
			logger.WithError(err).Debug("No client create endpoint")
		}

		logger.Debug("Registering remove client endpoint")
		removeProxy := oauthServer.ClientEndpoints.Remove
		if isValid, err := createProxy.Validate(); isValid && err == nil {
			m.register.Add(proxy.NewRouteWithInOut(removeProxy, proxy.NewInChain(corsHandler), nil))
		} else {
			logger.WithError(err).Debug("No client remove endpoint")
		}

		logger.Debug("Oauth server registered")
	}

	log.Debug("Done loading OAuth servers configurations")
}

{'fraction_non_alphanumeric': 0.12010372594513444, 'fraction_numerical': 0.0, 'mean_word_length': 4.729476153244723, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5255944', 'n_tokens_mistral': 2559, 'n_tokens_neox': 2332, 'n_words': 464}