refactor: refactoring of code
Add graceful shutdown server
This commit is contained in:
59
internal/middlewares/config.go
Normal file
59
internal/middlewares/config.go
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright 2024 Jonas Kaninda
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package middlewares
|
||||
|
||||
import (
|
||||
"github.com/jkaninda/goma-gateway/pkg/logger"
|
||||
"golang.org/x/oauth2"
|
||||
"golang.org/x/oauth2/amazon"
|
||||
"golang.org/x/oauth2/facebook"
|
||||
"golang.org/x/oauth2/github"
|
||||
"golang.org/x/oauth2/gitlab"
|
||||
"golang.org/x/oauth2/google"
|
||||
)
|
||||
|
||||
func oauth2Config(oauth Oauth) *oauth2.Config {
|
||||
config := &oauth2.Config{
|
||||
ClientID: oauth.ClientID,
|
||||
ClientSecret: oauth.ClientSecret,
|
||||
RedirectURL: oauth.RedirectURL,
|
||||
Scopes: oauth.Scopes,
|
||||
Endpoint: oauth2.Endpoint{
|
||||
AuthURL: oauth.Endpoint.AuthURL,
|
||||
TokenURL: oauth.Endpoint.TokenURL,
|
||||
},
|
||||
}
|
||||
switch oauth.Provider {
|
||||
case "google":
|
||||
config.Endpoint = google.Endpoint
|
||||
case "amazon":
|
||||
config.Endpoint = amazon.Endpoint
|
||||
case "facebook":
|
||||
config.Endpoint = facebook.Endpoint
|
||||
case "github":
|
||||
config.Endpoint = github.Endpoint
|
||||
case "gitlab":
|
||||
config.Endpoint = gitlab.Endpoint
|
||||
default:
|
||||
if oauth.Provider != "custom" {
|
||||
logger.Error("Unknown provider: %s", oauth.Provider)
|
||||
}
|
||||
|
||||
}
|
||||
return config
|
||||
}
|
||||
Reference in New Issue
Block a user