Skip to content

πŸ‘·πŸ½β€β™€οΈ CRUD operations for Google Cloud Functions APIs for a users Collection in Firestore.

Notifications You must be signed in to change notification settings

joemccann/api-users

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SYNOPSIS

πŸ‘·πŸ½β€β™€οΈ CRUD operations for Google Cloud Functions APIs for a users Collection in Firestore.

REQUIREMENTS

  1. A Google Cloud Account.
  2. Billing Enabled.
  3. API and Firestore Access Enabled.
  4. gcloud CLI installed and in your $PATH.
  5. A preferred configuration created ( gcloud init ).

USAGE

curl https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-users --data '{"username": "foo", "email":"test@gmail.com"}' -H "Content-Type: application/json"

The expected response:

{
  "data": "OK"
}

Or in the case there is a failure:

{
  "err":"Username, foo, already exists."
}

API

# Create a user by their username (id)
curl https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-users --data '{"username": "foo", "email":"test@gmail.com"}' -H "Content-Type: application/json"

# Get a user by their username (id)
curl https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-users?id=foo

# Update a user by their username (id)
curl https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-users --data '{"username": "foo", "email":"update-test@gmail.com"}' -H "Content-Type: application/json"

# Delete a user by their username
curl -X DELETE https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-users?username=foo

DEPLOY

First, fork or clone this repo, then:

npm i

You need to pass in your environment variables either in a .env.yaml file or as command line arguements. Run the following command in the root of this repository, assuming a .env.yaml file:

gcloud functions deploy api-users --runtime nodejs10 --trigger-http --memory 128MB --env-vars-file .env.yaml

You should receive a YAML like response in your terminal including the URL for the Cloud Function.

TESTS

NOTE: Your FIRESTORE_COLLECTION_NAME should be users. If you change it, then you'll need to update your routes above.

npm i -D
PROJECT={PROJECT} COLLECTION={FIRESTORE_COLLECTION_NAME} npm test

AUTHORS

LICENSE

MIT

About

πŸ‘·πŸ½β€β™€οΈ CRUD operations for Google Cloud Functions APIs for a users Collection in Firestore.

Topics

Resources

Stars

Watchers

Forks

Packages