Skip to content

Commit fadbad7

Browse files
committed
Simplify pagination sample code on the README.mustache template
1 parent a0145f4 commit fadbad7

1 file changed

Lines changed: 129 additions & 26 deletions

File tree

‎codegen/templates/README.mustache‎

Lines changed: 129 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -393,22 +393,25 @@ EX: Pagination gather all resources
393393

394394
let tasksApiInstance = new {{{moduleName}}}.TasksApi();
395395
let opts = {
396-
"project": "<YOUR_PROJECT_GID>"
397-
"limit": 100
396+
"project": "<YOUR_PROJECT_GID>",
397+
"limit": 100,
398398
};
399399

400400
async function getAllTasks(opts) {
401-
let tasks = await tasksApiInstance.getTasks(opts).then(async (firstPage) => {
402-
let res = []
403-
res = res.concat(firstPage.data);
404-
// Get the next page
405-
let nextPage = await firstPage.nextPage();
406-
// Keep fetching for the next page until there are no more results
407-
while(nextPage.data) {
408-
res = res.concat(nextPage.data);
409-
nextPage = await nextPage.nextPage();
401+
let tasks = await tasksApiInstance.getTasks(opts).then(async (response) => {
402+
let result = [];
403+
let page = response;
404+
while(true) {
405+
// Add items on page to list of results
406+
result = result.concat(page.data);
407+
// Fetch the next page
408+
page = await page.nextPage();
409+
// If the there is no data in the next page break from the loop
410+
if (!page.data) {
411+
break;
412+
}
410413
}
411-
return res;
414+
return result;
412415
}, (error) => {
413416
console.error(error.response.body);
414417
});
@@ -417,6 +420,79 @@ async function getAllTasks(opts) {
417420
}
418421

419422
getAllTasks(opts);
423+
424+
```
425+
426+
Sample output:
427+
```bash
428+
Tasks: [
429+
{
430+
"gid": "123",
431+
"name": "task 1",
432+
"resource_type": "task",
433+
"resource_subtype": "default_task"
434+
},
435+
{
436+
"gid": "456",
437+
"name": "task 2",
438+
"resource_type": "task",
439+
"resource_subtype": "default_task"
440+
},
441+
{
442+
"gid": "789",
443+
"name": "task 3",
444+
"resource_type": "task",
445+
"resource_subtype": "default_task"
446+
},
447+
{
448+
"gid": "101112",
449+
"name": "task 4",
450+
"resource_type": "task",
451+
"resource_subtype": "default_task"
452+
},
453+
{
454+
"gid": "131415",
455+
"name": "task 5",
456+
"resource_type": "task",
457+
"resource_subtype": "default_task"
458+
},
459+
{
460+
"gid": "161718",
461+
"name": "task 6",
462+
"resource_type": "task",
463+
"resource_subtype": "default_task"
464+
},
465+
{
466+
"gid": "192021",
467+
"name": "task 7",
468+
"resource_type": "task",
469+
"resource_subtype": "default_task"
470+
},
471+
{
472+
"gid": "222324",
473+
"name": "task 8",
474+
"resource_type": "task",
475+
"resource_subtype": "default_task"
476+
},
477+
{
478+
"gid": "252627",
479+
"name": "task 9",
480+
"resource_type": "task",
481+
"resource_subtype": "default_task"
482+
},
483+
{
484+
"gid": "282930",
485+
"name": "task 10",
486+
"resource_type": "task",
487+
"resource_subtype": "default_task"
488+
},
489+
{
490+
"gid": "313233",
491+
"name": "task 11",
492+
"resource_type": "task",
493+
"resource_subtype": "default_task"
494+
},
495+
]
420496
```
421497

422498
EX: Pagination do something per page
@@ -426,28 +502,55 @@ EX: Pagination do something per page
426502
let tasksApiInstance = new {{{moduleName}}}.TasksApi();
427503
let opts = {
428504
'project': "<YOUR_PROJECT_GID>",
429-
'limit': 10
505+
"limit": 5,
430506
};
431507

432-
pageIndex = 1;
433-
434-
tasksApiInstance.getTasks(opts).then(async (firstPage) => {
435-
// Do something with the first <LIMIT> results. EX: print out results
436-
console.log(`Page ${pageIndex}: ` + JSON.stringify(firstPage.data, null, 2));
508+
let pageIndex = 1;
437509

438-
// Get the next page
439-
let nextPage = await firstPage.nextPage();
440-
// Keep fetching for the next page until there are no more results
441-
while(nextPage.data) {
442-
// Do something with the next <LIMIT> results. EX: print out results
510+
tasksApiInstance.getTasks(opts).then(async (response) => {
511+
let page = response;
512+
while(true) {
513+
// Do something with the page results
514+
// EX: print the name of the tasks on that page
515+
console.log(`Page ${pageIndex}: `);
516+
page.data.forEach(task => {
517+
console.log(` ${task.name}`);
518+
});
443519
pageIndex += 1;
444-
console.log(`Page ${pageIndex}: ` + JSON.stringify(nextPage.data, null, 2));
445-
// Get the next page
446-
nextPage = await nextPage.nextPage();
520+
521+
page = await page.nextPage();
522+
// If the there is no data in the next page break from the loop
523+
if (!page.data) {
524+
break;
525+
}
447526
}
448527
}, (error) => {
449528
console.error(error.response.body);
450529
});
530+
531+
```
532+
533+
Sample output:
534+
535+
```bash
536+
Page 1:
537+
task 1
538+
task 2
539+
task 3
540+
task 4
541+
task 5
542+
Page 2:
543+
task 6
544+
task 7
545+
task 8
546+
task 9
547+
task 10
548+
Page 3:
549+
task 11
550+
task 12
551+
task 13
552+
task 14
553+
task 15
451554
```
452555

453556
### Turning off Pagination

0 commit comments

Comments
 (0)