Skip to content

Commit a263217

Browse files
authored
Merge pull request #76 from microsoftgraph/page-iterator
Add PageIterator to README
2 parents 3569df8 + 18d52fb commit a263217

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

README.md

+18-11
Original file line numberDiff line numberDiff line change
@@ -97,23 +97,30 @@ Items in a collection response can span across multiple pages. To get the comple
9797
To retrieve the users:
9898

9999
```Golang
100+
import (
101+
msgraphcore "github.com/microsoftgraph/msgraph-sdk-go-core"
102+
"github.com/microsoftgraph/msgraph-sdk-go/users"
103+
"github.com/microsoftgraph/msgraph-sdk-go/models/microsoft/graph"
104+
)
105+
100106
result, err := client.Users().Get(nil)
101107
if err != nil {
102108
fmt.Printf("Error getting users: %v\n", err)
103109
return err
104110
}
105111

106-
for {
107-
if result.GetNextLink() == nil {
108-
break
109-
}
110-
111-
result, err = users.NewUsersRequestBuilder(*result.GetNextLink(), adapter).Get(nil)
112-
if err != nil {
113-
fmt.Printf("Error getting users: %v\n", err)
114-
break
115-
}
116-
}
112+
// Use PageIterator to iterate through all users
113+
pageIterator, err := msgraphcore.NewPageIterator(result, adapter.GraphRequestAdapterBase,
114+
func() serialization.Parsable {
115+
return users.NewUsersResponse()
116+
})
117+
118+
err = pageIterator.Iterate(func(pageItem interface{}) bool {
119+
user := pageItem.(graph.User)
120+
fmt.Printf("%s\n", *user.GetDisplayName())
121+
// Return true to continue the iteration
122+
return true
123+
})
117124
```
118125

119126
## 5. Documentation

0 commit comments

Comments
 (0)