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  }