more minor fixes.
This commit is contained in:
		
							parent
							
								
									4ef35f25f2
								
							
						
					
					
						commit
						94bc27fd28
					
				| 
						 | 
					@ -28,7 +28,7 @@ func main() {
 | 
				
			||||||
  // Log with log.Printf or make your own interface that accepts (msg, fmt)
 | 
					  // Log with log.Printf or make your own interface that accepts (msg, fmt)
 | 
				
			||||||
  uni.ErrorLog = log.Printf
 | 
					  uni.ErrorLog = log.Printf
 | 
				
			||||||
  uni.DebugLog = log.Printf
 | 
					  uni.DebugLog = log.Printf
 | 
				
			||||||
	clients, err := uni.GetUnifiClients()
 | 
						clients, err := uni.GetClients()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Fatalln("Error:", err)
 | 
							log.Fatalln("Error:", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,7 @@ func main() {
 | 
				
			||||||
	for i, client := range clients {
 | 
						for i, client := range clients {
 | 
				
			||||||
		log.Println(i+1, client.ID, client.Hostname, client.IP, client.Name, client.LastSeen)
 | 
							log.Println(i+1, client.ID, client.Hostname, client.IP, client.Name, client.LastSeen)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	devices, err := uni.GetUnifiDevices()
 | 
						devices, err := uni.GetDevices()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Fatalln("Error:", err)
 | 
							log.Fatalln("Error:", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@ const (
 | 
				
			||||||
	LoginPath = "/api/login"
 | 
						LoginPath = "/api/login"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Logger is a base type to deal with changing log outs.
 | 
					// Logger is a base type to deal with changing log outputs.
 | 
				
			||||||
type Logger func(msg string, fmt ...interface{})
 | 
					type Logger func(msg string, fmt ...interface{})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Devices contains a list of all the unifi devices from a controller.
 | 
					// Devices contains a list of all the unifi devices from a controller.
 | 
				
			||||||
| 
						 | 
					@ -69,9 +69,9 @@ func (f *FlexInt) UnmarshalJSON(b []byte) error {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// AuthController creates a http.Client with authenticated cookies.
 | 
					// GetController creates a http.Client with authenticated cookies.
 | 
				
			||||||
// Used to make additional, authenticated requests to the APIs.
 | 
					// Used to make additional, authenticated requests to the APIs.
 | 
				
			||||||
func AuthController(user, pass, url string, verifySSL bool) (*Unifi, error) {
 | 
					func GetController(user, pass, url string, verifySSL bool) (*Unifi, error) {
 | 
				
			||||||
	json := `{"username": "` + user + `","password": "` + pass + `"}`
 | 
						json := `{"username": "` + user + `","password": "` + pass + `"}`
 | 
				
			||||||
	jar, err := cookiejar.New(nil)
 | 
						jar, err := cookiejar.New(nil)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
| 
						 | 
					@ -103,6 +103,8 @@ func AuthController(user, pass, url string, verifySSL bool) (*Unifi, error) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// UniReq is a small helper function that adds an Accept header.
 | 
					// UniReq is a small helper function that adds an Accept header.
 | 
				
			||||||
 | 
					// Use this if you're unmarshalling Unifi data into custom types.
 | 
				
			||||||
 | 
					// And you're doing that... sumbut a pull request with your new struct. :)
 | 
				
			||||||
func (u *Unifi) UniReq(apiPath string, params string) (req *http.Request, err error) {
 | 
					func (u *Unifi) UniReq(apiPath string, params string) (req *http.Request, err error) {
 | 
				
			||||||
	if params != "" {
 | 
						if params != "" {
 | 
				
			||||||
		req, err = http.NewRequest("POST", u.baseURL+apiPath, bytes.NewBufferString(params))
 | 
							req, err = http.NewRequest("POST", u.baseURL+apiPath, bytes.NewBufferString(params))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,8 +7,8 @@ import (
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
						"github.com/pkg/errors"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetUnifiClients returns a response full of clients' data from the Unifi Controller.
 | 
					// GetClients returns a response full of clients' data from the Unifi Controller.
 | 
				
			||||||
func (u *Unifi) GetUnifiClients() ([]UCL, error) {
 | 
					func (u *Unifi) GetClients() ([]UCL, error) {
 | 
				
			||||||
	var response struct {
 | 
						var response struct {
 | 
				
			||||||
		Clients []UCL `json:"data"`
 | 
							Clients []UCL `json:"data"`
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -31,8 +31,8 @@ func (u *Unifi) GetUnifiClients() ([]UCL, error) {
 | 
				
			||||||
	return response.Clients, nil
 | 
						return response.Clients, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetUnifiDevices returns a response full of devices' data from the Unifi Controller.
 | 
					// GetDevices returns a response full of devices' data from the Unifi Controller.
 | 
				
			||||||
func (u *Unifi) GetUnifiDevices() (*Devices, error) {
 | 
					func (u *Unifi) GetDevices() (*Devices, error) {
 | 
				
			||||||
	var parsed struct {
 | 
						var parsed struct {
 | 
				
			||||||
		Data []json.RawMessage `json:"data"`
 | 
							Data []json.RawMessage `json:"data"`
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -52,11 +52,11 @@ func (u *Unifi) GetUnifiDevices() (*Devices, error) {
 | 
				
			||||||
	} else if err = json.Unmarshal(body, &parsed); err != nil {
 | 
						} else if err = json.Unmarshal(body, &parsed); err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(err, "json.Unmarshal([]json.RawMessage)")
 | 
							return nil, errors.Wrap(err, "json.Unmarshal([]json.RawMessage)")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return u.parseUnifiDevices(parsed.Data), nil
 | 
						return u.parseDevices(parsed.Data), nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// parseUnifiDevices parses the raw JSON from the Unifi Controller into device structures.
 | 
					// parseDevices parses the raw JSON from the Unifi Controller into device structures.
 | 
				
			||||||
func (u *Unifi) parseUnifiDevices(data []json.RawMessage) *Devices {
 | 
					func (u *Unifi) parseDevices(data []json.RawMessage) *Devices {
 | 
				
			||||||
	devices := new(Devices)
 | 
						devices := new(Devices)
 | 
				
			||||||
	// Loop each item in the raw JSON message, detect its type and unmarshal it.
 | 
						// Loop each item in the raw JSON message, detect its type and unmarshal it.
 | 
				
			||||||
	for i, r := range data {
 | 
						for i, r := range data {
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@ func (u *Unifi) parseUnifiDevices(data []json.RawMessage) *Devices {
 | 
				
			||||||
		if t, ok := obj["type"].(string); ok {
 | 
							if t, ok := obj["type"].(string); ok {
 | 
				
			||||||
			assetType = t
 | 
								assetType = t
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		u.dLogf("Unmarshalling Device Type:", assetType)
 | 
							u.dLogf("Unmarshalling Device Type: %v", assetType)
 | 
				
			||||||
		// Unmarshal again into the correct type..
 | 
							// Unmarshal again into the correct type..
 | 
				
			||||||
		switch assetType {
 | 
							switch assetType {
 | 
				
			||||||
		case "uap":
 | 
							case "uap":
 | 
				
			||||||
| 
						 | 
					@ -95,7 +95,7 @@ func (u *Unifi) parseUnifiDevices(data []json.RawMessage) *Devices {
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			devices.USWs = append(devices.USWs, usw)
 | 
								devices.USWs = append(devices.USWs, usw)
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			u.dLogf("unknown asset type -", assetType, "- skipping")
 | 
								u.dLogf("unknown asset type - " + assetType + " - skipping")
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue