skateroots-api
v0.0.17
Published
API for serving skateroots root info
Downloads
3
Readme
Skateroots API
API for serving skateroots route info
Install
Install dependencies:
$ npm i
Run
$ npm start
Run on a different port.
$ PORT=3001 npm start
Run the production environment. This will use Postgres with the config defined in config/config.json
.
$ NODE_ENV=production npm start
Testing
Tests are run with mocha. Note that running tests will create the sqlite db file db.test.sqlite
which is used for each test. sqlite can be run in memory (which is ideal for running tests), however transactions aren't supported in this mode. The records in db.test.sqlite
are removed before each test.
To run all tests:
$ npm test
To run only unit tests:
$ npm run test-unit
To run only integration tests:
$ npm run test-integration
To run a specific test:
$ npm run test-integration -- --grep "should allow a user to create more than one group"
API
$ url="https://api.skateroots.org"
User
Create
Example Request
$ curl -X POST \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-d '{"username": "andrew", "password": "test"}' \
"$url/user/signup"
Login
Example Request
$ curl -X POST \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-c skateroots-session.txt \
-d '{"username": "andrew", "password": "test"}' \
"$url/user/login"
Note -c skateroots-session.txt
. This creates a file for storing session cookies. This will be used in the requests below.
Get Roots
Example Request
$ curl -X GET \
-H "Cache-Control: no-cache" \
-b skateroots-session.txt \
"$url/user/roots"
Root
Create
Example Request
$ curl -X POST \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-b skateroots-session.txt \
-d '{"name": "Root at 1478148669", "positions":[{"coords":{"accuracy":35,"altitude":null,"altitudeAccuracy":null,"heading":null,"latitude":45.5231,"longitude":-122.6765,"speed":null},"timestamp":1477906653997}],"accles":{"z":[null,null,null],"y":[null,null,null],"x":[null,null,null]}}' \
"$url/root"
Todo
- finish API docs