NextZen-UserService/main.go
Tiger Wang (王豫) e2b617e510
(#1)
- refactored User service from IceWhaleTech/CasaOS as first modularized service
2022-08-04 19:14:53 -04:00

87 lines
2.1 KiB
Go

package main
import (
"flag"
"fmt"
"log"
"net"
"net/http"
"github.com/IceWhaleTech/CasaOS-Common/utils/logger"
"github.com/IceWhaleTech/CasaOS-Gateway/common"
"github.com/IceWhaleTech/CasaOS-UserService/pkg/config"
"github.com/IceWhaleTech/CasaOS-UserService/pkg/sqlite"
"github.com/IceWhaleTech/CasaOS-UserService/pkg/utils/encryption"
"github.com/IceWhaleTech/CasaOS-UserService/pkg/utils/random"
"github.com/IceWhaleTech/CasaOS-UserService/route"
"github.com/IceWhaleTech/CasaOS-UserService/service"
"gorm.io/gorm"
)
const localhost = "127.0.0.1"
var (
sqliteDB *gorm.DB
configFlag = flag.String("c", "", "config address")
dbFlag = flag.String("db", "", "db path")
resetUser = flag.Bool("ru", false, "reset user")
user = flag.String("user", "", "user name")
)
func init() {
flag.Parse()
config.InitSetup(*configFlag)
logger.LogInit(config.AppInfo.LogPath, config.AppInfo.LogSaveName, config.AppInfo.LogFileExt)
if len(*dbFlag) == 0 {
*dbFlag = config.AppInfo.DBPath + "/db"
}
sqliteDB = sqlite.GetDb(*dbFlag)
service.MyService = service.NewService(sqliteDB, config.CommonInfo.RuntimePath)
}
func main() {
r := route.InitRouter()
if *resetUser {
if user == nil || len(*user) == 0 {
fmt.Println("user is empty")
return
}
userData := service.MyService.User().GetUserAllInfoByName(*user)
if userData.Id == 0 {
fmt.Println("user not exist")
return
}
password := random.RandomString(6, false)
userData.Password = encryption.GetMD5ByStr(password)
service.MyService.User().UpdateUserPassword(userData)
fmt.Println("User reset successful")
fmt.Println("UserName:" + userData.Username)
fmt.Println("Password:" + password)
return
}
listener, err := net.Listen("tcp", net.JoinHostPort(localhost, "0"))
if err != nil {
panic(err)
}
err = service.MyService.Gateway().CreateRoute(&common.Route{
Path: "/v1/users",
Target: "http://" + listener.Addr().String(),
})
if err != nil {
panic(err)
}
log.Printf("user service listening on %s", listener.Addr().String())
err = http.Serve(listener, r)
if err != nil {
panic(err)
}
}