return error channels
This commit is contained in:
		| @ -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) { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user