Compare commits
No commits in common. "master" and "dev" have entirely different histories.
4
Makefile
4
Makefile
@ -1,4 +1,2 @@
|
||||
run_usersUpdateLoginMethod:
|
||||
go run cmd/main.go -c usersUpdateLoginMethod
|
||||
help:
|
||||
go run cmd/main.go -c help
|
||||
go run cmd/main.go -c usersUpdateLoginMethod
|
||||
@ -25,8 +25,7 @@ func main() {
|
||||
config.MustLoad(confPath)
|
||||
|
||||
if commandName == "" {
|
||||
l.Log.Error().Msg("flag '-c' required")
|
||||
return
|
||||
l.Log.Fatal().Msg("flag '-c' required")
|
||||
}
|
||||
|
||||
logger.MustInit()
|
||||
@ -37,13 +36,12 @@ func main() {
|
||||
l.Log.Warn().Err(e.ErrCommandNotFound).Str("command", commandName).Send()
|
||||
l.Log.Info().Msg("selected command - 'help'")
|
||||
if err := command.Scripts["help"].Exec(); err != nil {
|
||||
l.Log.Error().Err(err).Str("command", commandName).Msg("failed to use help command")
|
||||
return
|
||||
l.Log.Fatal().Err(err).Str("command", commandName).Msg("failed to use help command")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
l.Log.Info().Str("selected command", commandName).Send()
|
||||
l.Log.Info().Msgf("selected command - %s", commandName)
|
||||
if err := cmd.Exec(); err != nil {
|
||||
l.Log.Error().Err(err).Str("command", commandName).Msg("failed to execude command")
|
||||
return
|
||||
|
||||
@ -18,15 +18,15 @@ type KeycloakTokenResponse struct {
|
||||
}
|
||||
|
||||
type LoopUser struct {
|
||||
Id string `json:"id" db:"id"`
|
||||
Username string `json:"username" db:"username"`
|
||||
Password string `json:"password,omitempty" db:"password"`
|
||||
AuthData *string `json:"auth_data,omitempty" db:"authdata"`
|
||||
AuthService *string `json:"auth_service" db:"authservice"`
|
||||
Email string `json:"email" db:"email"`
|
||||
EmailVerified bool `json:"email_verified,omitempty" db:"emailverified"`
|
||||
Nickname string `json:"nickname" db:"nickname"`
|
||||
FirstName string `json:"first_name" db:"firstname"`
|
||||
LastName string `json:"last_name" db:"lastname"`
|
||||
Roles string `json:"roles" db:"roles"`
|
||||
Id string `json:"id" db:"id"`
|
||||
Username string `json:"username" db:"username"`
|
||||
Password string `json:"password,omitempty" db:"password"`
|
||||
AuthData *string `json:"auth_data,omitempty" db:"authdata"`
|
||||
AuthService *string `json:"auth_service" db:"authservice"`
|
||||
Email string `json:"email" db:"email"`
|
||||
EmailVerified bool `json:"email_verified,omitempty" db:"emailverified"`
|
||||
Nickname string `json:"nickname" db:"nickname"`
|
||||
FirstName string `json:"first_name" db:"firstname"`
|
||||
LastName string `json:"last_name" db:"lastname"`
|
||||
Roles string `json:"roles" db:"roles"`
|
||||
}
|
||||
|
||||
@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
c "scripts/internal/config"
|
||||
l "scripts/pkg/logger"
|
||||
"scripts/pkg/postgres"
|
||||
@ -14,10 +13,7 @@ import (
|
||||
const Name = "usersUpdateLoginMethod"
|
||||
|
||||
func UsersUpdateLoginMethod() error {
|
||||
if err := postgres.InitDB(); err != nil {
|
||||
l.Log.Error().Err(err).Msg("failed to init postgres")
|
||||
return err
|
||||
}
|
||||
postgres.InitDB()
|
||||
defer postgres.DB.Close()
|
||||
|
||||
tokenData, err := keycloakAccessToken()
|
||||
@ -52,19 +48,12 @@ func UsersUpdateLoginMethod() error {
|
||||
}
|
||||
|
||||
func keycloakAccessToken() (*KeycloakTokenResponse, error) {
|
||||
const path = "/realms/master/protocol/openid-connect/token"
|
||||
|
||||
endpoint, err := url.Parse(c.Conf.KeycloakSettings.Address)
|
||||
if err != nil {
|
||||
l.Log.Error().Err(err).Msg("failed to create url")
|
||||
return nil, err
|
||||
}
|
||||
endpoint.Path = path
|
||||
url := fmt.Sprintf("%s/realms/%s/protocol/openid-connect/token", c.Conf.KeycloakSettings.Address, "master")
|
||||
|
||||
var data bytes.Buffer
|
||||
fmt.Fprintf(&data, "grant_type=password&client_id=admin-cli&username=%s&password=%s", c.Conf.KeycloakSettings.AdminName, c.Conf.KeycloakSettings.AdminPass)
|
||||
|
||||
req, err := http.NewRequest("POST", endpoint.String(), &data)
|
||||
req, err := http.NewRequest("POST", url, &data)
|
||||
if err != nil {
|
||||
l.Log.Error().Err(err).Msg("failed to create http request")
|
||||
return nil, err
|
||||
@ -111,16 +100,9 @@ func allLoopUsers() (map[string]LoopUser, error) {
|
||||
}
|
||||
|
||||
func allKeycloakUsers(accessToken string) ([]KeycloakUser, error) {
|
||||
var path = fmt.Sprintf("/admin/realms/%s/users", c.Conf.KeycloakSettings.RealmName)
|
||||
url := fmt.Sprintf("%s/admin/realms/%s/users", c.Conf.KeycloakSettings.Address, c.Conf.KeycloakSettings.RealmName)
|
||||
|
||||
endpoint, err := url.Parse(c.Conf.KeycloakSettings.Address)
|
||||
if err != nil {
|
||||
l.Log.Error().Err(err).Msg("failed to create url")
|
||||
return nil, err
|
||||
}
|
||||
endpoint.Path = path
|
||||
|
||||
req, err := http.NewRequest("GET", endpoint.String(), nil)
|
||||
req, err := http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
l.Log.Error().Err(err).Msg("failed to create http request")
|
||||
return nil, err
|
||||
|
||||
@ -34,7 +34,7 @@ func MustInit() {
|
||||
if c.Conf.LogSettings.EnableCaller {
|
||||
zCtx = zCtx.Caller()
|
||||
}
|
||||
|
||||
|
||||
Log = zCtx.Logger()
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,6 @@ package postgres
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
c "scripts/internal/config"
|
||||
l "scripts/pkg/logger"
|
||||
"time"
|
||||
@ -34,7 +33,7 @@ func WithContext(ctx context.Context) Option {
|
||||
}
|
||||
}
|
||||
|
||||
func InitDB(opts ...Option) error {
|
||||
func InitDB(opts ...Option) {
|
||||
p := &Postgres{
|
||||
ctx: context.Background(),
|
||||
}
|
||||
@ -45,8 +44,7 @@ func InitDB(opts ...Option) error {
|
||||
|
||||
db, err := sqlx.ConnectContext(p.ctx, c.Conf.SqlSettings.DriverName, c.Conf.SqlSettings.DataSource)
|
||||
if err != nil {
|
||||
l.Log.Error().Err(err).Msg("failed to connect DB")
|
||||
return fmt.Errorf("failed to connect DB: %w", err)
|
||||
l.Log.Fatal().Err(err).Msg("failed to connect DB")
|
||||
}
|
||||
|
||||
db.SetMaxIdleConns(c.Conf.SqlSettings.MaxIdleConns)
|
||||
@ -55,19 +53,16 @@ func InitDB(opts ...Option) error {
|
||||
db.SetConnMaxIdleTime(time.Duration(c.Conf.SqlSettings.ConnMaxIdleTimeMilliseconds) * time.Millisecond)
|
||||
|
||||
if err := db.Ping(); err != nil {
|
||||
l.Log.Error().Err(err).Msg("failed to ping DB")
|
||||
return fmt.Errorf("failed to ping DB: %w", err)
|
||||
l.Log.Fatal().Err(err).Msg("failed to ping DB")
|
||||
}
|
||||
|
||||
p.conn = db
|
||||
DB = p
|
||||
l.Log.Info().Msg("connect to postgres successfully ")
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Postgres) Close() {
|
||||
if err := p.Conn().Close(); err != nil {
|
||||
l.Log.Error().Err(err).Msg("failed to close connect DB")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user