Skip to content

andmos/BikeshareFunction

Repository files navigation

BikeshareFunction

OpenFaaS function for BikeshareClient access. Provides a simple serverless GBFS status system.

gbfs-systems-function parses the GBFS Systems CSV to JSON, providing API for systems overview.

faas-cli template pull https://github.com/burtonr/csharp-kestrel-template
faas-cli build -f bikeshare-function.yml

faas-cli deploy -f bikeshare-function.yml

echo "skansen" |faas-cli invoke bikeshare-function |jq
# {
#  "Name: "skansen",
#  "BikesAvailable": 18,
#  "LocksAvailable": 0
# }

echo |faas-cli invoke gbfs-systems-function |jq
#{
#    "CountryCode": "US",
#    "Name": "Sobi Long Beach",
#    "Location": "Long Beach, NY",
#    "Id": "sobi_long_beach",
#    "Url": "http://sobilongbeach.com/",
#    "GBFSFileUrl": "http://sobilongbeach.com/opendata/gbfs.json"
#  }

Change GBFS system by updating the GBFSAddress variable:

faas-cli deploy -f bikeshare-function.yml --env=GBFSAddress=https://gbfs.urbansharing.com/oslobysykkel.no/gbfs.json update=true
echo "Diakonhjemmet" |faas-cli invoke bikeshare-function
# {
#  "Name: "Diakonhjemmet",
#  "BikesAvailable": 9,
#  "LocksAvailable": 5
# }

This project also contains function to post from bikeshare-function to Slack. Add a new bot named bikesharebot to a Slack workspace, and update the variable under bikeshare-slack-function: in bikeshare-function.yml with the location of the OpenFaaS gateway:

environment:
    gateway_hostname: http://gateway:8080/

Add the bot's OAUTH token to OpenFaaS secrets:

faas-cli secret create bikebotslacktoken --from-file=slackbot-key.txt

and initialize the bot by trigging the function after deploy:

echo "init" |faas-cli invoke bikeshare-slack-function
# Bot initializing

Now simply ask the bot for a station:

andmos [8:40 PM]
@BikeshareBot Lerkendal
BikeshareBot APP [8:40 PM]
Lerkendal: :bike:: 17 :unlock:: 3

To run OpenFaaS, look at the guides for Docker Swarm, Kubernetes or OpenShift.

Build Status

Dependabot Status

About

OpenFaaS function for BikeshareClient

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages