asana 3.0.2 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yaml +78 -38
- package/.swagger-codegen/VERSION +1 -1
- package/README.md +135 -29
- package/codegen/templates/README.mustache +129 -26
- package/codegen/templates/api.mustache +17 -15
- package/dist/ApiClient.js +6 -7
- package/dist/api/AttachmentsApi.js +22 -95
- package/dist/api/AuditLogAPIApi.js +10 -14
- package/dist/api/BatchAPIApi.js +10 -14
- package/dist/api/CustomFieldSettingsApi.js +16 -23
- package/dist/api/CustomFieldsApi.js +38 -203
- package/dist/api/EventsApi.js +12 -16
- package/dist/api/GoalRelationshipsApi.js +26 -122
- package/dist/api/GoalsApi.js +48 -239
- package/dist/api/JobsApi.js +8 -32
- package/dist/api/MembershipsApi.js +73 -99
- package/dist/api/OrganizationExportsApi.js +12 -59
- package/dist/api/PortfolioMembershipsApi.js +20 -50
- package/dist/api/PortfoliosApi.js +56 -293
- package/dist/api/ProjectBriefsApi.js +20 -113
- package/dist/api/ProjectMembershipsApi.js +14 -41
- package/dist/api/ProjectStatusesApi.js +22 -95
- package/dist/api/ProjectTemplatesApi.js +28 -104
- package/dist/api/ProjectsApi.js +88 -446
- package/dist/api/RulesApi.js +8 -32
- package/dist/api/SectionsApi.js +34 -176
- package/dist/api/StatusUpdatesApi.js +22 -95
- package/dist/api/StoriesApi.js +26 -122
- package/dist/api/TagsApi.js +42 -167
- package/dist/api/TaskTemplatesApi.js +63 -72
- package/dist/api/TasksApi.js +173 -544
- package/dist/api/TeamMembershipsApi.js +26 -59
- package/dist/api/TeamsApi.js +36 -158
- package/dist/api/TimePeriodsApi.js +14 -41
- package/dist/api/TimeTrackingEntriesApi.js +26 -122
- package/dist/api/TypeaheadApi.js +12 -16
- package/dist/api/UserTaskListsApi.js +12 -59
- package/dist/api/UsersApi.js +32 -68
- package/dist/api/WebhooksApi.js +26 -122
- package/dist/api/WorkspaceMembershipsApi.js +20 -50
- package/dist/api/WorkspacesApi.js +26 -122
- package/package.json +1 -1
- package/src/ApiClient.js +4 -4
- package/src/api/AttachmentsApi.js +42 -134
- package/src/api/AuditLogAPIApi.js +15 -17
- package/src/api/BatchAPIApi.js +15 -17
- package/src/api/CustomFieldSettingsApi.js +28 -32
- package/src/api/CustomFieldsApi.js +78 -290
- package/src/api/EventsApi.js +17 -19
- package/src/api/GoalRelationshipsApi.js +51 -173
- package/src/api/GoalsApi.js +100 -344
- package/src/api/JobsApi.js +11 -41
- package/src/api/MembershipsApi.js +105 -138
- package/src/api/OrganizationExportsApi.js +20 -80
- package/src/api/PortfolioMembershipsApi.js +37 -71
- package/src/api/PortfoliosApi.js +118 -422
- package/src/api/ProjectBriefsApi.js +38 -158
- package/src/api/ProjectMembershipsApi.js +24 -56
- package/src/api/ProjectStatusesApi.js +42 -134
- package/src/api/ProjectTemplatesApi.js +55 -149
- package/src/api/ProjectsApi.js +189 -647
- package/src/api/RulesApi.js +11 -41
- package/src/api/SectionsApi.js +69 -251
- package/src/api/StatusUpdatesApi.js +42 -134
- package/src/api/StoriesApi.js +51 -173
- package/src/api/TagsApi.js +86 -242
- package/src/api/TaskTemplatesApi.js +86 -95
- package/src/api/TasksApi.js +330 -799
- package/src/api/TeamMembershipsApi.js +50 -86
- package/src/api/TeamsApi.js +73 -227
- package/src/api/TimePeriodsApi.js +24 -56
- package/src/api/TimeTrackingEntriesApi.js +51 -173
- package/src/api/TypeaheadApi.js +17 -19
- package/src/api/UserTaskListsApi.js +20 -80
- package/src/api/UsersApi.js +63 -101
- package/src/api/WebhooksApi.js +51 -173
- package/src/api/WorkspaceMembershipsApi.js +37 -71
- package/src/api/WorkspacesApi.js +51 -173
- package/src/index.js +2 -2
|
@@ -6,26 +6,47 @@ on:
|
|
|
6
6
|
version:
|
|
7
7
|
required: true
|
|
8
8
|
|
|
9
|
+
defaults:
|
|
10
|
+
run:
|
|
11
|
+
shell: bash
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
id-token: write
|
|
16
|
+
|
|
17
|
+
env:
|
|
18
|
+
GENERATOR_VERSION: 3.0.54
|
|
19
|
+
GENERATOR_NAME: swagger-codegen-cli.jar
|
|
20
|
+
JAR_ASANA: codegen/swagger/target/AsanaClientCodegen-swagger-codegen-1.0.0.jar
|
|
21
|
+
ACTUAL_LANG: com.asana.codegen.JavascriptClientCodegenGenerator
|
|
22
|
+
NAME: asana
|
|
23
|
+
|
|
9
24
|
jobs:
|
|
10
25
|
generate-javascript-library:
|
|
11
26
|
name: Generate JavaScript client library
|
|
12
27
|
runs-on: ubuntu-latest
|
|
13
28
|
steps:
|
|
14
|
-
-
|
|
15
|
-
|
|
29
|
+
- name: Authenticate to AWS
|
|
30
|
+
uses: aws-actions/configure-aws-credentials@v4
|
|
31
|
+
with:
|
|
32
|
+
aws-region: us-east-1
|
|
33
|
+
role-to-assume: arn:aws:iam::403483446840:role/autogen_role_beta_github_actions_release_asana_client_libraries
|
|
34
|
+
- name: Get GitHub app token
|
|
35
|
+
uses: asana/get-github-app-token@v1
|
|
36
|
+
id: get-token
|
|
37
|
+
with:
|
|
38
|
+
github-app-name: asana-publish-client-libraries
|
|
39
|
+
- name: Checkout repo files and set the git token
|
|
40
|
+
uses: actions/checkout@v4
|
|
41
|
+
with:
|
|
42
|
+
token: ${{ steps.get-token.outputs.app-token }}
|
|
43
|
+
- uses: actions/setup-java@v4
|
|
16
44
|
with:
|
|
17
45
|
distribution: "temurin"
|
|
18
46
|
java-version: "17"
|
|
19
|
-
- name: Setup environment variables
|
|
20
|
-
run: |
|
|
21
|
-
echo "generator_version=3.0.52" >> "$GITHUB_ENV"
|
|
22
|
-
echo "generator_name=swagger-codegen-cli.jar" >> "$GITHUB_ENV"
|
|
23
|
-
echo "jar_asana=codegen/swagger/target/AsanaClientCodegen-swagger-codegen-1.0.0.jar" >> "$GITHUB_ENV"
|
|
24
|
-
echo "actual_lang=com.asana.codegen.JavascriptClientCodegenGenerator" >> "$GITHUB_ENV"
|
|
25
|
-
echo "name=asana" >> "$GITHUB_ENV"
|
|
26
47
|
- name: Download generator
|
|
27
48
|
run: |
|
|
28
|
-
wget -q -O $
|
|
49
|
+
wget -q -O $GENERATOR_NAME https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/${{ env.GENERATOR_VERSION }}/swagger-codegen-cli-${{ env.GENERATOR_VERSION }}.jar
|
|
29
50
|
- name: Build custom code
|
|
30
51
|
run: |
|
|
31
52
|
pushd codegen/swagger >/dev/null
|
|
@@ -33,34 +54,48 @@ jobs:
|
|
|
33
54
|
popd >/dev/null
|
|
34
55
|
- name: Generate library
|
|
35
56
|
run: >-
|
|
36
|
-
java -cp "${{ env.
|
|
57
|
+
java -cp "${{ env.JAR_ASANA }}:${{ env.GENERATOR_NAME }}"
|
|
37
58
|
io.swagger.codegen.v3.cli.SwaggerCodegen
|
|
38
59
|
generate
|
|
39
60
|
--input-spec https://raw.githubusercontent.com/Asana/openapi/master/defs/asana_sdk_oas.yaml
|
|
40
61
|
--template-dir "codegen/templates"
|
|
41
|
-
--lang "${{ env.
|
|
42
|
-
-DpackageName=${{ env.
|
|
43
|
-
--additional-properties "projectVersion=${{ inputs.version }},projectName=${{ env.
|
|
62
|
+
--lang "${{ env.ACTUAL_LANG }}"
|
|
63
|
+
-DpackageName=${{ env.NAME }}
|
|
64
|
+
--additional-properties "projectVersion=${{ inputs.version }},projectName=${{ env.NAME }},packageName=${{ env.NAME }},usePromises=true,useES6=true"
|
|
44
65
|
- name: Clean up generator
|
|
45
|
-
run: rm -rf codegen/swagger/target ${{ env.
|
|
66
|
+
run: rm -rf codegen/swagger/target ${{ env.GENERATOR_NAME }}
|
|
46
67
|
- name: Push changes to master branch
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
68
|
+
run: |
|
|
69
|
+
git config user.name asana-publish-client-libraries[bot]
|
|
70
|
+
git config user.email 159857493+asana-publish-client-libraries[bot]@users.noreply.github.com
|
|
71
|
+
git add .
|
|
72
|
+
git commit -m 'Updated JavaScript SDK: v${{ inputs.version }}'
|
|
73
|
+
git push origin master
|
|
74
|
+
git pull
|
|
75
|
+
git tag 'v${{ inputs.version }}' --force
|
|
76
|
+
git push origin --tags --force
|
|
77
|
+
publish-to-npmjs:
|
|
55
78
|
needs: generate-javascript-library
|
|
56
79
|
name: Build and publish 📦 to npmjs
|
|
57
80
|
runs-on: ubuntu-latest
|
|
58
81
|
steps:
|
|
59
|
-
-
|
|
82
|
+
- name: Authenticate to AWS
|
|
83
|
+
uses: aws-actions/configure-aws-credentials@v4
|
|
84
|
+
with:
|
|
85
|
+
aws-region: us-east-1
|
|
86
|
+
role-to-assume: arn:aws:iam::403483446840:role/autogen_role_beta_github_actions_release_asana_client_libraries
|
|
87
|
+
- name: Load secrets
|
|
88
|
+
uses: aws-actions/aws-secretsmanager-get-secrets@v1
|
|
89
|
+
with:
|
|
90
|
+
secret-ids: NPM_API,prod/github_actions_release_asana_client_libraries/npm_api_key
|
|
91
|
+
# npm_api_key secret is stored as {key:"***..."}.
|
|
92
|
+
# GitHub Actions environment variable name is NPM_API so to access "key" from the json we can use NPM_API_KEY
|
|
93
|
+
parse-json-secrets: true
|
|
94
|
+
- uses: actions/checkout@v4
|
|
60
95
|
with:
|
|
61
96
|
fetch-depth: 0
|
|
62
97
|
ref: master
|
|
63
|
-
- uses: actions/setup-node@
|
|
98
|
+
- uses: actions/setup-node@v4
|
|
64
99
|
with:
|
|
65
100
|
node-version: "18.x"
|
|
66
101
|
registry-url: "https://registry.npmjs.com"
|
|
@@ -72,17 +107,27 @@ jobs:
|
|
|
72
107
|
npm install
|
|
73
108
|
npm publish
|
|
74
109
|
env:
|
|
75
|
-
NODE_AUTH_TOKEN: ${{
|
|
76
|
-
publish-to-github:
|
|
77
|
-
needs:
|
|
78
|
-
name:
|
|
110
|
+
NODE_AUTH_TOKEN: ${{ env.NPM_API_KEY }}
|
|
111
|
+
publish-to-github-releases:
|
|
112
|
+
needs: publish-to-npmjs
|
|
113
|
+
name: Build and publish to GitHub Releases
|
|
79
114
|
runs-on: ubuntu-latest
|
|
80
115
|
steps:
|
|
81
|
-
-
|
|
116
|
+
- name: Authenticate to AWS
|
|
117
|
+
uses: aws-actions/configure-aws-credentials@v4
|
|
118
|
+
with:
|
|
119
|
+
aws-region: us-east-1
|
|
120
|
+
role-to-assume: arn:aws:iam::403483446840:role/autogen_role_beta_github_actions_release_asana_client_libraries
|
|
121
|
+
- name: Get GitHub app token
|
|
122
|
+
uses: asana/get-github-app-token@v1
|
|
123
|
+
id: get-token
|
|
124
|
+
with:
|
|
125
|
+
github-app-name: asana-publish-client-libraries
|
|
126
|
+
- uses: actions/checkout@v4
|
|
82
127
|
with:
|
|
83
128
|
fetch-depth: 0
|
|
84
129
|
ref: master
|
|
85
|
-
- uses: actions/setup-node@
|
|
130
|
+
- uses: actions/setup-node@v4
|
|
86
131
|
with:
|
|
87
132
|
node-version: "18.x"
|
|
88
133
|
registry-url: "https://registry.npmjs.com"
|
|
@@ -99,11 +144,6 @@ jobs:
|
|
|
99
144
|
browserify dist/index.js -s Asana | uglifyjs > dist/asana-min.js
|
|
100
145
|
browserify dist/index.js -s Asana > dist/asana.js
|
|
101
146
|
- name: Publish to GitHub Releases
|
|
102
|
-
|
|
147
|
+
run: gh release create v${{ inputs.version }} dist/asana.js dist/asana-min.js
|
|
103
148
|
env:
|
|
104
|
-
|
|
105
|
-
with:
|
|
106
|
-
tag_name: v${{ inputs.version }}
|
|
107
|
-
files: |
|
|
108
|
-
dist/asana.js
|
|
109
|
-
dist/asana-min.js
|
|
149
|
+
GH_TOKEN: ${{ steps.get-token.outputs.app-token }}
|
package/.swagger-codegen/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.0.
|
|
1
|
+
3.0.54
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# asana [![GitHub release][release-image]][release-url] [![NPM Version][npm-image]][npm-url]
|
|
2
2
|
|
|
3
3
|
- API version: 1.0
|
|
4
|
-
- Package version: 3.0.
|
|
4
|
+
- Package version: 3.0.3
|
|
5
5
|
|
|
6
6
|
## Installation
|
|
7
7
|
|
|
@@ -18,7 +18,7 @@ npm install asana --save
|
|
|
18
18
|
Include the latest release directly from GitHub:
|
|
19
19
|
|
|
20
20
|
```html
|
|
21
|
-
<script src="https://github.com/Asana/node-asana/releases/download/v3.0.
|
|
21
|
+
<script src="https://github.com/Asana/node-asana/releases/download/v3.0.3/asana-min.js"></script>
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
Example usage (**NOTE**: be careful not to expose your access token):
|
|
@@ -232,6 +232,7 @@ Class | Method | HTTP request | Description
|
|
|
232
232
|
*Asana.MembershipsApi* | [**deleteMembership**](docs/MembershipsApi.md#deleteMembership) | **DELETE** /memberships/{membership_gid} | Delete a membership
|
|
233
233
|
*Asana.MembershipsApi* | [**getMembership**](docs/MembershipsApi.md#getMembership) | **GET** /memberships/{membership_gid} | Get a membership
|
|
234
234
|
*Asana.MembershipsApi* | [**getMemberships**](docs/MembershipsApi.md#getMemberships) | **GET** /memberships | Get multiple memberships
|
|
235
|
+
*Asana.MembershipsApi* | [**updateMembership**](docs/MembershipsApi.md#updateMembership) | **PUT** /memberships/{membership_gid} | Update a membership
|
|
235
236
|
*Asana.OrganizationExportsApi* | [**createOrganizationExport**](docs/OrganizationExportsApi.md#createOrganizationExport) | **POST** /organization_exports | Create an organization export request
|
|
236
237
|
*Asana.OrganizationExportsApi* | [**getOrganizationExport**](docs/OrganizationExportsApi.md#getOrganizationExport) | **GET** /organization_exports/{organization_export_gid} | Get details on an org export request
|
|
237
238
|
*Asana.PortfolioMembershipsApi* | [**getPortfolioMembership**](docs/PortfolioMembershipsApi.md#getPortfolioMembership) | **GET** /portfolio_memberships/{portfolio_membership_gid} | Get a portfolio membership
|
|
@@ -308,6 +309,7 @@ Class | Method | HTTP request | Description
|
|
|
308
309
|
*Asana.TagsApi* | [**getTagsForTask**](docs/TagsApi.md#getTagsForTask) | **GET** /tasks/{task_gid}/tags | Get a task's tags
|
|
309
310
|
*Asana.TagsApi* | [**getTagsForWorkspace**](docs/TagsApi.md#getTagsForWorkspace) | **GET** /workspaces/{workspace_gid}/tags | Get tags in a workspace
|
|
310
311
|
*Asana.TagsApi* | [**updateTag**](docs/TagsApi.md#updateTag) | **PUT** /tags/{tag_gid} | Update a tag
|
|
312
|
+
*Asana.TaskTemplatesApi* | [**deleteTaskTemplate**](docs/TaskTemplatesApi.md#deleteTaskTemplate) | **DELETE** /task_templates/{task_template_gid} | Delete a task template
|
|
311
313
|
*Asana.TaskTemplatesApi* | [**getTaskTemplate**](docs/TaskTemplatesApi.md#getTaskTemplate) | **GET** /task_templates/{task_template_gid} | Get a task template
|
|
312
314
|
*Asana.TaskTemplatesApi* | [**getTaskTemplates**](docs/TaskTemplatesApi.md#getTaskTemplates) | **GET** /task_templates | Get multiple task templates
|
|
313
315
|
*Asana.TaskTemplatesApi* | [**instantiateTask**](docs/TaskTemplatesApi.md#instantiateTask) | **POST** /task_templates/{task_template_gid}/instantiateTask | Instantiate a task from a task template
|
|
@@ -324,6 +326,7 @@ Class | Method | HTTP request | Description
|
|
|
324
326
|
*Asana.TasksApi* | [**getDependentsForTask**](docs/TasksApi.md#getDependentsForTask) | **GET** /tasks/{task_gid}/dependents | Get dependents from a task
|
|
325
327
|
*Asana.TasksApi* | [**getSubtasksForTask**](docs/TasksApi.md#getSubtasksForTask) | **GET** /tasks/{task_gid}/subtasks | Get subtasks from a task
|
|
326
328
|
*Asana.TasksApi* | [**getTask**](docs/TasksApi.md#getTask) | **GET** /tasks/{task_gid} | Get a task
|
|
329
|
+
*Asana.TasksApi* | [**getTaskForCustomID**](docs/TasksApi.md#getTaskForCustomID) | **GET** /workspaces/{workspace_gid}/tasks/custom_id/{custom_id} | Get a task for a given custom ID
|
|
327
330
|
*Asana.TasksApi* | [**getTasks**](docs/TasksApi.md#getTasks) | **GET** /tasks | Get multiple tasks
|
|
328
331
|
*Asana.TasksApi* | [**getTasksForProject**](docs/TasksApi.md#getTasksForProject) | **GET** /projects/{project_gid}/tasks | Get tasks from a project
|
|
329
332
|
*Asana.TasksApi* | [**getTasksForSection**](docs/TasksApi.md#getTasksForSection) | **GET** /sections/{section_gid}/tasks | Get tasks from a section
|
|
@@ -586,22 +589,25 @@ token.accessToken = '<YOUR_ACCESS_TOKEN>';
|
|
|
586
589
|
|
|
587
590
|
let tasksApiInstance = new Asana.TasksApi();
|
|
588
591
|
let opts = {
|
|
589
|
-
"project": "<YOUR_PROJECT_GID>"
|
|
590
|
-
"limit": 100
|
|
592
|
+
"project": "<YOUR_PROJECT_GID>",
|
|
593
|
+
"limit": 100,
|
|
591
594
|
};
|
|
592
595
|
|
|
593
596
|
async function getAllTasks(opts) {
|
|
594
|
-
let tasks = await tasksApiInstance.getTasks(opts).then(async (
|
|
595
|
-
let
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
597
|
+
let tasks = await tasksApiInstance.getTasks(opts).then(async (response) => {
|
|
598
|
+
let result = [];
|
|
599
|
+
let page = response;
|
|
600
|
+
while(true) {
|
|
601
|
+
// Add items on page to list of results
|
|
602
|
+
result = result.concat(page.data);
|
|
603
|
+
// Fetch the next page
|
|
604
|
+
page = await page.nextPage();
|
|
605
|
+
// If the there is no data in the next page break from the loop
|
|
606
|
+
if (!page.data) {
|
|
607
|
+
break;
|
|
608
|
+
}
|
|
603
609
|
}
|
|
604
|
-
return
|
|
610
|
+
return result;
|
|
605
611
|
}, (error) => {
|
|
606
612
|
console.error(error.response.body);
|
|
607
613
|
});
|
|
@@ -610,6 +616,79 @@ async function getAllTasks(opts) {
|
|
|
610
616
|
}
|
|
611
617
|
|
|
612
618
|
getAllTasks(opts);
|
|
619
|
+
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
Sample output:
|
|
623
|
+
```bash
|
|
624
|
+
Tasks: [
|
|
625
|
+
{
|
|
626
|
+
"gid": "123",
|
|
627
|
+
"name": "task 1",
|
|
628
|
+
"resource_type": "task",
|
|
629
|
+
"resource_subtype": "default_task"
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"gid": "456",
|
|
633
|
+
"name": "task 2",
|
|
634
|
+
"resource_type": "task",
|
|
635
|
+
"resource_subtype": "default_task"
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"gid": "789",
|
|
639
|
+
"name": "task 3",
|
|
640
|
+
"resource_type": "task",
|
|
641
|
+
"resource_subtype": "default_task"
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
"gid": "101112",
|
|
645
|
+
"name": "task 4",
|
|
646
|
+
"resource_type": "task",
|
|
647
|
+
"resource_subtype": "default_task"
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"gid": "131415",
|
|
651
|
+
"name": "task 5",
|
|
652
|
+
"resource_type": "task",
|
|
653
|
+
"resource_subtype": "default_task"
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"gid": "161718",
|
|
657
|
+
"name": "task 6",
|
|
658
|
+
"resource_type": "task",
|
|
659
|
+
"resource_subtype": "default_task"
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
"gid": "192021",
|
|
663
|
+
"name": "task 7",
|
|
664
|
+
"resource_type": "task",
|
|
665
|
+
"resource_subtype": "default_task"
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
"gid": "222324",
|
|
669
|
+
"name": "task 8",
|
|
670
|
+
"resource_type": "task",
|
|
671
|
+
"resource_subtype": "default_task"
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"gid": "252627",
|
|
675
|
+
"name": "task 9",
|
|
676
|
+
"resource_type": "task",
|
|
677
|
+
"resource_subtype": "default_task"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"gid": "282930",
|
|
681
|
+
"name": "task 10",
|
|
682
|
+
"resource_type": "task",
|
|
683
|
+
"resource_subtype": "default_task"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"gid": "313233",
|
|
687
|
+
"name": "task 11",
|
|
688
|
+
"resource_type": "task",
|
|
689
|
+
"resource_subtype": "default_task"
|
|
690
|
+
},
|
|
691
|
+
]
|
|
613
692
|
```
|
|
614
693
|
|
|
615
694
|
EX: Pagination do something per page
|
|
@@ -623,28 +702,55 @@ token.accessToken = '<YOUR_ACCESS_TOKEN>';
|
|
|
623
702
|
let tasksApiInstance = new Asana.TasksApi();
|
|
624
703
|
let opts = {
|
|
625
704
|
'project': "<YOUR_PROJECT_GID>",
|
|
626
|
-
|
|
705
|
+
"limit": 5,
|
|
627
706
|
};
|
|
628
707
|
|
|
629
|
-
pageIndex = 1;
|
|
630
|
-
|
|
631
|
-
tasksApiInstance.getTasks(opts).then(async (firstPage) => {
|
|
632
|
-
// Do something with the first <LIMIT> results. EX: print out results
|
|
633
|
-
console.log(`Page ${pageIndex}: ` + JSON.stringify(firstPage.data, null, 2));
|
|
708
|
+
let pageIndex = 1;
|
|
634
709
|
|
|
635
|
-
|
|
636
|
-
let
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
//
|
|
710
|
+
tasksApiInstance.getTasks(opts).then(async (response) => {
|
|
711
|
+
let page = response;
|
|
712
|
+
while(true) {
|
|
713
|
+
// Do something with the page results
|
|
714
|
+
// EX: print the name of the tasks on that page
|
|
715
|
+
console.log(`Page ${pageIndex}: `);
|
|
716
|
+
page.data.forEach(task => {
|
|
717
|
+
console.log(` ${task.name}`);
|
|
718
|
+
});
|
|
640
719
|
pageIndex += 1;
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
720
|
+
|
|
721
|
+
page = await page.nextPage();
|
|
722
|
+
// If the there is no data in the next page break from the loop
|
|
723
|
+
if (!page.data) {
|
|
724
|
+
break;
|
|
725
|
+
}
|
|
644
726
|
}
|
|
645
727
|
}, (error) => {
|
|
646
728
|
console.error(error.response.body);
|
|
647
729
|
});
|
|
730
|
+
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
Sample output:
|
|
734
|
+
|
|
735
|
+
```bash
|
|
736
|
+
Page 1:
|
|
737
|
+
task 1
|
|
738
|
+
task 2
|
|
739
|
+
task 3
|
|
740
|
+
task 4
|
|
741
|
+
task 5
|
|
742
|
+
Page 2:
|
|
743
|
+
task 6
|
|
744
|
+
task 7
|
|
745
|
+
task 8
|
|
746
|
+
task 9
|
|
747
|
+
task 10
|
|
748
|
+
Page 3:
|
|
749
|
+
task 11
|
|
750
|
+
task 12
|
|
751
|
+
task 13
|
|
752
|
+
task 14
|
|
753
|
+
task 15
|
|
648
754
|
```
|
|
649
755
|
|
|
650
756
|
### Turning off Pagination
|
|
@@ -1000,6 +1106,6 @@ client.callApi(
|
|
|
1000
1106
|
```
|
|
1001
1107
|
|
|
1002
1108
|
[release-image]: https://img.shields.io/github/release/asana/node-asana.svg
|
|
1003
|
-
[release-url]: https://github.com/Asana/node-asana/releases/tag/v3.0.
|
|
1109
|
+
[release-url]: https://github.com/Asana/node-asana/releases/tag/v3.0.3
|
|
1004
1110
|
[npm-image]: http://img.shields.io/npm/v/asana.svg?style=flat-square
|
|
1005
1111
|
[npm-url]: https://www.npmjs.org/package/asana
|
|
@@ -393,22 +393,25 @@ EX: Pagination gather all resources
|
|
|
393
393
|
|
|
394
394
|
let tasksApiInstance = new {{{moduleName}}}.TasksApi();
|
|
395
395
|
let opts = {
|
|
396
|
-
"project": "<YOUR_PROJECT_GID>"
|
|
397
|
-
"limit": 100
|
|
396
|
+
"project": "<YOUR_PROJECT_GID>",
|
|
397
|
+
"limit": 100,
|
|
398
398
|
};
|
|
399
399
|
|
|
400
400
|
async function getAllTasks(opts) {
|
|
401
|
-
let tasks = await tasksApiInstance.getTasks(opts).then(async (
|
|
402
|
-
let
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
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
|
+
}
|
|
410
413
|
}
|
|
411
|
-
return
|
|
414
|
+
return result;
|
|
412
415
|
}, (error) => {
|
|
413
416
|
console.error(error.response.body);
|
|
414
417
|
});
|
|
@@ -417,6 +420,79 @@ async function getAllTasks(opts) {
|
|
|
417
420
|
}
|
|
418
421
|
|
|
419
422
|
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
|
+
]
|
|
420
496
|
```
|
|
421
497
|
|
|
422
498
|
EX: Pagination do something per page
|
|
@@ -426,28 +502,55 @@ EX: Pagination do something per page
|
|
|
426
502
|
let tasksApiInstance = new {{{moduleName}}}.TasksApi();
|
|
427
503
|
let opts = {
|
|
428
504
|
'project': "<YOUR_PROJECT_GID>",
|
|
429
|
-
|
|
505
|
+
"limit": 5,
|
|
430
506
|
};
|
|
431
507
|
|
|
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;
|
|
437
509
|
|
|
438
|
-
|
|
439
|
-
let
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
//
|
|
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
|
+
});
|
|
443
519
|
pageIndex += 1;
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
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
|
+
}
|
|
447
526
|
}
|
|
448
527
|
}, (error) => {
|
|
449
528
|
console.error(error.response.body);
|
|
450
529
|
});
|
|
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
|
|
451
554
|
```
|
|
452
555
|
|
|
453
556
|
### Turning off Pagination
|
|
@@ -90,9 +90,9 @@ export class {{classname}} {
|
|
|
90
90
|
let contentTypes = [{{#consumes}}'{{& mediaType}}'{{#hasMore}}, {{/hasMore}}{{/consumes}}];
|
|
91
91
|
let accepts = [{{#produces}}'{{& mediaType}}'{{#hasMore}}, {{/hasMore}}{{/produces}}];
|
|
92
92
|
let returnType = 'Blob';
|
|
93
|
-
|
|
93
|
+
{{#vendorExtensions.x-codegen-isArrayResponse}}
|
|
94
94
|
// Check if RETURN_COLLECTION is set and return a collection object if it is
|
|
95
|
-
if (this.apiClient.RETURN_COLLECTION
|
|
95
|
+
if (this.apiClient.RETURN_COLLECTION) {
|
|
96
96
|
return Collection.fromApiClient(
|
|
97
97
|
this.apiClient.callApi(
|
|
98
98
|
'{{&path}}', '{{httpMethod}}',
|
|
@@ -114,13 +114,14 @@ export class {{classname}} {
|
|
|
114
114
|
'returnType': returnType
|
|
115
115
|
}
|
|
116
116
|
)
|
|
117
|
-
} else {
|
|
118
|
-
return this.apiClient.callApi(
|
|
119
|
-
'{{&path}}', '{{httpMethod}}',
|
|
120
|
-
pathParams, queryParams, headerParams, formParams, postBody,
|
|
121
|
-
authNames, contentTypes, accepts, returnType{{^usePromises}}, callback{{/usePromises}}
|
|
122
|
-
);
|
|
123
117
|
}
|
|
118
|
+
{{/vendorExtensions.x-codegen-isArrayResponse}}
|
|
119
|
+
|
|
120
|
+
return this.apiClient.callApi(
|
|
121
|
+
'{{&path}}', '{{httpMethod}}',
|
|
122
|
+
pathParams, queryParams, headerParams, formParams, postBody,
|
|
123
|
+
authNames, contentTypes, accepts, returnType{{^usePromises}}, callback{{/usePromises}}
|
|
124
|
+
);
|
|
124
125
|
}
|
|
125
126
|
{{#usePromises}}
|
|
126
127
|
{{#emitJSDoc}}
|
|
@@ -136,16 +137,17 @@ export class {{classname}} {
|
|
|
136
137
|
* @return {{braces "left"}}Promise{{braces "right"}} a {{braces "left"}}@link https://www.promisejs.org/|Promise{{braces "right"}}{{#returnType}}, with data of type {{braces "left"}}@link {{&vendorExtensions.x-jsdoc-type}}{{braces "right"}}{{/returnType}}{{/usePromises}}
|
|
137
138
|
*/
|
|
138
139
|
{{/emitJSDoc}} {{operationId}}({{vendorExtensions.x-codegen-arg-list}}) {
|
|
139
|
-
|
|
140
|
+
{{#vendorExtensions.x-codegen-isArrayResponse}}
|
|
140
141
|
// Check if RETURN_COLLECTION is set and return a collection object if it is
|
|
141
|
-
if (this.apiClient.RETURN_COLLECTION
|
|
142
|
+
if (this.apiClient.RETURN_COLLECTION) {
|
|
142
143
|
return this.{{operationId}}WithHttpInfo({{vendorExtensions.x-codegen-arg-list}})
|
|
143
|
-
} else {
|
|
144
|
-
return this.{{operationId}}WithHttpInfo({{vendorExtensions.x-codegen-arg-list}})
|
|
145
|
-
.then(function(response_and_data) {
|
|
146
|
-
return response_and_data.data;
|
|
147
|
-
});
|
|
148
144
|
}
|
|
145
|
+
{{/vendorExtensions.x-codegen-isArrayResponse}}
|
|
146
|
+
|
|
147
|
+
return this.{{operationId}}WithHttpInfo({{vendorExtensions.x-codegen-arg-list}})
|
|
148
|
+
.then(function(response_and_data) {
|
|
149
|
+
return response_and_data.data;
|
|
150
|
+
});
|
|
149
151
|
}
|
|
150
152
|
{{/usePromises}}
|
|
151
153
|
{{/operation}}{{/operations}}
|