return error channels
This commit is contained in:
parent
12e379ab62
commit
db413ce145
@ -8,15 +8,18 @@ import (
|
|||||||
"git.tordarus.net/tordarus/omada-api/model"
|
"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)
|
out := make(chan *model.Client, 1000)
|
||||||
|
errChan := make(chan error)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
defer close(out)
|
defer close(out)
|
||||||
|
defer close(errChan)
|
||||||
|
|
||||||
for page := 1; ; page++ {
|
for page := 1; ; page++ {
|
||||||
resp, err := api.getClients(page, siteID)
|
resp, err := api.getClients(page, siteID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
errChan <- err
|
||||||
return
|
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) {
|
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"
|
"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)
|
out := make(chan *model.Device, 1000)
|
||||||
|
errChan := make(chan error)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
defer close(out)
|
defer close(out)
|
||||||
@ -17,6 +18,7 @@ func (api *Api) GetDevices(siteID model.SiteID) <-chan *model.Device {
|
|||||||
for page := 1; ; page++ {
|
for page := 1; ; page++ {
|
||||||
resp, err := api.getDevices(page, siteID)
|
resp, err := api.getDevices(page, siteID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
errChan <- err
|
||||||
return
|
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) {
|
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"
|
"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)
|
out := make(chan *model.Site, 1000)
|
||||||
|
errChan := make(chan error)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
defer close(out)
|
defer close(out)
|
||||||
@ -17,6 +18,7 @@ func (api *Api) GetSites() <-chan *model.Site {
|
|||||||
for page := 1; ; page++ {
|
for page := 1; ; page++ {
|
||||||
resp, err := api.getSites(page)
|
resp, err := api.getSites(page)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
errChan <- err
|
||||||
return
|
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) {
|
func (api *Api) getSites(page int) (*model.PagedResponse[model.Site], error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user