# Router

Main crate of the project.

## Files Tree Layout

<!-- FIXME: this table should either be generated by a script or smoke test should be introduced checking it agrees with actual structure -->
<!-- FIXME: fill missing -->

```text

├── src                        : source code
│   ├── configs                : config loading
│   ├── connector              : various connector (gateway) specific transformations implementations.
│   │   ├── adyen              : adyen connector
│   │   └── stripe             : stripe connector
│   ├── core                   : the core router / orchestrator code. All common code/flow should exist here. only minimal code in connector implementations.
│   │   ├── customers          : ?
│   │   ├── payment_methods    : ?
│   │   ├── payments           : ?
│   │   └── refunds            : ?
│   ├── routes                 : the API endpoints exposed by router. currently uses actix_web.
│   ├── scheduler              : ?
│   │   └── types              : ?
│   ├── services               : ?
│   │   └── redis              : ?
│   ├── types                  : the objects/API type definitions
│   │   ├── api                : the router API
│   │   └── storage            : definitions for using DB/Storage. Currently uses Diesel.
│   └── utils                  : utilities
└── tests                      : unit and integration tests

```

<!--
command to generate the tree `tree -L 3 -d`
-->
