delectusnon 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.prettierignore +2 -0
- package/.travis.yml +33 -0
- package/.vscode/launch.json +24 -0
- package/.vscode/settings.json +3 -0
- package/demos/ago-node-cli/README.md +29 -0
- package/demos/ago-node-cli/ago.js +32 -0
- package/demos/ago-node-cli/index.js +11 -0
- package/demos/ago-node-cli/lib/item-export-command.js +48 -0
- package/demos/ago-node-cli/lib/item-search-command.js +35 -0
- package/demos/ago-node-cli/package-lock.json +172 -0
- package/demos/ago-node-cli/package.json +30 -0
- package/demos/attachments/README.md +5 -0
- package/demos/attachments/index.html +164 -0
- package/demos/attachments/package-lock.json +182 -0
- package/demos/attachments/package.json +18 -0
- package/demos/batch-geocoder-node/NYC_Restaurant_Inspection_Results.csv +100 -0
- package/demos/batch-geocoder-node/README.md +15 -0
- package/demos/batch-geocoder-node/batch-geocode.js +118 -0
- package/demos/batch-geocoder-node/config-template.js +18 -0
- package/demos/batch-geocoder-node/package-lock.json +116 -0
- package/demos/batch-geocoder-node/package.json +39 -0
- package/demos/express/README.md +10 -0
- package/demos/express/config.json.template +3 -0
- package/demos/express/package-lock.json +473 -0
- package/demos/express/package.json +18 -0
- package/demos/express/server.js +28 -0
- package/demos/feature-service-browser/README.md +6 -0
- package/demos/feature-service-browser/index.html +122 -0
- package/demos/feature-service-browser/package-lock.json +182 -0
- package/demos/feature-service-browser/package.json +18 -0
- package/demos/geocoder-browser/README.md +10 -0
- package/demos/geocoder-browser/config.js.template +1 -0
- package/demos/geocoder-browser/index.html +131 -0
- package/demos/geocoder-browser/package-lock.json +182 -0
- package/demos/geocoder-browser/package.json +19 -0
- package/demos/geocoder-browser/post-sign-in.html +25 -0
- package/demos/jsapi-integration/README.md +8 -0
- package/demos/jsapi-integration/config.js +6 -0
- package/demos/jsapi-integration/index.html +79 -0
- package/demos/jsapi-integration/package-lock.json +184 -0
- package/demos/jsapi-integration/package.json +19 -0
- package/demos/oauth2-browser/README.md +12 -0
- package/demos/oauth2-browser/authenticate.html +32 -0
- package/demos/oauth2-browser/config.js.template +6 -0
- package/demos/oauth2-browser/index.html +202 -0
- package/demos/oauth2-browser/logo.svg +4 -0
- package/demos/oauth2-browser/package-lock.json +163 -0
- package/demos/oauth2-browser/package.json +18 -0
- package/demos/oauth2-browser/style.css +36 -0
- package/demos/oauth2-browser-retry/README.md +25 -0
- package/demos/oauth2-browser-retry/authenticate.html +21 -0
- package/demos/oauth2-browser-retry/index.html +116 -0
- package/demos/oauth2-browser-retry/logo.svg +4 -0
- package/demos/vue/.env.example +11 -0
- package/demos/vue/.eslintrc.js +17 -0
- package/demos/vue/.postcssrc.js +5 -0
- package/demos/vue/README.md +17 -0
- package/demos/vue/babel.config.js +3 -0
- package/demos/vue/package-lock.json +11323 -0
- package/demos/vue/package.json +33 -0
- package/demos/vue/public/favicon.ico +0 -0
- package/demos/vue/public/index.html +24 -0
- package/demos/vue/src/assets/logo.svg +29 -0
- package/demos/vue/src/components/App.vue +308 -0
- package/demos/vue/src/components/Authenticate.vue +65 -0
- package/demos/vue/src/components/Loader.vue +230 -0
- package/demos/vue/src/main.js +92 -0
- package/docs/FAQ.md +28 -0
- package/docs/HISTORY.md +62 -0
- package/docs/acetate.config.js +223 -0
- package/docs/build-typedoc.js +301 -0
- package/docs/src/_layout.html +82 -0
- package/docs/src/api/_declaration.html +496 -0
- package/docs/src/api/_layout.html +127 -0
- package/docs/src/api/_package.html +13 -0
- package/docs/src/api/index.html +23 -0
- package/docs/src/guides/_layout.html +24 -0
- package/docs/src/guides/amd-requirejs-dojo.md +40 -0
- package/docs/src/guides/babel-and-rollup.md +30 -0
- package/docs/src/guides/babel-and-webpack.md +30 -0
- package/docs/src/guides/browser-authentication.md +31 -0
- package/docs/src/guides/browserify.md +9 -0
- package/docs/src/guides/cli-authentication.md +9 -0
- package/docs/src/guides/client-server-authentication.md +9 -0
- package/docs/src/guides/from-a-cdn.md +36 -0
- package/docs/src/guides/index.md +52 -0
- package/docs/src/guides/node.md +70 -0
- package/docs/src/guides/package-overview.md +8 -0
- package/docs/src/guides/server-authentication.md +9 -0
- package/docs/src/guides/typescript-and-webpack.md +9 -0
- package/docs/src/img/icons.png +0 -0
- package/docs/src/img/icons@2x.png +0 -0
- package/docs/src/index.html +12 -0
- package/docs/src/js/api-search.js +112 -0
- package/docs/src/js/nav-toggle.js +41 -0
- package/docs/src/sass/_highlight.scss +96 -0
- package/docs/src/sass/_icons.scss +157 -0
- package/docs/src/sass/style.scss +169 -0
- package/jasmine.json +7 -0
- package/karma.conf.js +100 -0
- package/lerna.json +8 -0
- package/notes/README.md +88 -0
- package/package.json +88 -0
- package/packages/arcgis-rest-auth/README.md +64 -0
- package/packages/arcgis-rest-auth/package-lock.json +11 -0
- package/packages/arcgis-rest-auth/package.json +51 -0
- package/packages/arcgis-rest-auth/src/ApplicationSession.ts +109 -0
- package/packages/arcgis-rest-auth/src/UserSession.ts +873 -0
- package/packages/arcgis-rest-auth/src/authenticated-request-options.ts +24 -0
- package/packages/arcgis-rest-auth/src/fetch-token.ts +52 -0
- package/packages/arcgis-rest-auth/src/generate-token.ts +39 -0
- package/packages/arcgis-rest-auth/src/index.ts +8 -0
- package/packages/arcgis-rest-auth/test/ApplicationSession.test.ts +124 -0
- package/packages/arcgis-rest-auth/test/UserSession.test.ts +995 -0
- package/packages/arcgis-rest-auth/test/fetchToken.test.ts +112 -0
- package/packages/arcgis-rest-auth/test/generateToken.test.ts +130 -0
- package/packages/arcgis-rest-auth/test/utils.ts +14 -0
- package/packages/arcgis-rest-auth/tsconfig.json +6 -0
- package/packages/arcgis-rest-common-types/README.md +61 -0
- package/packages/arcgis-rest-common-types/package.json +38 -0
- package/packages/arcgis-rest-common-types/src/group.ts +54 -0
- package/packages/arcgis-rest-common-types/src/index.ts +467 -0
- package/packages/arcgis-rest-common-types/src/item.ts +45 -0
- package/packages/arcgis-rest-common-types/src/webmap.ts +1232 -0
- package/packages/arcgis-rest-common-types/tsconfig.json +11 -0
- package/packages/arcgis-rest-feature-service/README.md +70 -0
- package/packages/arcgis-rest-feature-service/package-lock.json +11 -0
- package/packages/arcgis-rest-feature-service/package.json +50 -0
- package/packages/arcgis-rest-feature-service/src/add.ts +81 -0
- package/packages/arcgis-rest-feature-service/src/addAttachment.ts +65 -0
- package/packages/arcgis-rest-feature-service/src/delete.ts +85 -0
- package/packages/arcgis-rest-feature-service/src/deleteAttachments.ts +68 -0
- package/packages/arcgis-rest-feature-service/src/getAttachments.ts +64 -0
- package/packages/arcgis-rest-feature-service/src/helpers.ts +80 -0
- package/packages/arcgis-rest-feature-service/src/index.ts +12 -0
- package/packages/arcgis-rest-feature-service/src/query.ts +172 -0
- package/packages/arcgis-rest-feature-service/src/queryRelated.ts +91 -0
- package/packages/arcgis-rest-feature-service/src/update.ts +81 -0
- package/packages/arcgis-rest-feature-service/src/updateAttachment.ts +74 -0
- package/packages/arcgis-rest-feature-service/test/attachments.test.ts +203 -0
- package/packages/arcgis-rest-feature-service/test/features.test.ts +252 -0
- package/packages/arcgis-rest-feature-service/test/mocks/feature.ts +279 -0
- package/packages/arcgis-rest-feature-service/test/mocks/foo.txt +1 -0
- package/packages/arcgis-rest-feature-service/tsconfig.json +6 -0
- package/packages/arcgis-rest-feature-service-admin/README.md +66 -0
- package/packages/arcgis-rest-feature-service-admin/package-lock.json +11 -0
- package/packages/arcgis-rest-feature-service-admin/package.json +53 -0
- package/packages/arcgis-rest-feature-service-admin/src/addTo.ts +70 -0
- package/packages/arcgis-rest-feature-service-admin/src/create.ts +195 -0
- package/packages/arcgis-rest-feature-service-admin/src/index.ts +2 -0
- package/packages/arcgis-rest-feature-service-admin/test/addTo.test.ts +310 -0
- package/packages/arcgis-rest-feature-service-admin/test/create.test.ts +412 -0
- package/packages/arcgis-rest-feature-service-admin/test/mocks/move.ts +14 -0
- package/packages/arcgis-rest-feature-service-admin/test/mocks/service.ts +72 -0
- package/packages/arcgis-rest-feature-service-admin/tsconfig.json +6 -0
- package/packages/arcgis-rest-geocoder/README.md +79 -0
- package/packages/arcgis-rest-geocoder/package-lock.json +11 -0
- package/packages/arcgis-rest-geocoder/package.json +52 -0
- package/packages/arcgis-rest-geocoder/src/bulk.ts +102 -0
- package/packages/arcgis-rest-geocoder/src/geocode.ts +117 -0
- package/packages/arcgis-rest-geocoder/src/helpers.ts +79 -0
- package/packages/arcgis-rest-geocoder/src/index.ts +8 -0
- package/packages/arcgis-rest-geocoder/src/reverse.ts +84 -0
- package/packages/arcgis-rest-geocoder/src/suggest.ts +72 -0
- package/packages/arcgis-rest-geocoder/test/bulk.test.ts +113 -0
- package/packages/arcgis-rest-geocoder/test/geocode.test.ts +121 -0
- package/packages/arcgis-rest-geocoder/test/helpers.test.ts +113 -0
- package/packages/arcgis-rest-geocoder/test/mocks/responses.ts +591 -0
- package/packages/arcgis-rest-geocoder/test/reverse.test.ts +126 -0
- package/packages/arcgis-rest-geocoder/test/suggest.test.ts +77 -0
- package/packages/arcgis-rest-geocoder/tsconfig.json +6 -0
- package/packages/arcgis-rest-groups/README.md +64 -0
- package/packages/arcgis-rest-groups/package-lock.json +11 -0
- package/packages/arcgis-rest-groups/package.json +52 -0
- package/packages/arcgis-rest-groups/src/create.ts +34 -0
- package/packages/arcgis-rest-groups/src/get.ts +95 -0
- package/packages/arcgis-rest-groups/src/helpers.ts +26 -0
- package/packages/arcgis-rest-groups/src/index.ts +11 -0
- package/packages/arcgis-rest-groups/src/notification.ts +77 -0
- package/packages/arcgis-rest-groups/src/protect.ts +40 -0
- package/packages/arcgis-rest-groups/src/remove.ts +23 -0
- package/packages/arcgis-rest-groups/src/search.ts +64 -0
- package/packages/arcgis-rest-groups/src/update.ts +36 -0
- package/packages/arcgis-rest-groups/test/crud.test.ts +104 -0
- package/packages/arcgis-rest-groups/test/get.test.ts +101 -0
- package/packages/arcgis-rest-groups/test/mocks/responses.ts +141 -0
- package/packages/arcgis-rest-groups/test/notification.test.ts +102 -0
- package/packages/arcgis-rest-groups/test/protect.test.ts +64 -0
- package/packages/arcgis-rest-groups/test/search.test.ts +85 -0
- package/packages/arcgis-rest-groups/tsconfig.json +6 -0
- package/packages/arcgis-rest-items/README.md +66 -0
- package/packages/arcgis-rest-items/package-lock.json +11 -0
- package/packages/arcgis-rest-items/package.json +52 -0
- package/packages/arcgis-rest-items/src/add.ts +103 -0
- package/packages/arcgis-rest-items/src/create.ts +110 -0
- package/packages/arcgis-rest-items/src/get.ts +79 -0
- package/packages/arcgis-rest-items/src/helpers.ts +147 -0
- package/packages/arcgis-rest-items/src/index.ts +11 -0
- package/packages/arcgis-rest-items/src/protect.ts +38 -0
- package/packages/arcgis-rest-items/src/remove.ts +58 -0
- package/packages/arcgis-rest-items/src/search.ts +78 -0
- package/packages/arcgis-rest-items/src/update.ts +134 -0
- package/packages/arcgis-rest-items/test/add.test.ts +256 -0
- package/packages/arcgis-rest-items/test/create.test.ts +371 -0
- package/packages/arcgis-rest-items/test/get.test.ts +181 -0
- package/packages/arcgis-rest-items/test/mocks/foo.zip +0 -0
- package/packages/arcgis-rest-items/test/mocks/item.ts +33 -0
- package/packages/arcgis-rest-items/test/mocks/resources.ts +31 -0
- package/packages/arcgis-rest-items/test/mocks/search.ts +63 -0
- package/packages/arcgis-rest-items/test/protect.test.ts +122 -0
- package/packages/arcgis-rest-items/test/remove.test.ts +161 -0
- package/packages/arcgis-rest-items/test/search.test.ts +159 -0
- package/packages/arcgis-rest-items/test/update.test.ts +450 -0
- package/packages/arcgis-rest-items/tsconfig.json +6 -0
- package/packages/arcgis-rest-request/README.md +65 -0
- package/packages/arcgis-rest-request/package-lock.json +11 -0
- package/packages/arcgis-rest-request/package.json +42 -0
- package/packages/arcgis-rest-request/src/index.ts +13 -0
- package/packages/arcgis-rest-request/src/request.ts +293 -0
- package/packages/arcgis-rest-request/src/utils/ArcGISAuthError.ts +67 -0
- package/packages/arcgis-rest-request/src/utils/ArcGISRequestError.ts +76 -0
- package/packages/arcgis-rest-request/src/utils/ErrorTypes.ts +29 -0
- package/packages/arcgis-rest-request/src/utils/check-for-errors.ts +65 -0
- package/packages/arcgis-rest-request/src/utils/encode-form-data.ts +34 -0
- package/packages/arcgis-rest-request/src/utils/encode-query-string.ts +23 -0
- package/packages/arcgis-rest-request/src/utils/get-portal-url.ts +25 -0
- package/packages/arcgis-rest-request/src/utils/get-portal.ts +45 -0
- package/packages/arcgis-rest-request/src/utils/process-params.ts +99 -0
- package/packages/arcgis-rest-request/test/mocks/errors.ts +68 -0
- package/packages/arcgis-rest-request/test/mocks/geojson-feature-collection.ts +13 -0
- package/packages/arcgis-rest-request/test/mocks/portal.ts +112 -0
- package/packages/arcgis-rest-request/test/mocks/sharing-rest-info.ts +41 -0
- package/packages/arcgis-rest-request/test/mocks/webmap.ts +41 -0
- package/packages/arcgis-rest-request/test/request.test.ts +299 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISAuthError.test.ts +170 -0
- package/packages/arcgis-rest-request/test/utils/ArcGISRequestError.test.ts +51 -0
- package/packages/arcgis-rest-request/test/utils/check-for-errors.test.ts +111 -0
- package/packages/arcgis-rest-request/test/utils/encode-form-data.test.ts +133 -0
- package/packages/arcgis-rest-request/test/utils/get-portal-url.test.ts +37 -0
- package/packages/arcgis-rest-request/test/utils/portal.test.ts +97 -0
- package/packages/arcgis-rest-request/test/utils/process-params.test.ts +193 -0
- package/packages/arcgis-rest-request/tsconfig.json +6 -0
- package/packages/arcgis-rest-sharing/README.md +67 -0
- package/packages/arcgis-rest-sharing/package-lock.json +11 -0
- package/packages/arcgis-rest-sharing/package.json +57 -0
- package/packages/arcgis-rest-sharing/src/access.ts +85 -0
- package/packages/arcgis-rest-sharing/src/group-sharing.ts +211 -0
- package/packages/arcgis-rest-sharing/src/helpers.ts +82 -0
- package/packages/arcgis-rest-sharing/src/index.ts +5 -0
- package/packages/arcgis-rest-sharing/test/access.test.ts +154 -0
- package/packages/arcgis-rest-sharing/test/group-sharing.test.ts +566 -0
- package/packages/arcgis-rest-sharing/test/helpers.test.ts +55 -0
- package/packages/arcgis-rest-sharing/test/mocks/sharing.ts +18 -0
- package/packages/arcgis-rest-sharing/tsconfig.json +6 -0
- package/packages/arcgis-rest-users/README.md +71 -0
- package/packages/arcgis-rest-users/package-lock.json +11 -0
- package/packages/arcgis-rest-users/package.json +51 -0
- package/packages/arcgis-rest-users/src/get.ts +69 -0
- package/packages/arcgis-rest-users/src/index.ts +6 -0
- package/packages/arcgis-rest-users/src/invitation.ts +166 -0
- package/packages/arcgis-rest-users/src/notification.ts +73 -0
- package/packages/arcgis-rest-users/test/get.test.ts +99 -0
- package/packages/arcgis-rest-users/test/invitation.test.ts +169 -0
- package/packages/arcgis-rest-users/test/mocks/invitation.ts +70 -0
- package/packages/arcgis-rest-users/test/mocks/notification.ts +34 -0
- package/packages/arcgis-rest-users/test/mocks/user.ts +173 -0
- package/packages/arcgis-rest-users/test/notification.test.ts +83 -0
- package/packages/arcgis-rest-users/tsconfig.json +6 -0
- package/support/changelog.js +394 -0
- package/support/deploy-doc-site.js +16 -0
- package/support/publish.sh +43 -0
- package/support/test-helpers.js +8 -0
- package/tsconfig.json +69 -0
- package/tslint.json +15 -0
- package/umd-base-profile.js +82 -0
- package/umd-production-profile.js +13 -0
package/.prettierignore
ADDED
package/.travis.yml
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
language: node_js
|
2
|
+
sudo: false
|
3
|
+
notifications:
|
4
|
+
email: false
|
5
|
+
slack:
|
6
|
+
secure: Cx9TQpIg3ac5u10tMBNNHgAX/ITZm+0IWM4ovMrKm3Fe9HZ+3Yt5Zzzci+oWx6lIkMYj2Hi0cHKxo2T0i0Zw91saTCDV3lFnBDqYK2VivibfJ3KdF60gTkrSIoMfRTjNgqAv0QfmeANDoRKyTNl0k3DaiYgeqqiLJIcaR3MXtR+NChcbibfKDzrDvapckU/SvHFjp3iovoqUmt8zLQGWm675wJGlvBb/E0Drr97WEWLaso+IDxB2gphdYFynJdrIvbPRhih0CfuHhCoqPAblYU6Y3RbficKD6hHuBpA+vY/4MY0MaCXKu5yyU/UBMew69mctjP0/KTL9vQHWhJFf0MrlTlSNHlXAR0JxKe4uc/s3Lb3ZYA/+01hZYm3i+YZWmM7KFeJZfzBiLIOYhG+sJX/pWLun6sIN4kk/AToWD9m99wRxxXccmG/FRZGysdIK7kvu9iphpzuNM8ps2qE8IE10Xo9vJUCwskMcBb1ngf2TAN7bUpWE1OZlLPmY1yVe8HDjWOcJ+W5u3+5GzAv8QLb0Z8pfsdPYd1Mqjjz+DdWrOLS7+cnjZJjxLlA3pM2qvQdBc/Yn5Us7UKRYnjTff8kuIclTaBMtlYEIMfoSeNAus+zeFpN1LQ0vtEGemYPsqEpWR07CX8abMPjbxw5I6J8xFLVgdEARLL9Zj8qxX9I=
|
7
|
+
on_success: change
|
8
|
+
on_failure: always
|
9
|
+
node_js:
|
10
|
+
- '8'
|
11
|
+
- '10'
|
12
|
+
cache:
|
13
|
+
directories:
|
14
|
+
- node_modules
|
15
|
+
before_script:
|
16
|
+
- npm run bootstrap
|
17
|
+
script:
|
18
|
+
- npm run test:ci
|
19
|
+
deploy:
|
20
|
+
provider: pages
|
21
|
+
skip_cleanup: true
|
22
|
+
github_token: "$GITHUB_TOKEN"
|
23
|
+
on:
|
24
|
+
branch: master
|
25
|
+
local-dir: docs/build/arcgis-rest-js
|
26
|
+
target_branch: gh-pages
|
27
|
+
before_deploy:
|
28
|
+
- npm run docs:build
|
29
|
+
env:
|
30
|
+
- MOZ_HEADLESS=1
|
31
|
+
addons:
|
32
|
+
chrome: stable
|
33
|
+
firefox: latest
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
// Use IntelliSense to learn about possible Node.js debug attributes.
|
3
|
+
// Hover to view descriptions of existing attributes.
|
4
|
+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
5
|
+
"version": "0.2.0",
|
6
|
+
"configurations": [
|
7
|
+
{
|
8
|
+
"type": "node",
|
9
|
+
"request": "launch",
|
10
|
+
"name": "Debug Node Tests",
|
11
|
+
"program": "${workspaceRoot}/node_modules/.bin/jasmine",
|
12
|
+
"args": [
|
13
|
+
"--config=jasmine.json"
|
14
|
+
]
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"type": "node",
|
18
|
+
"request": "launch",
|
19
|
+
"name": "Debug Changelog Script",
|
20
|
+
"program": "${workspaceRoot}/support/changelog.js",
|
21
|
+
"args": ["--config=jasmine.json"]
|
22
|
+
}
|
23
|
+
]
|
24
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Node CLI Examples
|
2
|
+
|
3
|
+
This demo shows how to create a command-line application that interacts with the ArcGIS Online API.
|
4
|
+
|
5
|
+
At this point, the commands are very simple and intended to demonstrate how to build up tooling.
|
6
|
+
|
7
|
+
This project uses the `commander` module, which streamlines the creation of node cli applications. Check out the [README](https://github.com/tj/commander.js/blob/master/Readme.md) for more details.
|
8
|
+
|
9
|
+
### Installing
|
10
|
+
|
11
|
+
Like all the other demo apps, run `npm run bootstrap` from the root.
|
12
|
+
|
13
|
+
### Running
|
14
|
+
If you use this demo as a starting point for your own command line package, you would publish it to npm, then on the target systems run `npm install <your-cli-package>`, and it would be available as a command.
|
15
|
+
|
16
|
+
But, this is demo code, and thus the package is not "installed" via `npm install ...`, before we can call it as `ago <command> <query>` we need to run `npm link` in the `/demos/ago-node-cli` folder. After you do that, the command should work.
|
17
|
+
|
18
|
+
Here is a post with information on creating node command line tools: [A Guide to Creating a NodeJs Command](https://x-team.com/blog/a-guide-to-creating-a-nodejs-command/)
|
19
|
+
|
20
|
+
### Commands
|
21
|
+
|
22
|
+
| command | description | example |
|
23
|
+
| --- | --- | --- |
|
24
|
+
| `ago search <query>` | search for items | `ago search water` |
|
25
|
+
| `ago export <id> <file>` | export an item to a json file | `ago export a62cb9d894f145cc89531c096d0012b1 pa.json` |
|
26
|
+
|
27
|
+
## Building your own tooling
|
28
|
+
|
29
|
+
If you want to build out some commands of your own, you can also clone a stand-alone version of this repo from https://github.com/dbouwman/arcgis-rest-js-commands
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env node
|
2
|
+
require('isomorphic-fetch');
|
3
|
+
require('isomorphic-form-data');
|
4
|
+
/**
|
5
|
+
* This demo uses the commander module, which streamlines the creation of command-line-applications
|
6
|
+
*/
|
7
|
+
const program = require('commander');
|
8
|
+
|
9
|
+
program
|
10
|
+
.version('0.0.1');
|
11
|
+
|
12
|
+
/**
|
13
|
+
* Bring in the search command...
|
14
|
+
*/
|
15
|
+
const itemSearchCommand = require('./lib/item-search-command');
|
16
|
+
|
17
|
+
program
|
18
|
+
.command('search <query>')
|
19
|
+
.description('Search for items')
|
20
|
+
.action(function (query) {
|
21
|
+
itemSearchCommand.execute(query);
|
22
|
+
});
|
23
|
+
|
24
|
+
const itemExportCommand = require('./lib/item-export-command');
|
25
|
+
program
|
26
|
+
.command('export <itemId> <filename>')
|
27
|
+
.description('Export an item to a json file')
|
28
|
+
.action(function (id, filename) {
|
29
|
+
itemExportCommand.execute(id, filename);
|
30
|
+
});
|
31
|
+
|
32
|
+
program.parse(process.argv);
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/**
|
2
|
+
* Re-export the commands so they can be used in other contexts
|
3
|
+
*/
|
4
|
+
const itemSearchCommand = require('./lib/item-search-command');
|
5
|
+
const itemExportCommand = require('./lib/item-export-command');
|
6
|
+
|
7
|
+
// just re-export the commands so they can be run in another scropt
|
8
|
+
module.exports = {
|
9
|
+
search: itemSearchCommand,
|
10
|
+
export: itemExportCommand
|
11
|
+
};
|
@@ -0,0 +1,48 @@
|
|
1
|
+
const { getItem, getItemData } = require("@esri/arcgis-rest-items");
|
2
|
+
const jsonfile = require('jsonfile');
|
3
|
+
|
4
|
+
module.exports = {
|
5
|
+
/**
|
6
|
+
* Execute the command
|
7
|
+
*/
|
8
|
+
execute: function (id, fileName) {
|
9
|
+
console.info(`Exporting item ${id} to file ${fileName}`);
|
10
|
+
// construct the search call..
|
11
|
+
let model = {};
|
12
|
+
return getItem(id)
|
13
|
+
.then((item) => {
|
14
|
+
model.item = item;
|
15
|
+
if (this.shouldFetchData(item.type)){
|
16
|
+
console.info(`...Fetching ./data for item of type ${item.type}`);
|
17
|
+
return getItemData(id);
|
18
|
+
} else {
|
19
|
+
console.info(`...Items of type ${item.type} do not have json ./data - skipping`);
|
20
|
+
return Promise.resolve();
|
21
|
+
}
|
22
|
+
})
|
23
|
+
.then((maybeData) => {
|
24
|
+
if (maybeData) {
|
25
|
+
model.data = maybeData;
|
26
|
+
}
|
27
|
+
// now write out the file...
|
28
|
+
jsonfile.writeFileSync(fileName, model, {spaces: 2});
|
29
|
+
console.info(`Done. Exported "${model.item.title}" to ${fileName}`);
|
30
|
+
})
|
31
|
+
.catch((err) => {
|
32
|
+
console.error(err);
|
33
|
+
});
|
34
|
+
},
|
35
|
+
|
36
|
+
/**
|
37
|
+
* Not all item types have json /data
|
38
|
+
*/
|
39
|
+
shouldFetchData (type) {
|
40
|
+
let result = false;
|
41
|
+
let exportables = ['Web Map', 'Web Mapping Application', 'Hub Page', 'Hub Initiative', 'Hub Site Application'];
|
42
|
+
// if the type is in this list, we can export it...
|
43
|
+
if (exportables.indexOf(type) > -1) {
|
44
|
+
result = true;
|
45
|
+
}
|
46
|
+
return result;
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
|
2
|
+
/**
|
3
|
+
* Bring in searchItems fn
|
4
|
+
*/
|
5
|
+
const { searchItems } = require("@esri/arcgis-rest-items");
|
6
|
+
|
7
|
+
module.exports = {
|
8
|
+
/**
|
9
|
+
* Execute the command
|
10
|
+
*/
|
11
|
+
execute: function (query) {
|
12
|
+
// construct the search call..
|
13
|
+
return searchItems({
|
14
|
+
searchForm: {
|
15
|
+
q: query,
|
16
|
+
start: 1,
|
17
|
+
num: 10
|
18
|
+
}
|
19
|
+
})
|
20
|
+
.then((response) => {
|
21
|
+
// if we got results
|
22
|
+
if (Array.isArray(response.results) && response.results.length) {
|
23
|
+
console.info(`${response.total} items found for "${query}".`);
|
24
|
+
response.results.forEach((entry) => {
|
25
|
+
console.info(`${entry.id} | ${entry.title}`);
|
26
|
+
})
|
27
|
+
} else {
|
28
|
+
console.info(`No results found for "${query}".`);
|
29
|
+
}
|
30
|
+
})
|
31
|
+
.catch((err) => {
|
32
|
+
console.error(err);
|
33
|
+
});
|
34
|
+
}
|
35
|
+
}
|
@@ -0,0 +1,172 @@
|
|
1
|
+
{
|
2
|
+
"requires": true,
|
3
|
+
"lockfileVersion": 1,
|
4
|
+
"dependencies": {
|
5
|
+
"ansi-styles": {
|
6
|
+
"version": "3.2.0",
|
7
|
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
8
|
+
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
9
|
+
"requires": {
|
10
|
+
"color-convert": "^1.9.0"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
"async": {
|
14
|
+
"version": "2.6.0",
|
15
|
+
"resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
|
16
|
+
"integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
|
17
|
+
"requires": {
|
18
|
+
"lodash": "^4.14.0"
|
19
|
+
}
|
20
|
+
},
|
21
|
+
"chalk": {
|
22
|
+
"version": "2.3.1",
|
23
|
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz",
|
24
|
+
"integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==",
|
25
|
+
"requires": {
|
26
|
+
"ansi-styles": "^3.2.0",
|
27
|
+
"escape-string-regexp": "^1.0.5",
|
28
|
+
"supports-color": "^5.2.0"
|
29
|
+
}
|
30
|
+
},
|
31
|
+
"color-convert": {
|
32
|
+
"version": "1.9.1",
|
33
|
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
|
34
|
+
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
|
35
|
+
"requires": {
|
36
|
+
"color-name": "^1.1.1"
|
37
|
+
}
|
38
|
+
},
|
39
|
+
"color-name": {
|
40
|
+
"version": "1.1.3",
|
41
|
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
42
|
+
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
43
|
+
},
|
44
|
+
"combined-stream": {
|
45
|
+
"version": "1.0.6",
|
46
|
+
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
47
|
+
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
48
|
+
"requires": {
|
49
|
+
"delayed-stream": "~1.0.0"
|
50
|
+
}
|
51
|
+
},
|
52
|
+
"commander": {
|
53
|
+
"version": "2.14.1",
|
54
|
+
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
|
55
|
+
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
|
56
|
+
},
|
57
|
+
"delayed-stream": {
|
58
|
+
"version": "1.0.0",
|
59
|
+
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
60
|
+
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
61
|
+
},
|
62
|
+
"encoding": {
|
63
|
+
"version": "0.1.12",
|
64
|
+
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
|
65
|
+
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
|
66
|
+
"requires": {
|
67
|
+
"iconv-lite": "~0.4.13"
|
68
|
+
}
|
69
|
+
},
|
70
|
+
"escape-string-regexp": {
|
71
|
+
"version": "1.0.5",
|
72
|
+
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
73
|
+
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
74
|
+
},
|
75
|
+
"form-data": {
|
76
|
+
"version": "1.0.1",
|
77
|
+
"resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz",
|
78
|
+
"integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=",
|
79
|
+
"requires": {
|
80
|
+
"async": "^2.0.1",
|
81
|
+
"combined-stream": "^1.0.5",
|
82
|
+
"mime-types": "^2.1.11"
|
83
|
+
}
|
84
|
+
},
|
85
|
+
"graceful-fs": {
|
86
|
+
"version": "4.1.11",
|
87
|
+
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
|
88
|
+
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
|
89
|
+
"optional": true
|
90
|
+
},
|
91
|
+
"has-flag": {
|
92
|
+
"version": "3.0.0",
|
93
|
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
94
|
+
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
95
|
+
},
|
96
|
+
"iconv-lite": {
|
97
|
+
"version": "0.4.19",
|
98
|
+
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
99
|
+
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
|
100
|
+
},
|
101
|
+
"is-stream": {
|
102
|
+
"version": "1.1.0",
|
103
|
+
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
104
|
+
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
|
105
|
+
},
|
106
|
+
"isomorphic-fetch": {
|
107
|
+
"version": "2.2.1",
|
108
|
+
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
|
109
|
+
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
|
110
|
+
"requires": {
|
111
|
+
"node-fetch": "^1.0.1",
|
112
|
+
"whatwg-fetch": ">=0.10.0"
|
113
|
+
}
|
114
|
+
},
|
115
|
+
"isomorphic-form-data": {
|
116
|
+
"version": "1.0.0",
|
117
|
+
"resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-1.0.0.tgz",
|
118
|
+
"integrity": "sha1-BEe+fg9rht7z05MDbPdmSpiRkQA=",
|
119
|
+
"requires": {
|
120
|
+
"form-data": "^1.0.0-rc3"
|
121
|
+
}
|
122
|
+
},
|
123
|
+
"jsonfile": {
|
124
|
+
"version": "4.0.0",
|
125
|
+
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
126
|
+
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
127
|
+
"requires": {
|
128
|
+
"graceful-fs": "^4.1.6"
|
129
|
+
}
|
130
|
+
},
|
131
|
+
"lodash": {
|
132
|
+
"version": "4.17.5",
|
133
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
|
134
|
+
"integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
|
135
|
+
},
|
136
|
+
"mime-db": {
|
137
|
+
"version": "1.30.0",
|
138
|
+
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
|
139
|
+
"integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
|
140
|
+
},
|
141
|
+
"mime-types": {
|
142
|
+
"version": "2.1.17",
|
143
|
+
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
|
144
|
+
"integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
|
145
|
+
"requires": {
|
146
|
+
"mime-db": "~1.30.0"
|
147
|
+
}
|
148
|
+
},
|
149
|
+
"node-fetch": {
|
150
|
+
"version": "1.7.3",
|
151
|
+
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
|
152
|
+
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
|
153
|
+
"requires": {
|
154
|
+
"encoding": "^0.1.11",
|
155
|
+
"is-stream": "^1.0.1"
|
156
|
+
}
|
157
|
+
},
|
158
|
+
"supports-color": {
|
159
|
+
"version": "5.2.0",
|
160
|
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz",
|
161
|
+
"integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==",
|
162
|
+
"requires": {
|
163
|
+
"has-flag": "^3.0.0"
|
164
|
+
}
|
165
|
+
},
|
166
|
+
"whatwg-fetch": {
|
167
|
+
"version": "2.0.3",
|
168
|
+
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz",
|
169
|
+
"integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ="
|
170
|
+
}
|
171
|
+
}
|
172
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"name": "node-cli",
|
3
|
+
"version": "1.13.0",
|
4
|
+
"description": "arcgis-rest-js node command-line item search example",
|
5
|
+
"main": "ago.js",
|
6
|
+
"scripts": {
|
7
|
+
"start": "echo \"CLI - node index.js <search>\" && exit 1"
|
8
|
+
},
|
9
|
+
"bin": {
|
10
|
+
"ago": "./ago.js"
|
11
|
+
},
|
12
|
+
"private": true,
|
13
|
+
"keywords": [
|
14
|
+
"arcgis",
|
15
|
+
"node",
|
16
|
+
"arcgis-rest-js"
|
17
|
+
],
|
18
|
+
"author": "Dave Bouwman <dbouwman@esri.com>",
|
19
|
+
"license": "Apache-2.0",
|
20
|
+
"dependencies": {
|
21
|
+
"@esri/arcgis-rest-auth": "^1.13.0",
|
22
|
+
"@esri/arcgis-rest-items": "^1.13.0",
|
23
|
+
"@esri/arcgis-rest-request": "^1.13.0",
|
24
|
+
"chalk": "^2.3.0",
|
25
|
+
"commander": "^2.12.2",
|
26
|
+
"isomorphic-fetch": "^2.2.1",
|
27
|
+
"isomorphic-form-data": "^1.0.0",
|
28
|
+
"jsonfile": "^4.0.0"
|
29
|
+
}
|
30
|
+
}
|
@@ -0,0 +1,164 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<title>Attachments</title>
|
4
|
+
|
5
|
+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
6
|
+
|
7
|
+
<script src="https://cdn.polyfill.io/v2/polyfill.js?features=es5,Promise,fetch"></script>
|
8
|
+
|
9
|
+
<div class="container-fluid">
|
10
|
+
<div class="row">
|
11
|
+
<div class="col-md-12">
|
12
|
+
<h3>Attachments</h3>
|
13
|
+
<form id="getForm">
|
14
|
+
<div class="form-group">
|
15
|
+
<label for="serviceUrl">Service URL</label>
|
16
|
+
<input type="text" id="serviceUrl" name="serviceUrl" class="form-control" value="http://sampleserver6.arcgisonline.com/arcgis/rest/services/SF311/FeatureServer/0/" required>
|
17
|
+
</div>
|
18
|
+
<div class="form-group">
|
19
|
+
<label for="featureId">Feature ID</label>
|
20
|
+
<input type="number" min="0" step="1" id="featureId" name="featureId" class="form-control" value="3339970" required>
|
21
|
+
</div>
|
22
|
+
<div class="form-group">
|
23
|
+
<button type="submit" class="btn"><span class="glyphicon glyphicon-paperclip" aria-hidden="true"></span> Get Attachments</button>
|
24
|
+
</div>
|
25
|
+
</form>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<div class="row">
|
29
|
+
<div class="col-md-12">
|
30
|
+
<form id="addForm">
|
31
|
+
<div class="form-group">
|
32
|
+
<label for="attachFile">File</label>
|
33
|
+
<input type="file" id="attachFile" name="attachFile" required>
|
34
|
+
</div>
|
35
|
+
<div class="form-group">
|
36
|
+
<button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add Attachment</button>
|
37
|
+
</div>
|
38
|
+
</form>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
<div class="row">
|
42
|
+
<div class="col-md-12">
|
43
|
+
<p id="resultMessage"></p>
|
44
|
+
<table class="table table-striped">
|
45
|
+
<thead>
|
46
|
+
<th>Attachment ID</th>
|
47
|
+
<th>Content Type</th>
|
48
|
+
<th>Size</th>
|
49
|
+
<th>Attachment</th>
|
50
|
+
<th>Delete</th>
|
51
|
+
</thead>
|
52
|
+
<tbody id="result"></tbody>
|
53
|
+
</table>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
|
58
|
+
<script src="https://rawgit.com/kriszyp/put-selector/master/put.js"></script>
|
59
|
+
<script src="node_modules/@esri/arcgis-rest-request/dist/umd/request.umd.js"></script>
|
60
|
+
<script src="node_modules/@esri/arcgis-rest-feature-service/dist/umd/feature-service.umd.js"></script>
|
61
|
+
|
62
|
+
<script>
|
63
|
+
let serviceUrl, featureId;
|
64
|
+
|
65
|
+
let validService = false;
|
66
|
+
|
67
|
+
// ref some nodes
|
68
|
+
const getForm = document.getElementById('getForm');
|
69
|
+
const addForm = document.getElementById('addForm');
|
70
|
+
const resultMessage = document.getElementById('resultMessage');
|
71
|
+
const result = document.getElementById('result');
|
72
|
+
|
73
|
+
// delete attachment and get again to update table rows
|
74
|
+
const deleteAttachment = attachmentId => {
|
75
|
+
arcgisRest.deleteAttachments({
|
76
|
+
url: serviceUrl,
|
77
|
+
featureId: featureId,
|
78
|
+
attachmentIds: [attachmentId]
|
79
|
+
}).then(res => {
|
80
|
+
console.log(res);
|
81
|
+
arcgisRest.getAttachments({
|
82
|
+
url: serviceUrl,
|
83
|
+
featureId: featureId
|
84
|
+
}).then(getResponse).catch(getError);
|
85
|
+
}).catch(err => {
|
86
|
+
console.log(err);
|
87
|
+
alert(err.message + ' Check the console for more details.');
|
88
|
+
});
|
89
|
+
}
|
90
|
+
|
91
|
+
// handle get attachments response and create table rows
|
92
|
+
const getResponse = res => {
|
93
|
+
console.log(res);
|
94
|
+
const infos = res.attachmentInfos;
|
95
|
+
validService = true;
|
96
|
+
resultMessage.innerHTML = 'Feature has ' + infos.length + ' attachments.';
|
97
|
+
result.innerHTML = '';
|
98
|
+
if (infos.length) {
|
99
|
+
infos.forEach(info => {
|
100
|
+
const tr = put(result, 'tr');
|
101
|
+
put(tr, 'td', info.id);
|
102
|
+
put(tr, 'td', info.contentType);
|
103
|
+
put(tr, 'td', info.size);
|
104
|
+
put(tr, 'td a.btn.btn-primary', {
|
105
|
+
target: '_blank',
|
106
|
+
href: serviceUrl + '/' + featureId + '/attachments/' + info.id,
|
107
|
+
innerHTML: '<span class="glyphicon glyphicon-file" aria-hidden="true"></span> ' + info.name
|
108
|
+
});
|
109
|
+
put(tr, 'td a.btn.btn-danger', {
|
110
|
+
href: '#',
|
111
|
+
innerHTML: '<span class="glyphicon glyphicon-remove" aria-hidden="true"></span> ' + info.name,
|
112
|
+
onclick: evt => {
|
113
|
+
evt.preventDefault();
|
114
|
+
deleteAttachment(info.id);
|
115
|
+
}
|
116
|
+
});
|
117
|
+
});
|
118
|
+
}
|
119
|
+
};
|
120
|
+
|
121
|
+
// handle get attachments error
|
122
|
+
const getError = err => {
|
123
|
+
console.log(err);
|
124
|
+
validService = false;
|
125
|
+
resultMessage.innerHTML = err.message + ' Check the console for more details.';
|
126
|
+
result.innerHTML = '';
|
127
|
+
}
|
128
|
+
|
129
|
+
// handle get attachments form submit
|
130
|
+
getForm.addEventListener('submit', function (evt) {
|
131
|
+
evt.preventDefault();
|
132
|
+
arcgisRest.getAttachments({
|
133
|
+
url: serviceUrl = getForm.serviceUrl.value,
|
134
|
+
featureId: featureId = getForm.featureId.value
|
135
|
+
}).then(getResponse).catch(getError);
|
136
|
+
});
|
137
|
+
|
138
|
+
// handle add attachment form submit and get again to update table rows
|
139
|
+
addForm.addEventListener('submit', function (evt) {
|
140
|
+
evt.preventDefault();
|
141
|
+
if (!validService) {
|
142
|
+
alert('Not so fast. Start by getting a feature\'s attachments first.');
|
143
|
+
return;
|
144
|
+
}
|
145
|
+
arcgisRest.addAttachment({
|
146
|
+
url: serviceUrl,
|
147
|
+
featureId: featureId,
|
148
|
+
attachment: evt.target.attachFile.files[0],
|
149
|
+
params: {
|
150
|
+
returnEditMoment: true
|
151
|
+
}
|
152
|
+
}).then(res => {
|
153
|
+
console.log(res);
|
154
|
+
arcgisRest.getAttachments({
|
155
|
+
url: serviceUrl,
|
156
|
+
featureId: featureId
|
157
|
+
}).then(getResponse).catch(getError);
|
158
|
+
}).catch(err => {
|
159
|
+
console.log(err);
|
160
|
+
alert(err.message + ' Check the console for more details.');
|
161
|
+
});
|
162
|
+
});
|
163
|
+
</script>
|
164
|
+
</html>
|