diff --git a/device.go b/device.go index 856a271..ab0331a 100644 --- a/device.go +++ b/device.go @@ -14,6 +14,7 @@ func (api *Api) GetDevices(siteID model.SiteID) (<-chan *model.Device, <-chan er go func() { defer close(out) + defer close(errChan) for page := 1; ; page++ { resp, err := api.getDevices(page, siteID) diff --git a/site.go b/site.go index 7c55385..6330248 100644 --- a/site.go +++ b/site.go @@ -14,6 +14,7 @@ func (api *Api) GetSites() (<-chan *model.Site, <-chan error) { go func() { defer close(out) + defer close(errChan) for page := 1; ; page++ { resp, err := api.getSites(page) diff --git a/utils.go b/utils.go new file mode 100644 index 0000000..1af61a6 --- /dev/null +++ b/utils.go @@ -0,0 +1,10 @@ +package omadaapi + +func PanicOnError[T any](valueChan <-chan T, errChan <-chan error) <-chan T { + go func() { + for err := range errChan { + panic(err) + } + }() + return valueChan +}