mirror of
https://github.com/ditatompel/xmr-remote-nodes.git
synced 2025-01-08 05:52:10 +07:00
Ability to add prober from CLI #2
This commit is contained in:
parent
7b6cfee31d
commit
d2f927e3db
2 changed files with 28 additions and 7 deletions
|
@ -73,8 +73,28 @@ xmr-nodes probers list -s last_submit_ts -d asc sin1`,
|
||||||
var addProbersCmd = &cobra.Command{
|
var addProbersCmd = &cobra.Command{
|
||||||
Use: "add [name]",
|
Use: "add [name]",
|
||||||
Short: "Add new prober",
|
Short: "Add new prober",
|
||||||
Long: `Add new prober machine.`,
|
Long: `Create new prober identified by [name] (if provided) along with an API key.
|
||||||
|
|
||||||
|
This command will display the prober name and API key when successfully executed.`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
fmt.Println("TODO: Add new prober")
|
if err := database.ConnectDB(); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
proberName := ""
|
||||||
|
if len(args) > 0 {
|
||||||
|
proberName = strings.Join(args, " ")
|
||||||
|
} else {
|
||||||
|
proberName = stringPrompt("Prober Name:")
|
||||||
|
}
|
||||||
|
|
||||||
|
proberRepo := repo.NewProberRepo(database.GetDB())
|
||||||
|
prober, err := proberRepo.Add(proberName)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("Name: %s\nAPI Key: %s\n", prober.Name, prober.ApiKey)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type ProberRepository interface {
|
type ProberRepository interface {
|
||||||
AddProber(name string) error
|
Add(name string) (Prober, error)
|
||||||
Update(id int, name string) error
|
Update(id int, name string) error
|
||||||
Probers(q ProbersQueryParams) ([]Prober, error)
|
Probers(q ProbersQueryParams) ([]Prober, error)
|
||||||
CheckApi(key string) (Prober, error)
|
CheckApi(key string) (Prober, error)
|
||||||
|
@ -32,13 +32,14 @@ func NewProberRepo(db *database.DB) ProberRepository {
|
||||||
return &ProberRepo{db}
|
return &ProberRepo{db}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (repo *ProberRepo) AddProber(name string) error {
|
func (repo *ProberRepo) Add(name string) (Prober, error) {
|
||||||
|
apiKey := uuid.New()
|
||||||
query := `INSERT INTO tbl_prober (name, api_key, last_submit_ts) VALUES (?, ?, ?)`
|
query := `INSERT INTO tbl_prober (name, api_key, last_submit_ts) VALUES (?, ?, ?)`
|
||||||
_, err := repo.db.Exec(query, name, uuid.New(), 0)
|
_, err := repo.db.Exec(query, name, apiKey, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return Prober{}, err
|
||||||
}
|
}
|
||||||
return nil
|
return Prober{Name: name, ApiKey: apiKey}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (repo *ProberRepo) Update(id int, name string) error {
|
func (repo *ProberRepo) Update(id int, name string) error {
|
||||||
|
|
Loading…
Reference in a new issue