How mario-cartoon/bank-service works
Bank API — a Go REST banking service. The main workflow runs from HTTP routes through authentication middleware and handlers into domain services, which apply account, card, credit, and analytics rules and use PostgreSQL repositories for persistence. Credit creation can consult the Central Bank rate; a background scheduler asks the credit service to process overdue payments. README capabilities such as forecasting and SMTP are retained, though SMTP use is not visible in sampled service code. Edges reflect excerpts or README statements; uncertain links are omitted.
Main entry points: main.go API Bootstrap · postgres.go Postgres Repositories · service.go Service Factory · router.go Route Dispatch
Components 22
HTTP API
- API Bootstrap
cmd/api/main.go - Route Dispatch
internal/router/router.go - JWT Middleware
internal/middleware/auth.go - Request Handlers
internal/handler/handler.go
Banking Services
- Domain Models
internal/models/models.go - Service Factory
internal/service/service.go - User Auth
internal/service/service.go - Accounts & Transfers
internal/service/service.go - Virtual Cards
internal/service/service.go - Credit & Forecast
internal/service/service.go - Financial Analytics
internal/service/service.go
Persistence
- Postgres Repositories
internal/repository/postgres.go - Database Schema
migrations/001_init.sql
Runtime Support
- Environment Config
internal/config/config.go - Credential & Card Security
internal/security/security.go - CBR SOAP Client
internal/integration/cbr.go - SMTP Mailer
internal/integration/cbr.go - Credit Scheduler
internal/scheduler/scheduler.go
Other components
- API Client
- PostgreSQL
- Central Bank Service
- SMTP Server
Connections 35
- API Client → Route Dispatch: sends requests
README.md - API Bootstrap → Environment Config: loads settings
cmd/api/main.go - API Bootstrap → Postgres Repositories: creates repositories
cmd/api/main.go - API Bootstrap → CBR SOAP Client: creates client
cmd/api/main.go - API Bootstrap → SMTP Mailer: creates client
cmd/api/main.go - API Bootstrap → Service Factory: builds services
cmd/api/main.go - API Bootstrap → Request Handlers: builds handlers
cmd/api/main.go - API Bootstrap → Route Dispatch: builds routes
cmd/api/main.go - API Bootstrap → Credit Scheduler: starts scheduler
cmd/api/main.go - API Bootstrap → PostgreSQL: opens connection
cmd/api/main.go - Route Dispatch → Request Handlers: routes requests
internal/router/router.go - Route Dispatch → JWT Middleware: protects routes
internal/router/router.go - Request Handlers → Service Factory: invokes services
internal/handler/handler.go - JWT Middleware → Request Handlers: passes authenticated requests
internal/middleware/auth.go - Service Factory → User Auth: constructs
internal/service/service.go - Service Factory → Accounts & Transfers: constructs
internal/service/service.go - Service Factory → Virtual Cards: constructs
internal/service/service.go - Service Factory → Credit & Forecast: constructs
internal/service/service.go - Service Factory → Financial Analytics: constructs
internal/service/service.go - User Auth → Postgres Repositories: reads and creates users
internal/service/service.go - User Auth → Credential & Card Security: hashes passwords
internal/service/service.go - Accounts & Transfers → Postgres Repositories: updates accounts and transactions
internal/service/service.go - Virtual Cards → Postgres Repositories: stores and lists cards
internal/service/service.go - Virtual Cards → Credential & Card Security: generates and encrypts
internal/service/service.go - Credit & Forecast → Postgres Repositories: stores and reads credit data
internal/service/service.go - Credit & Forecast → CBR SOAP Client: requests key rate
internal/service/service.go - Financial Analytics → Postgres Repositories: reads transactions
internal/service/service.go - Credit Scheduler → Credit & Forecast: processes overdue payments
internal/scheduler/scheduler.go - Postgres Repositories → PostgreSQL: queries and updates
internal/repository/postgres.go - Postgres Repositories → Domain Models: maps database records
internal/repository/postgres.go - Database Schema → PostgreSQL: defines tables
README.md - CBR SOAP Client → Central Bank Service: sends SOAP request
internal/integration/cbr.go - SMTP Mailer → SMTP Server: sends email
internal/integration/cbr.go - Environment Config → CBR SOAP Client: configures endpoint
- Environment Config → SMTP Mailer: configures credentials