github.com/dim13/unifi@v0.0.0-20230308161331-9b04946f5e93/cmd/list-vouchers/main.go (about) 1 // Copyright (c) 2014 The unifi Authors. All rights reserved. 2 // Use of this source code is governed by ISC-style license 3 // that can be found in the LICENSE file. 4 5 // Example command list-vouchers 6 // List vouchers of a given site 7 8 package main 9 10 import ( 11 "flag" 12 "fmt" 13 "log" 14 "os" 15 "strconv" 16 "strings" 17 "text/tabwriter" 18 19 "github.com/dim13/unifi" 20 ) 21 22 var ( 23 host = flag.String("host", "unifi", "Controller hostname") 24 user = flag.String("user", "admin", "Controller username") 25 pass = flag.String("pass", "unifi", "Controller password") 26 version = flag.Int("version", 5, "Controller base version") 27 port = flag.String("port", "8443", "Controller port") 28 siteid = flag.String("siteid", "default", "Sitename or description") 29 ) 30 31 func main() { 32 w := new(tabwriter.Writer) 33 w.Init(os.Stdout, 0, 8, 3, ' ', 0) 34 defer w.Flush() 35 36 flag.Parse() 37 38 u, err := unifi.Login(*user, *pass, *host, *port, *siteid, *version) 39 if err != nil { 40 log.Fatal("Login returned error: ", err) 41 } 42 defer u.Logout() 43 44 site, err := u.Site(*siteid) 45 if err != nil { 46 log.Fatal(err) 47 } 48 49 vouchers, err := u.VoucherMap(site) 50 51 if err != nil { 52 log.Fatalln(err) 53 } 54 55 fmt.Fprintln(w, "Code\tCreateTime\tDuration\tNote\tQuota\tUsed") 56 57 for _, v := range vouchers { 58 p := []string{ 59 v.Code, 60 strconv.Itoa(v.CreateTime), 61 strconv.Itoa(v.Duration), 62 v.Note, 63 strconv.Itoa(v.Quota), 64 strconv.Itoa(v.Used), 65 } 66 fmt.Fprintln(w, strings.Join(p, "\t")) 67 } 68 69 }