Add subcommand to find a user

This commit is contained in:
Andrew-71 2024-10-13 14:49:41 +03:00
parent c22cf9e7c8
commit 452048359a
5 changed files with 47 additions and 7 deletions

29
cmd/find_user/main.go Normal file
View file

@ -0,0 +1,29 @@
package find_user
import (
"fmt"
"git.a71.su/Andrew71/pye/config"
"git.a71.su/Andrew71/pye/storage"
"git.a71.su/Andrew71/pye/storage/sqlite"
)
func FindUser(mode, query string) {
data := sqlite.MustLoadSQLite(config.Cfg.SQLiteFile)
var user storage.User
var ok bool
if mode == "email" {
user, ok = data.ByEmail(query)
} else if mode == "uuid" {
user, ok = data.ById(query)
} else {
fmt.Println("expected email or uuid")
return
}
if !ok {
fmt.Println("User not found")
} else {
fmt.Printf("Information for user:\nuuid\t- %s\nemail\t- %s\nhash\t- %s\n",
user.Uuid, user.Email, user.Hash)
}
}

View file

@ -6,6 +6,7 @@ import (
"log/slog"
"os"
"git.a71.su/Andrew71/pye/cmd/find_user"
"git.a71.su/Andrew71/pye/cmd/serve"
"git.a71.su/Andrew71/pye/cmd/verify"
"git.a71.su/Andrew71/pye/config"
@ -48,12 +49,20 @@ func Run() {
case "verify":
verifyCmd.Parse(os.Args[2:])
logging.LogInit(*verifyDebug)
if len(os.Args) != 4 {
if len(os.Args) < 4 {
fmt.Println("Usage: <jwt> <pem file> [--debug]")
} else {
verify.Verify(os.Args[2], os.Args[3])
}
verify.Verify(os.Args[2], os.Args[3])
case "user":
if len(os.Args) !=4 {
fmt.Println("Usage: <uuid/email> <query>")
} else {
find_user.FindUser(os.Args[2], os.Args[3])
}
default:
fmt.Println("expected 'serve' or 'verify' subcommands")
fmt.Println("expected 'serve'/'verify'/'user' subcommands")
os.Exit(0)
}
}