Compare commits

..

No commits in common. "master" and "dev" have entirely different histories.
master ... dev

6 changed files with 24 additions and 51 deletions

View File

@ -1,4 +1,2 @@
run_usersUpdateLoginMethod: run_usersUpdateLoginMethod:
go run cmd/main.go -c usersUpdateLoginMethod go run cmd/main.go -c usersUpdateLoginMethod
help:
go run cmd/main.go -c help

View File

@ -25,8 +25,7 @@ func main() {
config.MustLoad(confPath) config.MustLoad(confPath)
if commandName == "" { if commandName == "" {
l.Log.Error().Msg("flag '-c' required") l.Log.Fatal().Msg("flag '-c' required")
return
} }
logger.MustInit() logger.MustInit()
@ -37,13 +36,12 @@ func main() {
l.Log.Warn().Err(e.ErrCommandNotFound).Str("command", commandName).Send() l.Log.Warn().Err(e.ErrCommandNotFound).Str("command", commandName).Send()
l.Log.Info().Msg("selected command - 'help'") l.Log.Info().Msg("selected command - 'help'")
if err := command.Scripts["help"].Exec(); err != nil { if err := command.Scripts["help"].Exec(); err != nil {
l.Log.Error().Err(err).Str("command", commandName).Msg("failed to use help command") l.Log.Fatal().Err(err).Str("command", commandName).Msg("failed to use help command")
return
} }
return return
} }
l.Log.Info().Str("selected command", commandName).Send() l.Log.Info().Msgf("selected command - %s", commandName)
if err := cmd.Exec(); err != nil { if err := cmd.Exec(); err != nil {
l.Log.Error().Err(err).Str("command", commandName).Msg("failed to execude command") l.Log.Error().Err(err).Str("command", commandName).Msg("failed to execude command")
return return

View File

@ -18,15 +18,15 @@ type KeycloakTokenResponse struct {
} }
type LoopUser struct { type LoopUser struct {
Id string `json:"id" db:"id"` Id string `json:"id" db:"id"`
Username string `json:"username" db:"username"` Username string `json:"username" db:"username"`
Password string `json:"password,omitempty" db:"password"` Password string `json:"password,omitempty" db:"password"`
AuthData *string `json:"auth_data,omitempty" db:"authdata"` AuthData *string `json:"auth_data,omitempty" db:"authdata"`
AuthService *string `json:"auth_service" db:"authservice"` AuthService *string `json:"auth_service" db:"authservice"`
Email string `json:"email" db:"email"` Email string `json:"email" db:"email"`
EmailVerified bool `json:"email_verified,omitempty" db:"emailverified"` EmailVerified bool `json:"email_verified,omitempty" db:"emailverified"`
Nickname string `json:"nickname" db:"nickname"` Nickname string `json:"nickname" db:"nickname"`
FirstName string `json:"first_name" db:"firstname"` FirstName string `json:"first_name" db:"firstname"`
LastName string `json:"last_name" db:"lastname"` LastName string `json:"last_name" db:"lastname"`
Roles string `json:"roles" db:"roles"` Roles string `json:"roles" db:"roles"`
} }

View File

@ -5,7 +5,6 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"net/http" "net/http"
"net/url"
c "scripts/internal/config" c "scripts/internal/config"
l "scripts/pkg/logger" l "scripts/pkg/logger"
"scripts/pkg/postgres" "scripts/pkg/postgres"
@ -14,10 +13,7 @@ import (
const Name = "usersUpdateLoginMethod" const Name = "usersUpdateLoginMethod"
func UsersUpdateLoginMethod() error { func UsersUpdateLoginMethod() error {
if err := postgres.InitDB(); err != nil { postgres.InitDB()
l.Log.Error().Err(err).Msg("failed to init postgres")
return err
}
defer postgres.DB.Close() defer postgres.DB.Close()
tokenData, err := keycloakAccessToken() tokenData, err := keycloakAccessToken()
@ -52,19 +48,12 @@ func UsersUpdateLoginMethod() error {
} }
func keycloakAccessToken() (*KeycloakTokenResponse, error) { func keycloakAccessToken() (*KeycloakTokenResponse, error) {
const path = "/realms/master/protocol/openid-connect/token" url := fmt.Sprintf("%s/realms/%s/protocol/openid-connect/token", c.Conf.KeycloakSettings.Address, "master")
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
var data bytes.Buffer 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) 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 { if err != nil {
l.Log.Error().Err(err).Msg("failed to create http request") l.Log.Error().Err(err).Msg("failed to create http request")
return nil, err return nil, err
@ -111,16 +100,9 @@ func allLoopUsers() (map[string]LoopUser, error) {
} }
func allKeycloakUsers(accessToken string) ([]KeycloakUser, 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) req, err := http.NewRequest("GET", url, nil)
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)
if err != nil { if err != nil {
l.Log.Error().Err(err).Msg("failed to create http request") l.Log.Error().Err(err).Msg("failed to create http request")
return nil, err return nil, err

View File

@ -2,7 +2,6 @@ package postgres
import ( import (
"context" "context"
"fmt"
c "scripts/internal/config" c "scripts/internal/config"
l "scripts/pkg/logger" l "scripts/pkg/logger"
"time" "time"
@ -34,7 +33,7 @@ func WithContext(ctx context.Context) Option {
} }
} }
func InitDB(opts ...Option) error { func InitDB(opts ...Option) {
p := &Postgres{ p := &Postgres{
ctx: context.Background(), 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) db, err := sqlx.ConnectContext(p.ctx, c.Conf.SqlSettings.DriverName, c.Conf.SqlSettings.DataSource)
if err != nil { if err != nil {
l.Log.Error().Err(err).Msg("failed to connect DB") l.Log.Fatal().Err(err).Msg("failed to connect DB")
return fmt.Errorf("failed to connect DB: %w", err)
} }
db.SetMaxIdleConns(c.Conf.SqlSettings.MaxIdleConns) 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) db.SetConnMaxIdleTime(time.Duration(c.Conf.SqlSettings.ConnMaxIdleTimeMilliseconds) * time.Millisecond)
if err := db.Ping(); err != nil { if err := db.Ping(); err != nil {
l.Log.Error().Err(err).Msg("failed to ping DB") l.Log.Fatal().Err(err).Msg("failed to ping DB")
return fmt.Errorf("failed to ping DB: %w", err)
} }
p.conn = db p.conn = db
DB = p DB = p
l.Log.Info().Msg("connect to postgres successfully ") l.Log.Info().Msg("connect to postgres successfully ")
return nil
} }
func (p *Postgres) Close() { func (p *Postgres) Close() {
if err := p.Conn().Close(); err != nil { if err := p.Conn().Close(); err != nil {
l.Log.Error().Err(err).Msg("failed to close connect DB") l.Log.Error().Err(err).Msg("failed to close connect DB")
return
} }
} }