Skip to content

Commit

Permalink
fix: added legacy samples back, until we can update external referenc…
Browse files Browse the repository at this point in the history
…es (#428)
  • Loading branch information
bcoe committed Jun 11, 2019
1 parent a264306 commit c282ff7
Show file tree
Hide file tree
Showing 5 changed files with 184 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ has instructions for running the samples.
| Quickstart | [source code](https://github.com/googleapis/nodejs-datastore/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-datastore&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) |
| Add Task | [source code](https://github.com/googleapis/nodejs-datastore/blob/master/samples/tasks.add.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-datastore&page=editor&open_in_editor=samples/tasks.add.js,samples/README.md) |
| Delete Task | [source code](https://github.com/googleapis/nodejs-datastore/blob/master/samples/tasks.delete.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-datastore&page=editor&open_in_editor=samples/tasks.delete.js,samples/README.md) |
| Legacy Samples | [source code](https://github.com/googleapis/nodejs-datastore/blob/master/samples/tasks.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-datastore&page=editor&open_in_editor=samples/tasks.js,samples/README.md) |
| List Tasks | [source code](https://github.com/googleapis/nodejs-datastore/blob/master/samples/tasks.list.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-datastore&page=editor&open_in_editor=samples/tasks.list.js,samples/README.md) |
| Update Task | [source code](https://github.com/googleapis/nodejs-datastore/blob/master/samples/tasks.markdone.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-datastore&page=editor&open_in_editor=samples/tasks.markdone.js,samples/README.md) |

Expand Down
18 changes: 18 additions & 0 deletions samples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
* [Quickstart](#quickstart)
* [Add Task](#add-task)
* [Delete Task](#delete-task)
* [Legacy Samples](#legacy-samples)
* [List Tasks](#list-tasks)
* [Update Task](#update-task)

Expand Down Expand Up @@ -100,6 +101,23 @@ __Usage:__



### Legacy Samples

View the [source code](https://github.com/googleapis/nodejs-datastore/blob/master/samples/tasks.js).

[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-datastore&page=editor&open_in_editor=samples/tasks.js,samples/README.md)

__Usage:__


`node tasks.js`


-----




### List Tasks

Lists all tasks ordered by creation time.
Expand Down
163 changes: 163 additions & 0 deletions samples/tasks.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
/**
* Copyright 2018, Google, Inc.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

'use strict';

// sample-metadata:
// title: Legacy Samples

// [START datastore_build_service]
// By default, the client will authenticate using the service account file
// specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable and use
// the project specified by the GCLOUD_PROJECT environment variable. See
// https://googlecloudplatform.github.io/google-cloud-node/#/docs/datastore/latest/guides/authentication
const {Datastore} = require('@google-cloud/datastore');

// Creates a client
const datastore = new Datastore();
// [END datastore_build_service]

/*
Installation and setup instructions.
1. Download the TaskList sample application from [here]
(https://github.com/GoogleCloudPlatform/nodejs-docs-samples/archive/master.zip).
2. Unzip the download:
```sh
unzip nodejs-docs-samples-master.zip
```
3. Change directories to the TaskList application:
```sh
cd nodejs-docs-samples-master/datastore
```
4. Install the dependencies and link the application:
```sh
npm install
```
5. With the gcloud SDK, be sure you are authenticated:
```sh
gcloud beta auth application-default login
```
6. At a command prompt, run the following, where `<project-id>` is the ID of
your Google Cloud Platform project.
```sh
export GCLOUD_PROJECT=<project-id>
```
7. Run the application!
```sh
node tasks <command>
```
*/

// [START datastore_add_entity]
async function addTask(description) {
const taskKey = datastore.key('Task');
const entity = {
key: taskKey,
data: [
{
name: 'created',
value: new Date().toJSON(),
},
{
name: 'description',
value: description,
excludeFromIndexes: true,
},
{
name: 'done',
value: false,
},
],
};

try {
await datastore.save(entity);
console.log(`Task ${taskKey.id} created successfully.`);
} catch (err) {
console.error('ERROR:', err);
}
}
// [END datastore_add_entity]

// [START datastore_update_entity]
async function markDone(taskId) {
const transaction = datastore.transaction();
const taskKey = datastore.key(['Task', taskId]);

try {
await transaction.run();
const [task] = await transaction.get(taskKey);
task.done = true;
transaction.save({
key: taskKey,
data: task,
});
await transaction.commit();
console.log(`Task ${taskId} updated successfully.`);
} catch (err) {
transaction.rollback();
}
}
// [END datastore_update_entity]

// [START datastore_retrieve_entities]
async function listTasks() {
const query = datastore.createQuery('Task').order('created');

const [tasks] = await datastore.runQuery(query);
console.log('Tasks:');
tasks.forEach(task => {
const taskKey = task[datastore.KEY];
console.log(taskKey.id, task);
});
}
// [END datastore_retrieve_entities]

// [START datastore_delete_entity]
async function deleteTask(taskId) {
const taskKey = datastore.key(['Task', taskId]);

await datastore.delete(taskKey);
console.log(`Task ${taskId} deleted successfully.`);
}
// [END datastore_delete_entity]

require(`yargs`) // eslint-disable-line
.command(
`new <description>`,
`Adds a task with a description <description>.`,
{},
opts => addTask(opts.description)
)
.command(`done <taskId>`, `Marks the specified task as done.`, {}, opts =>
markDone(opts.taskId)
)
.command(`list`, `Lists all tasks ordered by creation time.`, {}, listTasks)
.command(`delete <taskId>`, `Deletes a task.`, {}, opts =>
deleteTask(opts.taskId)
)
.example(`node $0 new "Buy milk"`, `Adds a task with description "Buy milk".`)
.example(`node $0 done 12345`, `Marks task 12345 as Done.`)
.example(`node $0 list`, `Lists all tasks ordered by creation time`)
.example(`node $0 delete 12345`, `Deletes task 12345.`)
.wrap(120)
.epilogue(`For more information, see https://cloud.google.com/datastore/docs`)
.help().argv;
2 changes: 1 addition & 1 deletion synth.metadata
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"updateTime": "2019-06-11T16:06:41.204768Z",
"updateTime": "2019-06-11T17:04:02.783050Z",
"sources": [
{
"generator": {
Expand Down
1 change: 1 addition & 0 deletions test/.eslintrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ env:
rules:
node/no-unpublished-require: off
node/no-missing-require: off
no-warning-comments: off

0 comments on commit c282ff7

Please sign in to comment.