Persistance and recovery
This commit is contained in:
@ -29,25 +29,25 @@ const (
|
||||
)
|
||||
|
||||
type Controller struct {
|
||||
pool *redis.Pool
|
||||
userData app.UserDataProvider
|
||||
store *store.Store
|
||||
orderStore domain.OrderStore
|
||||
config Config
|
||||
notify domain.Notifier
|
||||
authMutex deadlock.Mutex
|
||||
pool *redis.Pool
|
||||
userData app.UserDataProvider
|
||||
store *store.Store
|
||||
tradeProvider TradeProvider
|
||||
config Config
|
||||
notify domain.Notifier
|
||||
authMutex deadlock.Mutex
|
||||
}
|
||||
|
||||
func newController(pool *redis.Pool, userData app.UserDataProvider,
|
||||
s *store.Store, orderStore domain.OrderStore, config Config, n domain.Notifier,
|
||||
s *store.Store, tradeProvider TradeProvider, config Config, n domain.Notifier,
|
||||
) *Controller {
|
||||
return &Controller{
|
||||
pool: pool,
|
||||
userData: userData,
|
||||
store: s,
|
||||
orderStore: orderStore,
|
||||
config: config,
|
||||
notify: n,
|
||||
pool: pool,
|
||||
userData: userData,
|
||||
store: s,
|
||||
tradeProvider: tradeProvider,
|
||||
config: config,
|
||||
notify: n,
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,15 +291,37 @@ func allowed(origin string, config Config) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// GetOrders godoc
|
||||
// @Summary List received FIX orders
|
||||
// @Description Returns all NewOrderSingle messages received via FIX
|
||||
// GetTrades godoc
|
||||
// @Summary List active trades
|
||||
// @Description Returns all active List Trading trades
|
||||
// @Tags fix
|
||||
// @Produce json
|
||||
// @Success 200 {array} domain.Order
|
||||
// @Router /qfixdpl/v1/orders [get]
|
||||
func (cont *Controller) GetOrders(ctx *gin.Context) {
|
||||
orders := cont.orderStore.GetOrders()
|
||||
ctx.JSON(http.StatusOK, orders)
|
||||
// @Success 200 {array} domain.ListTrade
|
||||
// @Router /qfixdpl/v1/trades [get]
|
||||
func (cont *Controller) GetTrades(ctx *gin.Context) {
|
||||
trades := cont.tradeProvider.GetTrades()
|
||||
ctx.JSON(http.StatusOK, trades)
|
||||
}
|
||||
|
||||
// GetLogs godoc
|
||||
// @Summary Get raw FIX logs for a trade
|
||||
// @Description Returns raw FIX message logs for a given QuoteReqID
|
||||
// @Tags fix
|
||||
// @Produce json
|
||||
// @Param quoteReqID path string true "QuoteReqID"
|
||||
// @Success 200 {object} domain.Logs
|
||||
// @Router /qfixdpl/v1/trades/{quoteReqID}/logs [get]
|
||||
func (cont *Controller) GetLogs(ctx *gin.Context) {
|
||||
quoteReqID := ctx.Param("quoteReqID")
|
||||
|
||||
logs, err := cont.store.GetLogsByQuoteReqID(quoteReqID)
|
||||
if err != nil {
|
||||
slog.Error("GetLogs: error fetching logs", "quoteReqID", quoteReqID, "error", err)
|
||||
ctx.JSON(http.StatusInternalServerError, HTTPError{Error: "error fetching logs"})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
ctx.JSON(http.StatusOK, logs)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user