return error channels

This commit is contained in:
Tordarus 2025-02-02 22:29:40 +01:00
parent 12e379ab62
commit db413ce145
3 changed files with 13 additions and 6 deletions

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {