Skip to content

Commit

Permalink
style: clean duplicated login implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
unbyte committed Mar 29, 2021
1 parent ddc66a1 commit 8c2a272
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 58 deletions.
10 changes: 5 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ go 1.16

require (
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
github.com/forgoer/openssl v0.0.0-20201023062029-c3112b0c8700 // indirect
github.com/neucn/neugo v0.3.1 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/forgoer/openssl v0.0.0-20201023062029-c3112b0c8700
github.com/neucn/neugo v0.3.1
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/stretchr/objx v0.3.0 // indirect
github.com/stretchr/testify v1.7.0 // indirect
github.com/urfave/cli/v2 v2.3.0 // indirect
github.com/stretchr/testify v1.7.0
github.com/urfave/cli/v2 v2.3.0
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
)
13 changes: 1 addition & 12 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,30 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/forgoer/openssl v0.0.0-20201023062029-c3112b0c8700 h1:Owfo75EDatkNLuC1TE7UK2PUB4QUC9e6xIYu0afa8wQ=
github.com/forgoer/openssl v0.0.0-20201023062029-c3112b0c8700/go.mod h1:NMVFOzYeLVR7UiGTxsa+A21nrERTZ3Rv2JHDPcJpDyI=
github.com/neucn/neugo v0.2.0 h1:aOzLQWJ9FZmTpciKedaHIuA3w05IjJ3yPpemWTFKYCM=
github.com/neucn/neugo v0.2.0/go.mod h1:sKga4X9FF5N5ApwXxv+7RyqXZPDiBztj27PJX5r4wa8=
github.com/neucn/neugo v0.3.0 h1:JwNAYgXA3GxJ01iGggps+yqJPqyAOp91PjnO/fQLRMg=
github.com/neucn/neugo v0.3.0/go.mod h1:sKga4X9FF5N5ApwXxv+7RyqXZPDiBztj27PJX5r4wa8=
github.com/neucn/neugo v0.3.1 h1:HhaHoLkGghZd+uaYexBnFZOXYEaFpZzKqw8RwUklioE=
github.com/neucn/neugo v0.3.1/go.mod h1:58gIwIAZVecSpRPcDgEsMR3uwu77V7ryywDnv/OgYDI=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.3.0 h1:NGXK3lHquSN08v5vWalVI/L8XU9hdzE/G6xsrze47As=
github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M=
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
24 changes: 3 additions & 21 deletions pkg/cmd/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,6 @@ var (
)

func loginUseDefaultAccount(ctx *cli.Context) error {
h := handler.NewIpgwHandler()
// check logged
connected, loggedIn := h.IsConnectedAndLoggedIn()
if !connected {
return errors.New("not in campus network")
}
if loggedIn {
return fmt.Errorf("already logged in as '%s'", h.GetInfo().Username)
}

// login use default account
store, err := getStoreHandler(ctx)
if err != nil {
Expand All @@ -69,19 +59,11 @@ func loginUseDefaultAccount(ctx *cli.Context) error {
return errors.New("no account stored")
}
console.InfoF("using account '%s'\n", account.Username)

account.Secret = ctx.String("secret")
if err = h.Login(account); err != nil {
return fmt.Errorf("fail to login:\n\t%v", err)
}
info := h.GetInfo()
if info.Overdue {
return fmt.Errorf("overdue")
}
if info.Username == "" {
return fmt.Errorf("fail to login")

if err = login(handler.NewIpgwHandler(), account); err != nil {
return fmt.Errorf("login failed: \n\t%v", err)
}
console.InfoL("login successfully")
return nil
}

Expand Down
47 changes: 27 additions & 20 deletions pkg/cmd/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,6 @@ var (
},
},
Action: func(ctx *cli.Context) error {
h := handler.NewIpgwHandler()
// check logged
connected, loggedIn := h.IsConnectedAndLoggedIn()
if !connected {
return errors.New("not in campus network")
}
if loggedIn {
return fmt.Errorf("already logged in as '%s'", h.GetInfo().Username)
}

store, err := getStoreHandler(ctx)
if err != nil {
return err
Expand Down Expand Up @@ -82,18 +72,12 @@ var (
}
account.Secret = ctx.String("secret")

if err = h.Login(account); err != nil {
return fmt.Errorf("fail to login:\n\t%v", err)
}
info := h.GetInfo()
if info.Overdue {
return fmt.Errorf("overdue")
}
if info.Username == "" {
return fmt.Errorf("fail to login")
h := handler.NewIpgwHandler()
if err = login(h, account); err != nil {
return fmt.Errorf("login failed: \n\t%v", err)
}
console.InfoL("login successfully")
if ctx.Bool("info") {
info := h.GetInfo()
console.InfoF("\tIP\t%16s\n\t余额\t%16s\n\t流量\t%16s\n\t时长\t%16s\n",
info.IP,
info.FormattedBalance(),
Expand All @@ -108,3 +92,26 @@ var (
OnUsageError: onUsageError,
}
)

func login(h *handler.IpgwHandler, account *model.Account) error {
// check logged
connected, loggedIn := h.IsConnectedAndLoggedIn()
if !connected {
return errors.New("not in campus network")
}
if loggedIn {
return fmt.Errorf("already logged in as '%s'", h.GetInfo().Username)
}
if err := h.Login(account); err != nil {
return err
}
info := h.GetInfo()
if info.Overdue {
return fmt.Errorf("overdue")
}
if info.Username == "" {
return fmt.Errorf("unknown reason")
}
console.InfoL("login successfully")
return nil
}

0 comments on commit 8c2a272

Please sign in to comment.