Pipes API
Backend for the Toggl Pipes project.
UI can be found in toggl/pipes-ui repository.

Basically this is just job scheduler with REST-API.
It schedules job to do synchronization to a third party service.
Pipes-api will fetch data then send them to pipes endpoints in "Toggl API".
THIS PROJECT WAS FULLY REFACTORED AT March 2020.
To see original source code use legacy branch.
Requirements
Getting Started
- Clone the repo
git@github.com:toggl/pipes-api.git
- Copy configuration files
cp -r config-sample config
- Fill in needed oauth tokens and URL-s under config json files
- Start the server with
make run
Architecture
pkg - Stores all abstract business and application logic.
internal - Stores all infrastructure packages.
Testing
# Firstly make testing database. This can be done only once:
$ make init-test-db
# Then just run tests. You also can use Goland IDE for testing:
$ make test
# To generate mocks from source code run:
$ make mocks
- To generate Mocks, you should have mockery installed.
Supported Integrations
WORKS FINE
To register application use this link: https://app.asana.com/0/developer-console
WORKS FINE
To register OAuth2 application: https://github.com/settings/developers
WORKS FINE
To register OAuth2 application: https://developers.plan.toggl.com/applications
WORKS FINE
To register OAuth2 application: https://launchpad.37signals.com/integrations
To register test BaseCamp 2 account: https://billing.37signals.com/bcx/trial/signup/
DOES NOT WORK
Login Form for classic version is here: https://classic.freshbooks.com/
NOTE: Integration supports only Freshbook Classic. It use Freshbooks Classic API which is DEPRECATED.