asana 3.0.2 → 3.0.4
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 +140 -29
- package/codegen/templates/README.mustache +129 -26
- package/codegen/templates/api.mustache +17 -15
- package/dist/ApiClient.js +6 -7
- package/dist/api/AllocationsApi.js +307 -0
- 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/dist/index.js +7 -0
- package/package.json +1 -1
- package/src/ApiClient.js +4 -4
- package/src/api/AllocationsApi.js +365 -0
- 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 +9 -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.4
|
|
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.4/asana-min.js"></script>
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
Example usage (**NOTE**: be careful not to expose your access token):
|
|
@@ -195,6 +195,11 @@ All URIs are relative to *https://app.asana.com/api/1.0*
|
|
|
195
195
|
|
|
196
196
|
Class | Method | HTTP request | Description
|
|
197
197
|
------------ | ------------- | ------------- | -------------
|
|
198
|
+
*Asana.AllocationsApi* | [**createAllocation**](docs/AllocationsApi.md#createAllocation) | **POST** /allocations | Create an allocation
|
|
199
|
+
*Asana.AllocationsApi* | [**deleteAllocation**](docs/AllocationsApi.md#deleteAllocation) | **DELETE** /allocations/{allocation_gid} | Delete an allocation
|
|
200
|
+
*Asana.AllocationsApi* | [**getAllocation**](docs/AllocationsApi.md#getAllocation) | **GET** /allocations/{allocation_gid} | Get an allocation
|
|
201
|
+
*Asana.AllocationsApi* | [**getAllocations**](docs/AllocationsApi.md#getAllocations) | **GET** /allocations | Get multiple allocations
|
|
202
|
+
*Asana.AllocationsApi* | [**updateAllocation**](docs/AllocationsApi.md#updateAllocation) | **PUT** /allocations/{allocation_gid} | Update an allocation
|
|
198
203
|
*Asana.AttachmentsApi* | [**createAttachmentForObject**](docs/AttachmentsApi.md#createAttachmentForObject) | **POST** /attachments | Upload an attachment
|
|
199
204
|
*Asana.AttachmentsApi* | [**deleteAttachment**](docs/AttachmentsApi.md#deleteAttachment) | **DELETE** /attachments/{attachment_gid} | Delete an attachment
|
|
200
205
|
*Asana.AttachmentsApi* | [**getAttachment**](docs/AttachmentsApi.md#getAttachment) | **GET** /attachments/{attachment_gid} | Get an attachment
|
|
@@ -232,6 +237,7 @@ Class | Method | HTTP request | Description
|
|
|
232
237
|
*Asana.MembershipsApi* | [**deleteMembership**](docs/MembershipsApi.md#deleteMembership) | **DELETE** /memberships/{membership_gid} | Delete a membership
|
|
233
238
|
*Asana.MembershipsApi* | [**getMembership**](docs/MembershipsApi.md#getMembership) | **GET** /memberships/{membership_gid} | Get a membership
|
|
234
239
|
*Asana.MembershipsApi* | [**getMemberships**](docs/MembershipsApi.md#getMemberships) | **GET** /memberships | Get multiple memberships
|
|
240
|
+
*Asana.MembershipsApi* | [**updateMembership**](docs/MembershipsApi.md#updateMembership) | **PUT** /memberships/{membership_gid} | Update a membership
|
|
235
241
|
*Asana.OrganizationExportsApi* | [**createOrganizationExport**](docs/OrganizationExportsApi.md#createOrganizationExport) | **POST** /organization_exports | Create an organization export request
|
|
236
242
|
*Asana.OrganizationExportsApi* | [**getOrganizationExport**](docs/OrganizationExportsApi.md#getOrganizationExport) | **GET** /organization_exports/{organization_export_gid} | Get details on an org export request
|
|
237
243
|
*Asana.PortfolioMembershipsApi* | [**getPortfolioMembership**](docs/PortfolioMembershipsApi.md#getPortfolioMembership) | **GET** /portfolio_memberships/{portfolio_membership_gid} | Get a portfolio membership
|
|
@@ -308,6 +314,7 @@ Class | Method | HTTP request | Description
|
|
|
308
314
|
*Asana.TagsApi* | [**getTagsForTask**](docs/TagsApi.md#getTagsForTask) | **GET** /tasks/{task_gid}/tags | Get a task's tags
|
|
309
315
|
*Asana.TagsApi* | [**getTagsForWorkspace**](docs/TagsApi.md#getTagsForWorkspace) | **GET** /workspaces/{workspace_gid}/tags | Get tags in a workspace
|
|
310
316
|
*Asana.TagsApi* | [**updateTag**](docs/TagsApi.md#updateTag) | **PUT** /tags/{tag_gid} | Update a tag
|
|
317
|
+
*Asana.TaskTemplatesApi* | [**deleteTaskTemplate**](docs/TaskTemplatesApi.md#deleteTaskTemplate) | **DELETE** /task_templates/{task_template_gid} | Delete a task template
|
|
311
318
|
*Asana.TaskTemplatesApi* | [**getTaskTemplate**](docs/TaskTemplatesApi.md#getTaskTemplate) | **GET** /task_templates/{task_template_gid} | Get a task template
|
|
312
319
|
*Asana.TaskTemplatesApi* | [**getTaskTemplates**](docs/TaskTemplatesApi.md#getTaskTemplates) | **GET** /task_templates | Get multiple task templates
|
|
313
320
|
*Asana.TaskTemplatesApi* | [**instantiateTask**](docs/TaskTemplatesApi.md#instantiateTask) | **POST** /task_templates/{task_template_gid}/instantiateTask | Instantiate a task from a task template
|
|
@@ -324,6 +331,7 @@ Class | Method | HTTP request | Description
|
|
|
324
331
|
*Asana.TasksApi* | [**getDependentsForTask**](docs/TasksApi.md#getDependentsForTask) | **GET** /tasks/{task_gid}/dependents | Get dependents from a task
|
|
325
332
|
*Asana.TasksApi* | [**getSubtasksForTask**](docs/TasksApi.md#getSubtasksForTask) | **GET** /tasks/{task_gid}/subtasks | Get subtasks from a task
|
|
326
333
|
*Asana.TasksApi* | [**getTask**](docs/TasksApi.md#getTask) | **GET** /tasks/{task_gid} | Get a task
|
|
334
|
+
*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
335
|
*Asana.TasksApi* | [**getTasks**](docs/TasksApi.md#getTasks) | **GET** /tasks | Get multiple tasks
|
|
328
336
|
*Asana.TasksApi* | [**getTasksForProject**](docs/TasksApi.md#getTasksForProject) | **GET** /projects/{project_gid}/tasks | Get tasks from a project
|
|
329
337
|
*Asana.TasksApi* | [**getTasksForSection**](docs/TasksApi.md#getTasksForSection) | **GET** /sections/{section_gid}/tasks | Get tasks from a section
|
|
@@ -586,22 +594,25 @@ token.accessToken = '<YOUR_ACCESS_TOKEN>';
|
|
|
586
594
|
|
|
587
595
|
let tasksApiInstance = new Asana.TasksApi();
|
|
588
596
|
let opts = {
|
|
589
|
-
"project": "<YOUR_PROJECT_GID>"
|
|
590
|
-
"limit": 100
|
|
597
|
+
"project": "<YOUR_PROJECT_GID>",
|
|
598
|
+
"limit": 100,
|
|
591
599
|
};
|
|
592
600
|
|
|
593
601
|
async function getAllTasks(opts) {
|
|
594
|
-
let tasks = await tasksApiInstance.getTasks(opts).then(async (
|
|
595
|
-
let
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
602
|
+
let tasks = await tasksApiInstance.getTasks(opts).then(async (response) => {
|
|
603
|
+
let result = [];
|
|
604
|
+
let page = response;
|
|
605
|
+
while(true) {
|
|
606
|
+
// Add items on page to list of results
|
|
607
|
+
result = result.concat(page.data);
|
|
608
|
+
// Fetch the next page
|
|
609
|
+
page = await page.nextPage();
|
|
610
|
+
// If the there is no data in the next page break from the loop
|
|
611
|
+
if (!page.data) {
|
|
612
|
+
break;
|
|
613
|
+
}
|
|
603
614
|
}
|
|
604
|
-
return
|
|
615
|
+
return result;
|
|
605
616
|
}, (error) => {
|
|
606
617
|
console.error(error.response.body);
|
|
607
618
|
});
|
|
@@ -610,6 +621,79 @@ async function getAllTasks(opts) {
|
|
|
610
621
|
}
|
|
611
622
|
|
|
612
623
|
getAllTasks(opts);
|
|
624
|
+
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
Sample output:
|
|
628
|
+
```bash
|
|
629
|
+
Tasks: [
|
|
630
|
+
{
|
|
631
|
+
"gid": "123",
|
|
632
|
+
"name": "task 1",
|
|
633
|
+
"resource_type": "task",
|
|
634
|
+
"resource_subtype": "default_task"
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"gid": "456",
|
|
638
|
+
"name": "task 2",
|
|
639
|
+
"resource_type": "task",
|
|
640
|
+
"resource_subtype": "default_task"
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"gid": "789",
|
|
644
|
+
"name": "task 3",
|
|
645
|
+
"resource_type": "task",
|
|
646
|
+
"resource_subtype": "default_task"
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
"gid": "101112",
|
|
650
|
+
"name": "task 4",
|
|
651
|
+
"resource_type": "task",
|
|
652
|
+
"resource_subtype": "default_task"
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"gid": "131415",
|
|
656
|
+
"name": "task 5",
|
|
657
|
+
"resource_type": "task",
|
|
658
|
+
"resource_subtype": "default_task"
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
"gid": "161718",
|
|
662
|
+
"name": "task 6",
|
|
663
|
+
"resource_type": "task",
|
|
664
|
+
"resource_subtype": "default_task"
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"gid": "192021",
|
|
668
|
+
"name": "task 7",
|
|
669
|
+
"resource_type": "task",
|
|
670
|
+
"resource_subtype": "default_task"
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"gid": "222324",
|
|
674
|
+
"name": "task 8",
|
|
675
|
+
"resource_type": "task",
|
|
676
|
+
"resource_subtype": "default_task"
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"gid": "252627",
|
|
680
|
+
"name": "task 9",
|
|
681
|
+
"resource_type": "task",
|
|
682
|
+
"resource_subtype": "default_task"
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
"gid": "282930",
|
|
686
|
+
"name": "task 10",
|
|
687
|
+
"resource_type": "task",
|
|
688
|
+
"resource_subtype": "default_task"
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"gid": "313233",
|
|
692
|
+
"name": "task 11",
|
|
693
|
+
"resource_type": "task",
|
|
694
|
+
"resource_subtype": "default_task"
|
|
695
|
+
},
|
|
696
|
+
]
|
|
613
697
|
```
|
|
614
698
|
|
|
615
699
|
EX: Pagination do something per page
|
|
@@ -623,28 +707,55 @@ token.accessToken = '<YOUR_ACCESS_TOKEN>';
|
|
|
623
707
|
let tasksApiInstance = new Asana.TasksApi();
|
|
624
708
|
let opts = {
|
|
625
709
|
'project': "<YOUR_PROJECT_GID>",
|
|
626
|
-
|
|
710
|
+
"limit": 5,
|
|
627
711
|
};
|
|
628
712
|
|
|
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));
|
|
713
|
+
let pageIndex = 1;
|
|
634
714
|
|
|
635
|
-
|
|
636
|
-
let
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
//
|
|
715
|
+
tasksApiInstance.getTasks(opts).then(async (response) => {
|
|
716
|
+
let page = response;
|
|
717
|
+
while(true) {
|
|
718
|
+
// Do something with the page results
|
|
719
|
+
// EX: print the name of the tasks on that page
|
|
720
|
+
console.log(`Page ${pageIndex}: `);
|
|
721
|
+
page.data.forEach(task => {
|
|
722
|
+
console.log(` ${task.name}`);
|
|
723
|
+
});
|
|
640
724
|
pageIndex += 1;
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
725
|
+
|
|
726
|
+
page = await page.nextPage();
|
|
727
|
+
// If the there is no data in the next page break from the loop
|
|
728
|
+
if (!page.data) {
|
|
729
|
+
break;
|
|
730
|
+
}
|
|
644
731
|
}
|
|
645
732
|
}, (error) => {
|
|
646
733
|
console.error(error.response.body);
|
|
647
734
|
});
|
|
735
|
+
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
Sample output:
|
|
739
|
+
|
|
740
|
+
```bash
|
|
741
|
+
Page 1:
|
|
742
|
+
task 1
|
|
743
|
+
task 2
|
|
744
|
+
task 3
|
|
745
|
+
task 4
|
|
746
|
+
task 5
|
|
747
|
+
Page 2:
|
|
748
|
+
task 6
|
|
749
|
+
task 7
|
|
750
|
+
task 8
|
|
751
|
+
task 9
|
|
752
|
+
task 10
|
|
753
|
+
Page 3:
|
|
754
|
+
task 11
|
|
755
|
+
task 12
|
|
756
|
+
task 13
|
|
757
|
+
task 14
|
|
758
|
+
task 15
|
|
648
759
|
```
|
|
649
760
|
|
|
650
761
|
### Turning off Pagination
|
|
@@ -1000,6 +1111,6 @@ client.callApi(
|
|
|
1000
1111
|
```
|
|
1001
1112
|
|
|
1002
1113
|
[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.
|
|
1114
|
+
[release-url]: https://github.com/Asana/node-asana/releases/tag/v3.0.4
|
|
1004
1115
|
[npm-image]: http://img.shields.io/npm/v/asana.svg?style=flat-square
|
|
1005
1116
|
[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}}
|