Skip to content

Commit

Permalink
Merge pull request GoogleCloudPlatform#48 from GoogleCloudPlatform/co…
Browse files Browse the repository at this point in the history
…nfig

Improving config and auth story
  • Loading branch information
jmdobry committed Apr 19, 2016
2 parents bf56e5d + d8adabf commit e06427d
Show file tree
Hide file tree
Showing 99 changed files with 5,972 additions and 5,316 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ coverage/
test/encrypted/nodejs-docs-samples.json
*.iml
.idea/
config.json
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ env:
- GCLOUD_PROJECT=nodejs-docs-samples
- OAUTH_CLIENT_ID=test-id
- OAUTH_CLIENT_SECRET=test-secret
matrix:
- DATA_BACKEND=datastore
- DATA_BACKEND=mongodb
- DATA_BACKEND=cloudsql

before_install:
- if [ ! -d $HOME/gcloud/google-cloud-sdk ]; then
Expand Down
9 changes: 4 additions & 5 deletions 2-structured-data/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

var path = require('path');
var express = require('express');
var config = require('./config')();
var config = require('./config');

var app = express();

Expand All @@ -25,9 +25,8 @@ app.set('view engine', 'jade');
app.set('trust proxy', true);

// Books
var model = require('./books/model')(config);
app.use('/books', require('./books/crud')(model));
app.use('/api/books', require('./books/api')(model));
app.use('/books', require('./books/crud'));
app.use('/api/books', require('./books/api'));

// Redirect root to /books
app.get('/', function (req, res) {
Expand All @@ -50,7 +49,7 @@ app.use(function (err, req, res, next) {

if (module === require.main) {
// Start the server
var server = app.listen(config.port, function () {
var server = app.listen(config.get('PORT'), function () {
var host = server.address().address;
var port = server.address().port;

Expand Down
160 changes: 80 additions & 80 deletions 2-structured-data/books/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,98 +15,98 @@

var express = require('express');
var bodyParser = require('body-parser');
var config = require('../config');
var model = require('./model-' + config.get('DATA_BACKEND'));

module.exports = function (model) {
var router = express.Router();
var router = express.Router();

// Automatically parse request body as JSON
router.use(bodyParser.json());
// Automatically parse request body as JSON
router.use(bodyParser.json());

/**
* GET /api/books
*
* Retrieve a page of books (up to ten at a time).
*/
router.get('/', function list (req, res, next) {
model.list(10, req.query.pageToken, function (err, entities, cursor) {
if (err) {
return next(err);
}
res.json({
items: entities,
nextPageToken: cursor
});
/**
* GET /api/books
*
* Retrieve a page of books (up to ten at a time).
*/
router.get('/', function list (req, res, next) {
model.list(10, req.query.pageToken, function (err, entities, cursor) {
if (err) {
return next(err);
}
res.json({
items: entities,
nextPageToken: cursor
});
});
});

/**
* POST /api/books
*
* Create a new book.
*/
router.post('/', function insert (req, res, next) {
model.create(req.body, function (err, entity) {
if (err) {
return next(err);
}
res.json(entity);
});
/**
* POST /api/books
*
* Create a new book.
*/
router.post('/', function insert (req, res, next) {
model.create(req.body, function (err, entity) {
if (err) {
return next(err);
}
res.json(entity);
});
});

/**
* GET /api/books/:id
*
* Retrieve a book.
*/
router.get('/:book', function get (req, res, next) {
model.read(req.params.book, function (err, entity) {
if (err) {
return next(err);
}
res.json(entity);
});
/**
* GET /api/books/:id
*
* Retrieve a book.
*/
router.get('/:book', function get (req, res, next) {
model.read(req.params.book, function (err, entity) {
if (err) {
return next(err);
}
res.json(entity);
});
});

/**
* PUT /api/books/:id
*
* Update a book.
*/
router.put('/:book', function update (req, res, next) {
model.update(req.params.book, req.body, function (err, entity) {
if (err) {
return next(err);
}
res.json(entity);
});
/**
* PUT /api/books/:id
*
* Update a book.
*/
router.put('/:book', function update (req, res, next) {
model.update(req.params.book, req.body, function (err, entity) {
if (err) {
return next(err);
}
res.json(entity);
});
});

/**
* DELETE /api/books/:id
*
* Delete a book.
*/
router.delete('/:book', function _delete (req, res, next) {
model.delete(req.params.book, function (err) {
if (err) {
return next(err);
}
res.status(200).send('OK');
});
/**
* DELETE /api/books/:id
*
* Delete a book.
*/
router.delete('/:book', function _delete (req, res, next) {
model.delete(req.params.book, function (err) {
if (err) {
return next(err);
}
res.status(200).send('OK');
});
});

/**
* Errors on "/api/books/*" routes.
*/
router.use(function handleRpcError (err, req, res, next) {
// Format error and forward to generic error handler for logging and
// responding to the request
err.response = {
message: err.message,
internalCode: err.code
};
next(err);
});
/**
* Errors on "/api/books/*" routes.
*/
router.use(function handleRpcError (err, req, res, next) {
// Format error and forward to generic error handler for logging and
// responding to the request
err.response = {
message: err.message,
internalCode: err.code
};
next(err);
});

return router;
};
module.exports = router;
Loading

0 comments on commit e06427d

Please sign in to comment.