ducimusipsa 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 +34 -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 +180 -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 +115 -0
- package/demos/batch-geocoder-node/config-template.js +18 -0
- package/demos/batch-geocoder-node/package-lock.json +109 -0
- package/demos/batch-geocoder-node/package.json +38 -0
- package/demos/express/README.md +15 -0
- package/demos/express/config.json.template +3 -0
- package/demos/express/package-lock.json +428 -0
- package/demos/express/package.json +18 -0
- package/demos/express/server.js +33 -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 +25 -0
- package/demos/jsapi-integration/config.js +6 -0
- package/demos/jsapi-integration/index.html +85 -0
- package/demos/jsapi-integration/package-lock.json +184 -0
- package/demos/jsapi-integration/package.json +19 -0
- package/demos/oauth2-browser/README.md +14 -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 +303 -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 +41 -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 +129 -0
- package/packages/arcgis-rest-auth/README.md +67 -0
- package/packages/arcgis-rest-auth/package-lock.json +11 -0
- package/packages/arcgis-rest-auth/package.json +53 -0
- package/packages/arcgis-rest-auth/src/ApplicationSession.ts +108 -0
- package/packages/arcgis-rest-auth/src/UserSession.ts +880 -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 +1005 -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/README.md +57 -0
- package/packages/arcgis-rest-common/package-lock.json +11 -0
- package/packages/arcgis-rest-common/package.json +41 -0
- package/packages/arcgis-rest-common/src/index.ts +10 -0
- package/packages/arcgis-rest-common/src/types/feature.ts +14 -0
- package/packages/arcgis-rest-common/src/types/geometry.ts +47 -0
- package/packages/arcgis-rest-common/src/types/symbol.ts +21 -0
- package/packages/arcgis-rest-common/src/util/location.ts +19 -0
- package/packages/arcgis-rest-common/test/location.test.ts +73 -0
- package/packages/arcgis-rest-common/tsconfig.json +6 -0
- package/packages/arcgis-rest-common-types/README.md +64 -0
- package/packages/arcgis-rest-common-types/package.json +40 -0
- package/packages/arcgis-rest-common-types/src/group.ts +54 -0
- package/packages/arcgis-rest-common-types/src/index.ts +469 -0
- package/packages/arcgis-rest-common-types/src/item.ts +47 -0
- package/packages/arcgis-rest-common-types/src/webmap.ts +1267 -0
- package/packages/arcgis-rest-common-types/tsconfig.json +11 -0
- package/packages/arcgis-rest-feature-service/README.md +73 -0
- package/packages/arcgis-rest-feature-service/package-lock.json +11 -0
- package/packages/arcgis-rest-feature-service/package.json +53 -0
- package/packages/arcgis-rest-feature-service/src/add.ts +90 -0
- package/packages/arcgis-rest-feature-service/src/addAttachment.ts +64 -0
- package/packages/arcgis-rest-feature-service/src/decodeValues.ts +129 -0
- package/packages/arcgis-rest-feature-service/src/delete.ts +97 -0
- package/packages/arcgis-rest-feature-service/src/deleteAttachments.ts +67 -0
- package/packages/arcgis-rest-feature-service/src/getAttachments.ts +64 -0
- package/packages/arcgis-rest-feature-service/src/getLayer.ts +27 -0
- package/packages/arcgis-rest-feature-service/src/helpers.ts +50 -0
- package/packages/arcgis-rest-feature-service/src/index.ts +14 -0
- package/packages/arcgis-rest-feature-service/src/query.ts +183 -0
- package/packages/arcgis-rest-feature-service/src/queryRelated.ts +94 -0
- package/packages/arcgis-rest-feature-service/src/update.ts +90 -0
- package/packages/arcgis-rest-feature-service/src/updateAttachment.ts +73 -0
- package/packages/arcgis-rest-feature-service/test/attachments.test.ts +203 -0
- package/packages/arcgis-rest-feature-service/test/crud.test.ts +263 -0
- package/packages/arcgis-rest-feature-service/test/decodeValues.test.ts +67 -0
- package/packages/arcgis-rest-feature-service/test/getLayer.test.ts +31 -0
- package/packages/arcgis-rest-feature-service/test/mocks/cvdQueryResponse.ts +225 -0
- package/packages/arcgis-rest-feature-service/test/mocks/feature.ts +281 -0
- package/packages/arcgis-rest-feature-service/test/mocks/fields.ts +779 -0
- package/packages/arcgis-rest-feature-service/test/mocks/foo.txt +1 -0
- package/packages/arcgis-rest-feature-service/test/mocks/service.ts +259 -0
- package/packages/arcgis-rest-feature-service/test/query.test.ts +140 -0
- package/packages/arcgis-rest-feature-service/tsconfig.json +6 -0
- package/packages/arcgis-rest-feature-service-admin/README.md +69 -0
- package/packages/arcgis-rest-feature-service-admin/package-lock.json +11 -0
- package/packages/arcgis-rest-feature-service-admin/package.json +56 -0
- package/packages/arcgis-rest-feature-service-admin/src/addTo.ts +74 -0
- package/packages/arcgis-rest-feature-service-admin/src/create.ts +207 -0
- package/packages/arcgis-rest-feature-service-admin/src/index.ts +2 -0
- package/packages/arcgis-rest-feature-service-admin/test/addTo.test.ts +353 -0
- package/packages/arcgis-rest-feature-service-admin/test/create.test.ts +412 -0
- package/packages/arcgis-rest-feature-service-admin/test/mocks/layerDefinition.ts +79 -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 +83 -0
- package/packages/arcgis-rest-geocoder/package-lock.json +11 -0
- package/packages/arcgis-rest-geocoder/package.json +55 -0
- package/packages/arcgis-rest-geocoder/src/bulk.ts +102 -0
- package/packages/arcgis-rest-geocoder/src/geocode.ts +130 -0
- package/packages/arcgis-rest-geocoder/src/helpers.ts +80 -0
- package/packages/arcgis-rest-geocoder/src/index.ts +8 -0
- package/packages/arcgis-rest-geocoder/src/reverse.ts +83 -0
- package/packages/arcgis-rest-geocoder/src/suggest.ts +69 -0
- package/packages/arcgis-rest-geocoder/test/bulk.test.ts +113 -0
- package/packages/arcgis-rest-geocoder/test/geocode.test.ts +176 -0
- package/packages/arcgis-rest-geocoder/test/helpers.test.ts +111 -0
- package/packages/arcgis-rest-geocoder/test/mocks/responses.ts +629 -0
- package/packages/arcgis-rest-geocoder/test/reverse.test.ts +126 -0
- package/packages/arcgis-rest-geocoder/test/suggest.test.ts +98 -0
- package/packages/arcgis-rest-geocoder/tsconfig.json +6 -0
- package/packages/arcgis-rest-groups/README.md +67 -0
- package/packages/arcgis-rest-groups/package-lock.json +11 -0
- package/packages/arcgis-rest-groups/package.json +55 -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 +27 -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 +134 -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 +69 -0
- package/packages/arcgis-rest-items/package-lock.json +11 -0
- package/packages/arcgis-rest-items/package.json +55 -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 +35 -0
- package/packages/arcgis-rest-items/test/mocks/resources.ts +31 -0
- package/packages/arcgis-rest-items/test/mocks/search.ts +62 -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 +68 -0
- package/packages/arcgis-rest-request/package-lock.json +11 -0
- package/packages/arcgis-rest-request/package.json +45 -0
- package/packages/arcgis-rest-request/src/index.ts +15 -0
- package/packages/arcgis-rest-request/src/request.ts +358 -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/append-custom-params.ts +29 -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/params.ts +52 -0
- package/packages/arcgis-rest-request/src/utils/process-params.ts +99 -0
- package/packages/arcgis-rest-request/src/utils/retryAuthError.ts +9 -0
- package/packages/arcgis-rest-request/src/utils/warn.ts +11 -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 +323 -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-routing/README.md +71 -0
- package/packages/arcgis-rest-routing/package-lock.json +11 -0
- package/packages/arcgis-rest-routing/package.json +54 -0
- package/packages/arcgis-rest-routing/src/helpers.ts +16 -0
- package/packages/arcgis-rest-routing/src/index.ts +4 -0
- package/packages/arcgis-rest-routing/src/solveRoute.ts +102 -0
- package/packages/arcgis-rest-routing/test/mocks/responses.ts +825 -0
- package/packages/arcgis-rest-routing/test/solveRoute.test.ts +267 -0
- package/packages/arcgis-rest-routing/tsconfig.json +6 -0
- package/packages/arcgis-rest-sharing/README.md +70 -0
- package/packages/arcgis-rest-sharing/package-lock.json +11 -0
- package/packages/arcgis-rest-sharing/package.json +60 -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 +74 -0
- package/packages/arcgis-rest-users/package-lock.json +11 -0
- package/packages/arcgis-rest-users/package.json +54 -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/dev.sh +6 -0
- package/support/publish.sh +43 -0
- package/support/test-helpers.js +8 -0
- package/tsconfig.json +69 -0
- package/tslint.json +16 -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,34 @@
|
|
1
|
+
language: node_js
|
2
|
+
sudo: false
|
3
|
+
notifications:
|
4
|
+
email: false
|
5
|
+
slack:
|
6
|
+
secure: KghYpsaoCZB1sPOqk1d+JhfBOkg76Cq8eMK665ozdf484RdPvObqLrxyrt9i+sDMDv/oZT+VuvGXsbHj6R+TUh87r2Yhfizcwvdotc4VTHei4y/oNX6cRhV8ryQox/0j6GClqI43A4kIsuOcUm8pI4FTGOhDQOK7+UDcuvcSa5VR7N7GJ97zfzC9gQtRsbfD5WKY4BEr+KlcWt0KCCbp1+Jh7craEO30ztUl38BuUuW7F1/AykrTX6kgS5E5ssUQ0pJPBlzpjb3G5UEeodzOD9wUBVLIBAbgQsofAPLi0pHeyCCeEOuTxXEo7SD8fG+kBstPlncR+V8goCEBnAJysIvBznUxLjrnxcU7V40g+iTENKwhVTIiZzZN3Z9buJd001MRaWjOTCWX80Ig6oraH8WJk7W1qtKzsDK9Lsp2N9pxNTPASbAQoFDlMCGcWYGixq6IhIAwsk1Pkb689F67vHaES8qMXkIHifB0j7yRMwrHinYFqUYASQOECPNEMJv3iqByXntmMP8X/r3VBujMehGodZ1dnbWvAOdWdEmG3KCVpn42ocKCj6k4WZL62nSxs3W00E1UVPnXujT3ENk/3L/VJE3tRWFCSbR9HnfBSDVA6WaFu4EFDg8WV6fn2T0FHKTBgCtTugQo8bsoyReYZvEU/27O/B+d5/9nqMHqyy4=
|
7
|
+
node_js:
|
8
|
+
- '8'
|
9
|
+
- '10'
|
10
|
+
cache:
|
11
|
+
directories:
|
12
|
+
- node_modules
|
13
|
+
before_script:
|
14
|
+
- npm run bootstrap
|
15
|
+
script:
|
16
|
+
- npm run test:ci
|
17
|
+
deploy:
|
18
|
+
provider: pages
|
19
|
+
skip_cleanup: true
|
20
|
+
github_token: "$GITHUB_TOKEN"
|
21
|
+
on:
|
22
|
+
branch: master
|
23
|
+
local-dir: docs/build/arcgis-rest-js
|
24
|
+
target_branch: gh-pages
|
25
|
+
before_deploy:
|
26
|
+
- npm run docs:build
|
27
|
+
env:
|
28
|
+
- MOZ_HEADLESS=1
|
29
|
+
addons:
|
30
|
+
chrome: stable
|
31
|
+
firefox: latest
|
32
|
+
branches:
|
33
|
+
only:
|
34
|
+
- master
|
@@ -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,180 @@
|
|
1
|
+
{
|
2
|
+
"requires": true,
|
3
|
+
"lockfileVersion": 1,
|
4
|
+
"dependencies": {
|
5
|
+
"ansi-styles": {
|
6
|
+
"version": "3.2.1",
|
7
|
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
8
|
+
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
9
|
+
"requires": {
|
10
|
+
"color-convert": "^1.9.0"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
"async": {
|
14
|
+
"version": "2.6.1",
|
15
|
+
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
|
16
|
+
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
|
17
|
+
"requires": {
|
18
|
+
"lodash": "^4.17.10"
|
19
|
+
}
|
20
|
+
},
|
21
|
+
"chalk": {
|
22
|
+
"version": "2.4.1",
|
23
|
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
|
24
|
+
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
|
25
|
+
"requires": {
|
26
|
+
"ansi-styles": "^3.2.1",
|
27
|
+
"escape-string-regexp": "^1.0.5",
|
28
|
+
"supports-color": "^5.3.0"
|
29
|
+
}
|
30
|
+
},
|
31
|
+
"color-convert": {
|
32
|
+
"version": "1.9.3",
|
33
|
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
34
|
+
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
35
|
+
"requires": {
|
36
|
+
"color-name": "1.1.3"
|
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.7",
|
46
|
+
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
47
|
+
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
48
|
+
"requires": {
|
49
|
+
"delayed-stream": "~1.0.0"
|
50
|
+
}
|
51
|
+
},
|
52
|
+
"commander": {
|
53
|
+
"version": "2.19.0",
|
54
|
+
"resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
|
55
|
+
"integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg=="
|
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": "http://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.15",
|
87
|
+
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
|
88
|
+
"integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
|
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.24",
|
98
|
+
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
99
|
+
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
100
|
+
"requires": {
|
101
|
+
"safer-buffer": ">= 2.1.2 < 3"
|
102
|
+
}
|
103
|
+
},
|
104
|
+
"is-stream": {
|
105
|
+
"version": "1.1.0",
|
106
|
+
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
107
|
+
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
|
108
|
+
},
|
109
|
+
"isomorphic-fetch": {
|
110
|
+
"version": "2.2.1",
|
111
|
+
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
|
112
|
+
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
|
113
|
+
"requires": {
|
114
|
+
"node-fetch": "^1.0.1",
|
115
|
+
"whatwg-fetch": ">=0.10.0"
|
116
|
+
}
|
117
|
+
},
|
118
|
+
"isomorphic-form-data": {
|
119
|
+
"version": "1.0.0",
|
120
|
+
"resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-1.0.0.tgz",
|
121
|
+
"integrity": "sha1-BEe+fg9rht7z05MDbPdmSpiRkQA=",
|
122
|
+
"requires": {
|
123
|
+
"form-data": "^1.0.0-rc3"
|
124
|
+
}
|
125
|
+
},
|
126
|
+
"jsonfile": {
|
127
|
+
"version": "4.0.0",
|
128
|
+
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
129
|
+
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
130
|
+
"requires": {
|
131
|
+
"graceful-fs": "^4.1.6"
|
132
|
+
}
|
133
|
+
},
|
134
|
+
"lodash": {
|
135
|
+
"version": "4.17.11",
|
136
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
137
|
+
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
|
138
|
+
},
|
139
|
+
"mime-db": {
|
140
|
+
"version": "1.37.0",
|
141
|
+
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
|
142
|
+
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="
|
143
|
+
},
|
144
|
+
"mime-types": {
|
145
|
+
"version": "2.1.21",
|
146
|
+
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
|
147
|
+
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
|
148
|
+
"requires": {
|
149
|
+
"mime-db": "~1.37.0"
|
150
|
+
}
|
151
|
+
},
|
152
|
+
"node-fetch": {
|
153
|
+
"version": "1.7.3",
|
154
|
+
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
|
155
|
+
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
|
156
|
+
"requires": {
|
157
|
+
"encoding": "^0.1.11",
|
158
|
+
"is-stream": "^1.0.1"
|
159
|
+
}
|
160
|
+
},
|
161
|
+
"safer-buffer": {
|
162
|
+
"version": "2.1.2",
|
163
|
+
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
164
|
+
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
165
|
+
},
|
166
|
+
"supports-color": {
|
167
|
+
"version": "5.5.0",
|
168
|
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
169
|
+
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
170
|
+
"requires": {
|
171
|
+
"has-flag": "^3.0.0"
|
172
|
+
}
|
173
|
+
},
|
174
|
+
"whatwg-fetch": {
|
175
|
+
"version": "3.0.0",
|
176
|
+
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
|
177
|
+
"integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q=="
|
178
|
+
}
|
179
|
+
}
|
180
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"name": "node-cli",
|
3
|
+
"version": "1.14.1",
|
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.14.1",
|
22
|
+
"@esri/arcgis-rest-items": "^1.14.1",
|
23
|
+
"@esri/arcgis-rest-request": "^1.14.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>
|