Skip to content

Commit

Permalink
🆕 Add validator
Browse files Browse the repository at this point in the history
  • Loading branch information
tadashi-aikawa committed Oct 10, 2018
1 parent 52354c2 commit e3247a8
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 37 deletions.
28 changes: 28 additions & 0 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Gopkg.toml
Expand Up @@ -17,3 +17,7 @@
[[constraint]]
name = "github.com/mitchellh/go-homedir"
version = "1.0.0"

[[constraint]]
name = "gopkg.in/go-playground/validator.v9"
version = "9.21.0"
35 changes: 8 additions & 27 deletions command.go
Expand Up @@ -8,25 +8,17 @@ import (
)

type ArgsGetSummaries struct {
table string
}

func (r *ArgsGetSummaries) validate() error {
if r.table == "" {
return errors.New("Table is required")
}

return nil
Table string `validate:"required"`
}

// CmdGetSummaries show summaries
func CmdGetSummaries(args ArgsGetSummaries) error {
func CmdGetSummaries(args *ArgsGetSummaries) error {
dao, err := NewAwsDao("ap-northeast-1")
if err != nil {
return errors.Wrap(err, "Fail to create aws client.")
}

summaries, err := dao.FetchSummaries(args.table)
summaries, err := dao.FetchSummaries(args.Table)
if err != nil {
return errors.Wrap(err, "Fail to fetch summaries.")
}
Expand All @@ -43,30 +35,19 @@ func CmdGetSummaries(args ArgsGetSummaries) error {
}

type ArgsGetReport struct {
bucket string
bucketPrefix string
key string
}

func (r *ArgsGetReport) validate() error {
if r.bucket == "" {
return errors.New("Bucket is required")
}
if r.key == "" {
return errors.New("Key is required")
}

return nil
Bucket string `validate:"required"`
BucketPrefix string
Key string `validate:"required"`
}

// CmdGetReport show report
func CmdGetReport(args ArgsGetReport) error {
func CmdGetReport(args *ArgsGetReport) error {
dao, err := NewAwsDao("ap-northeast-1")
if err != nil {
return errors.Wrap(err, "Fail to create aws client.")
}

report, err := dao.FetchReport(args.bucket, args.bucketPrefix, args.key)
report, err := dao.FetchReport(args.Bucket, args.BucketPrefix, args.Key)
if err != nil {
return errors.Wrap(err, "Fail to fetch report.")
}
Expand Down
28 changes: 18 additions & 10 deletions main.go
Expand Up @@ -5,24 +5,29 @@ import (
"os"

"github.com/pkg/errors"
"gopkg.in/go-playground/validator.v9"
)

func createArgsGetSummaries(args Args, config Config) ArgsGetSummaries {
var validate *validator.Validate

func createArgsGetSummaries(args Args, config Config) *ArgsGetSummaries {
table := config.Table
if args.Table != "" {
table = args.Table
}
r := ArgsGetSummaries{
table: table,
r := &ArgsGetSummaries{
Table: table,
}
if err := r.validate(); err != nil {

err := validate.Struct(r)
if err != nil {
log.Fatal(err)
}

return r
}

func createArgsGetReport(args Args, config Config) ArgsGetReport {
func createArgsGetReport(args Args, config Config) *ArgsGetReport {
bucket := config.Bucket
if args.Bucket != "" {
bucket = args.Bucket
Expand All @@ -31,19 +36,22 @@ func createArgsGetReport(args Args, config Config) ArgsGetReport {
if args.BucketPrefix != "" {
bucketPrefix = args.BucketPrefix
}
r := ArgsGetReport{
bucket: bucket,
bucketPrefix: bucketPrefix,
key: args.Key,
r := &ArgsGetReport{
Bucket: bucket,
BucketPrefix: bucketPrefix,
Key: args.Key,
}
if err := r.validate(); err != nil {

if err := validate.Struct(r); err != nil {
log.Fatal(err)
}

return r
}

func main() {
validate = validator.New()

args, err := CreateArgs(usage, os.Args[1:], version)
if err != nil {
log.Fatal(errors.Wrap(err, "Fail to create arguments."))
Expand Down

0 comments on commit e3247a8

Please sign in to comment.