govote/cmd/vote.go
2024-05-13 00:47:24 +02:00

47 lines
1008 B
Go

package cmd
import (
"code.c-base.org/baccenfutter/govote/store"
"code.c-base.org/baccenfutter/govote/voting/vote"
"github.com/google/uuid"
"github.com/urfave/cli/v2"
)
var voteCmd = &cli.Command{
Name: "vote",
Usage: "📄 Place vote",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "voting-id",
Usage: "Voting ID",
Aliases: []string{"V"},
Required: true,
},
&cli.StringFlag{
Name: "elector",
Usage: "Elector",
Aliases: []string{"E"},
Required: true,
},
&cli.StringFlag{
Name: "choice",
Usage: "Choice",
Aliases: []string{"C"},
Required: true,
},
},
Action: func(ctx *cli.Context) error {
var (
id = uuid.New().String()
votingID = ctx.String("voting-id")
elector = ctx.String("elector")
)
choice, err := vote.ChoiceFromString(ctx.String("choice"))
if err != nil {
return err
}
err = store.PlaceVote(id, votingID, elector, choice)
return err
},
}