From db413ce145d89fd56cf4e7d33e05bcae3a5547d6 Mon Sep 17 00:00:00 2001 From: Tordarus Date: Sun, 2 Feb 2025 22:29:40 +0100 Subject: [PATCH] return error channels --- client.go | 7 +++++-- device.go | 6 ++++-- site.go | 6 ++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/client.go b/client.go index b8484fe..5350cdc 100644 --- a/client.go +++ b/client.go @@ -8,15 +8,18 @@ import ( "git.tordarus.net/tordarus/omada-api/model" ) -func (api *Api) GetClients(siteID model.SiteID) <-chan *model.Client { +func (api *Api) GetClients(siteID model.SiteID) (<-chan *model.Client, <-chan error) { out := make(chan *model.Client, 1000) + errChan := make(chan error) go func() { defer close(out) + defer close(errChan) for page := 1; ; page++ { resp, err := api.getClients(page, siteID) if err != nil { + errChan <- err return } @@ -30,7 +33,7 @@ func (api *Api) GetClients(siteID model.SiteID) <-chan *model.Client { } }() - return out + return out, errChan } func (api *Api) getClients(page int, siteID model.SiteID) (*model.PagedResponse[model.Client], error) { diff --git a/device.go b/device.go index 3c73537..856a271 100644 --- a/device.go +++ b/device.go @@ -8,8 +8,9 @@ import ( "git.tordarus.net/tordarus/omada-api/model" ) -func (api *Api) GetDevices(siteID model.SiteID) <-chan *model.Device { +func (api *Api) GetDevices(siteID model.SiteID) (<-chan *model.Device, <-chan error) { out := make(chan *model.Device, 1000) + errChan := make(chan error) go func() { defer close(out) @@ -17,6 +18,7 @@ func (api *Api) GetDevices(siteID model.SiteID) <-chan *model.Device { for page := 1; ; page++ { resp, err := api.getDevices(page, siteID) if err != nil { + errChan <- err return } @@ -30,7 +32,7 @@ func (api *Api) GetDevices(siteID model.SiteID) <-chan *model.Device { } }() - return out + return out, errChan } func (api *Api) getDevices(page int, siteID model.SiteID) (*model.PagedResponse[model.Device], error) { diff --git a/site.go b/site.go index a4f3258..7c55385 100644 --- a/site.go +++ b/site.go @@ -8,8 +8,9 @@ import ( "git.tordarus.net/tordarus/omada-api/model" ) -func (api *Api) GetSites() <-chan *model.Site { +func (api *Api) GetSites() (<-chan *model.Site, <-chan error) { out := make(chan *model.Site, 1000) + errChan := make(chan error) go func() { defer close(out) @@ -17,6 +18,7 @@ func (api *Api) GetSites() <-chan *model.Site { for page := 1; ; page++ { resp, err := api.getSites(page) if err != nil { + errChan <- err return } @@ -30,7 +32,7 @@ func (api *Api) GetSites() <-chan *model.Site { } }() - return out + return out, errChan } func (api *Api) getSites(page int) (*model.PagedResponse[model.Site], error) {