Skip to content

Commit

Permalink
doc: Add a tutorial about how to create a connector
Browse files Browse the repository at this point in the history
  • Loading branch information
gfyrag committed Jul 5, 2022
1 parent eaeef51 commit e93ded1
Show file tree
Hide file tree
Showing 11 changed files with 734 additions and 16 deletions.
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,31 @@

# Getting started

Payments works as a standalone binary, the latest of which can be downloaded from the [releases page](https://github.com/numary/payments/releases). You can move the binary to any executable path, such as to `/usr/local/bin`. Installations using brew, apt, yum or docker are also [available](https://docs.numary.com/oss/payments/get-started/installation).
Payments works as a standalone binary, the latest of which can be downloaded from the [releases page](https://github.com/numary/payments/releases). You can move the binary to any executable path, such as to `/usr/local/bin`. Installations using brew, apt, yum or docker are also [available](https://docs.formance.com/oss/payments/get-started/installation).

```SHELL
payments
```

# Documentation
# What is it?

You can find the complete Payments documentation at [docs.numary.com](https://docs.numary.com/oss/payments/get-started/installation)
Basically, a framework.

# Dashboard
A framework to ingest payin and payout coming from different payment providers (PSP).

A simple [dashboard](https://github.com/numary/control) is built in the payments binary, to make it easier to visualize transactions. It can be started with:
The framework contains connectors. Each connector is basically a translator for a PSP.
Translator, because the main role of a connector is to translate specific PSP payin/payout formats to a generalized format used at Formance.

<img width="909" alt="control-screenshot" src="https://user-images.githubusercontent.com/1770991/153751534-d8bba99e-610a-4b8c-9c63-4bde6eb6f96f.png">
Because it is a framework, it is extensible. Please follow the guide below if you want to add your connector.

You can use the dashboard by heading to [control.numary.com](https://control.numary.com) which provides a hosted version that can connect to any payments instance.
# Contribute

Please follow [this guide](./docs/development.md) if you want to contribute.

# Roadmap & Community

We keep an open roadmap of the upcoming releases and features [here](https://numary.notion.site/OSS-Roadmap-4535fa5716fb4f618027201afcc6f204).

If you need help, want to show us what you built or just hang out and chat about paymentss you are more than welcome on our [Discord](https://discord.gg/xyHvcbzk4w) - looking forward to see you there!

![Frame 1 (2)](https://user-images.githubusercontent.com/1770991/134163361-d86c5728-6075-4510-8de7-06df1f6ed740.png)
![Frame 1 (2)](https://user-images.githubusercontent.com/1770991/134163361-d86c5728-6075-4510-8de7-06df1f6ed740.png)
5 changes: 5 additions & 0 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"github.com/numary/go-libs/sharedpublish/sharedpublishkafka"
"github.com/numary/payments/pkg/api"
"github.com/numary/payments/pkg/bridge/cdi"
"github.com/numary/payments/pkg/bridge/connectors/example"
"github.com/numary/payments/pkg/bridge/connectors/stripe"
bridgeHttp "github.com/numary/payments/pkg/bridge/http"
"github.com/numary/payments/pkg/database"
Expand Down Expand Up @@ -168,6 +169,10 @@ func HTTPModule() fx.Option {
viper.GetBool(authBearerUseScopesFlag),
stripe.NewLoader(),
),
cdi.ConnectorModule[example.Config, example.TaskDescriptor](
viper.GetBool(authBearerUseScopesFlag),
example.Loader,
),
)
}

Expand Down
24 changes: 24 additions & 0 deletions docs/development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Development

## Run

A docker-compose contains all the stuff required to launch the service.

Currently, the service use MongoDB as database, and it takes few seconds to start and is not ready when the payments service try to connect to him.
You can start MongoDB before and wait before start payments service using two terminal :
```
docker compose up mongodb # Run on first terminal
```
and
```
docker compose up payments # Run on second terminal
```

Tests can be started regularly using standard go tooling, just use :
```
go test ./...
```

## Develop a connector

Want to develop a connector? [Follow this link](./tuto-connector.md)
7 changes: 7 additions & 0 deletions docs/samples-payin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "payin",
"reference": "001",
"status": "succeeded",
"asset": "USD",
"initialAmount": 100
}
Loading

0 comments on commit e93ded1

Please sign in to comment.