return error channels
This commit is contained in:
parent
12e379ab62
commit
db413ce145
@ -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) {
|
||||
|
@ -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) {
|
||||
|
6
site.go
6
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) {
|
||||
|
Loading…
Reference in New Issue
Block a user